@fundamental-ngx/core 0.37.2-rc.0 → 0.37.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1412) hide show
  1. package/action-bar/action-bar-actions/action-bar-actions.directive.d.ts +1 -1
  2. package/action-bar/action-bar-back/action-bar-back.directive.d.ts +1 -1
  3. package/action-bar/action-bar-description/action-bar-description.directive.d.ts +1 -1
  4. package/action-bar/action-bar-header/action-bar-header.directive.d.ts +1 -1
  5. package/action-bar/action-bar-mobile/action-bar-mobile.directive.d.ts +1 -1
  6. package/action-bar/action-bar-title/action-bar-title.component.d.ts +1 -1
  7. package/action-bar/action-bar.component.d.ts +1 -1
  8. package/action-sheet/action-sheet-body/action-sheet-body.component.d.ts +1 -1
  9. package/action-sheet/action-sheet-control/action-sheet-control.component.d.ts +1 -1
  10. package/action-sheet/action-sheet-item/action-sheet-item.component.d.ts +1 -1
  11. package/action-sheet/action-sheet-mobile/action-sheet-mobile.component.d.ts +1 -1
  12. package/action-sheet/action-sheet.component.d.ts +1 -1
  13. package/action-sheet/deprecated-action-sheet-compact.directive.d.ts +1 -1
  14. package/alert/alert-utils/alert-container.component.d.ts +1 -1
  15. package/alert/alert.component.d.ts +1 -1
  16. package/avatar/avatar.component.d.ts +1 -1
  17. package/avatar-group/avatar-group.component.d.ts +1 -1
  18. package/avatar-group/directives/avatar-group-focusable-avatar.directive.d.ts +1 -1
  19. package/avatar-group/directives/avatar-group-item.directive.d.ts +1 -1
  20. package/avatar-group/directives/avatar-group-overflow-body.directive.d.ts +1 -1
  21. package/avatar-group/directives/avatar-group-overflow-button-text.directive.d.ts +1 -1
  22. package/avatar-group/directives/avatar-group-overflow-button.directive.d.ts +1 -1
  23. package/avatar-group/directives/avatar-group-overflow-item.directive.d.ts +1 -1
  24. package/avatar-group/directives/avatar-group-popover-control.directive.d.ts +1 -1
  25. package/bar/bar.component.d.ts +1 -1
  26. package/bar/button-bar/button-bar.component.d.ts +1 -1
  27. package/bar/deprecated-bar-button-content-density.directive.d.ts +1 -1
  28. package/bar/deprecated-bar-content-density.directive.d.ts +1 -1
  29. package/bar/directives/bar-element.directive.d.ts +1 -1
  30. package/bar/directives/bar-left.directive.d.ts +1 -1
  31. package/bar/directives/bar-middle.directive.d.ts +1 -1
  32. package/bar/directives/bar-right.directive.d.ts +1 -1
  33. package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  34. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  35. package/breadcrumb/deprecated-breadcrumbs-compact.directive.d.ts +1 -1
  36. package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +1 -1
  37. package/busy-indicator/busy-indicator.component.d.ts +1 -1
  38. package/button/base-button.d.ts +1 -1
  39. package/button/button.component.d.ts +1 -1
  40. package/button/deprecated-button-content-density.directive.d.ts +1 -1
  41. package/calendar/calendar-directives.d.ts +1 -1
  42. package/calendar/calendar-header/calendar-header.component.d.ts +1 -1
  43. package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -1
  44. package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +1 -1
  45. package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +1 -1
  46. package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +1 -1
  47. package/calendar/calendar.component.d.ts +1 -1
  48. package/calendar/deprecated-calendar-content-density.directive.d.ts +1 -1
  49. package/card/card-content.component.d.ts +1 -1
  50. package/card/card-counter.directive.d.ts +1 -1
  51. package/card/card-footer-action-item.directive.d.ts +1 -1
  52. package/card/card-footer.component.d.ts +1 -1
  53. package/card/card-header.component.d.ts +1 -1
  54. package/card/card-loader.component.d.ts +1 -1
  55. package/card/card-second-subtitle.directive.d.ts +1 -1
  56. package/card/card-subtitle.directive.d.ts +1 -1
  57. package/card/card-title.directive.d.ts +1 -1
  58. package/card/card.component.d.ts +1 -1
  59. package/card/deprecated-card-content-density.directive.d.ts +1 -1
  60. package/card/kpi/card-kpi-analytics-content.directive.d.ts +1 -1
  61. package/card/kpi/card-kpi-analytics-label.directive.d.ts +1 -1
  62. package/card/kpi/card-kpi-analytics.directive.d.ts +1 -1
  63. package/card/kpi/card-kpi-header.component.d.ts +1 -1
  64. package/card/kpi/card-kpi-scale-icon.directive.d.ts +1 -1
  65. package/card/kpi/card-kpi-scale-text.directive.d.ts +1 -1
  66. package/card/kpi/card-kpi-value.directive.d.ts +1 -1
  67. package/carousel/carousel-item/carousel-item.component.d.ts +1 -1
  68. package/carousel/carousel-item.directive.d.ts +1 -1
  69. package/carousel/carousel.component.d.ts +1 -1
  70. package/carousel/carousel.directive.d.ts +1 -1
  71. package/checkbox/checkbox/checkbox.component.d.ts +1 -1
  72. package/checkbox/deprecated-checkbox-content-density.directive.d.ts +1 -1
  73. package/combobox/combobox-mobile/combobox-mobile.component.d.ts +1 -1
  74. package/combobox/combobox.component.d.ts +1 -1
  75. package/combobox/deprecated-combobox-content-density.directive.d.ts +1 -1
  76. package/content-density/classes/deprecated-compact.directive.d.ts +1 -1
  77. package/content-density/classes/deprecated-condensed.directive.d.ts +1 -1
  78. package/content-density/classes/deprecated-content-density.directive.d.ts +1 -1
  79. package/content-density/classes/deprecated-cozy.directive.d.ts +1 -1
  80. package/content-density/directives/content-density.directive.d.ts +1 -1
  81. package/date-picker/date-picker.component.d.ts +1 -1
  82. package/date-picker/deprecated-date-picker-compact.directive.d.ts +1 -1
  83. package/datetime-picker/datetime-picker.component.d.ts +1 -1
  84. package/datetime-picker/deprecated-date-time-picker-content-density.directive.d.ts +1 -1
  85. package/dialog/base/dialog-base.class.d.ts +1 -1
  86. package/dialog/base/dialog-footer-base.class.d.ts +1 -1
  87. package/dialog/base/dialog-header-base.class.d.ts +1 -1
  88. package/dialog/dialog-body/dialog-body.component.d.ts +1 -1
  89. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -1
  90. package/dialog/dialog-container/dialog-container.component.d.ts +1 -1
  91. package/dialog/dialog-default/dialog-default.component.d.ts +1 -1
  92. package/dialog/dialog-footer/dialog-footer.component.d.ts +1 -1
  93. package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +1 -1
  94. package/dialog/dialog-header/dialog-header.component.d.ts +1 -1
  95. package/dialog/dialog.component.d.ts +1 -1
  96. package/dialog/directives/dialog-decisive-button.directive.d.ts +1 -1
  97. package/dialog/directives/dialog-title.directive.d.ts +1 -1
  98. package/dynamic-page/deprecated-dynamic-page-compact.directive.d.ts +1 -1
  99. package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +1 -1
  100. package/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.d.ts +1 -1
  101. package/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.d.ts +1 -1
  102. package/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.d.ts +1 -1
  103. package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +1 -1
  104. package/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.d.ts +1 -1
  105. package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +1 -1
  106. package/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.d.ts +1 -1
  107. package/dynamic-page/dynamic-page-wrapper.directive.d.ts +1 -1
  108. package/dynamic-page/dynamic-page.component.d.ts +1 -1
  109. package/dynamic-side-content/dynamic-side-content-main.component.d.ts +1 -1
  110. package/dynamic-side-content/dynamic-side-content-side.component.d.ts +1 -1
  111. package/dynamic-side-content/dynamic-side-content.component.d.ts +1 -1
  112. package/esm2020/action-bar/action-bar-actions/action-bar-actions.directive.mjs +3 -3
  113. package/esm2020/action-bar/action-bar-back/action-bar-back.directive.mjs +3 -3
  114. package/esm2020/action-bar/action-bar-description/action-bar-description.directive.mjs +3 -3
  115. package/esm2020/action-bar/action-bar-header/action-bar-header.directive.mjs +3 -3
  116. package/esm2020/action-bar/action-bar-mobile/action-bar-mobile.directive.mjs +3 -3
  117. package/esm2020/action-bar/action-bar-title/action-bar-title.component.mjs +3 -3
  118. package/esm2020/action-bar/action-bar.component.mjs +4 -4
  119. package/esm2020/action-bar/action-bar.module.mjs +4 -4
  120. package/esm2020/action-sheet/action-sheet-body/action-sheet-body.component.mjs +3 -3
  121. package/esm2020/action-sheet/action-sheet-control/action-sheet-control.component.mjs +3 -3
  122. package/esm2020/action-sheet/action-sheet-item/action-sheet-item.component.mjs +3 -3
  123. package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.component.mjs +3 -3
  124. package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.module.mjs +4 -4
  125. package/esm2020/action-sheet/action-sheet.component.mjs +4 -4
  126. package/esm2020/action-sheet/action-sheet.module.mjs +4 -4
  127. package/esm2020/action-sheet/deprecated-action-sheet-compact.directive.mjs +3 -3
  128. package/esm2020/alert/alert-service/alert.service.mjs +3 -3
  129. package/esm2020/alert/alert-utils/alert-container.component.mjs +3 -3
  130. package/esm2020/alert/alert.component.mjs +5 -5
  131. package/esm2020/alert/alert.module.mjs +4 -4
  132. package/esm2020/avatar/avatar.component.mjs +5 -5
  133. package/esm2020/avatar/avatar.module.mjs +4 -4
  134. package/esm2020/avatar-group/avatar-group.component.mjs +5 -5
  135. package/esm2020/avatar-group/avatar-group.module.mjs +4 -4
  136. package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +3 -3
  137. package/esm2020/avatar-group/directives/avatar-group-item.directive.mjs +3 -3
  138. package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +3 -3
  139. package/esm2020/avatar-group/directives/avatar-group-overflow-button-text.directive.mjs +3 -3
  140. package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +4 -4
  141. package/esm2020/avatar-group/directives/avatar-group-overflow-item.directive.mjs +3 -3
  142. package/esm2020/avatar-group/directives/avatar-group-popover-control.directive.mjs +3 -3
  143. package/esm2020/bar/bar.component.mjs +6 -6
  144. package/esm2020/bar/bar.module.mjs +4 -4
  145. package/esm2020/bar/button-bar/button-bar.component.mjs +3 -3
  146. package/esm2020/bar/deprecated-bar-button-content-density.directive.mjs +3 -3
  147. package/esm2020/bar/deprecated-bar-content-density.directive.mjs +3 -3
  148. package/esm2020/bar/directives/bar-element.directive.mjs +3 -3
  149. package/esm2020/bar/directives/bar-left.directive.mjs +3 -3
  150. package/esm2020/bar/directives/bar-middle.directive.mjs +3 -3
  151. package/esm2020/bar/directives/bar-right.directive.mjs +3 -3
  152. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +3 -3
  153. package/esm2020/breadcrumb/breadcrumb.component.mjs +4 -4
  154. package/esm2020/breadcrumb/breadcrumb.module.mjs +4 -4
  155. package/esm2020/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +3 -3
  156. package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +3 -3
  157. package/esm2020/busy-indicator/busy-indicator.component.mjs +4 -4
  158. package/esm2020/busy-indicator/busy-indicator.module.mjs +4 -4
  159. package/esm2020/button/base-button.mjs +3 -3
  160. package/esm2020/button/button.component.mjs +6 -6
  161. package/esm2020/button/button.module.mjs +4 -4
  162. package/esm2020/button/deprecated-button-content-density.directive.mjs +3 -3
  163. package/esm2020/calendar/calendar-directives.mjs +3 -3
  164. package/esm2020/calendar/calendar-header/calendar-header.component.mjs +3 -3
  165. package/esm2020/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +3 -3
  166. package/esm2020/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +3 -3
  167. package/esm2020/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +3 -3
  168. package/esm2020/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +3 -3
  169. package/esm2020/calendar/calendar.component.mjs +5 -5
  170. package/esm2020/calendar/calendar.module.mjs +4 -4
  171. package/esm2020/calendar/calendar.service.mjs +3 -3
  172. package/esm2020/calendar/deprecated-calendar-content-density.directive.mjs +3 -3
  173. package/esm2020/calendar/i18n/calendar-i18n-labels.mjs +3 -3
  174. package/esm2020/card/card-content.component.mjs +4 -4
  175. package/esm2020/card/card-counter.directive.mjs +4 -4
  176. package/esm2020/card/card-footer-action-item.directive.mjs +3 -3
  177. package/esm2020/card/card-footer.component.mjs +3 -3
  178. package/esm2020/card/card-header.component.mjs +4 -4
  179. package/esm2020/card/card-loader.component.mjs +4 -4
  180. package/esm2020/card/card-second-subtitle.directive.mjs +4 -4
  181. package/esm2020/card/card-subtitle.directive.mjs +4 -4
  182. package/esm2020/card/card-title.directive.mjs +4 -4
  183. package/esm2020/card/card.component.mjs +6 -6
  184. package/esm2020/card/card.module.mjs +4 -4
  185. package/esm2020/card/deprecated-card-content-density.directive.mjs +3 -3
  186. package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +4 -4
  187. package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +4 -4
  188. package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +4 -4
  189. package/esm2020/card/kpi/card-kpi-header.component.mjs +4 -4
  190. package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +4 -4
  191. package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +4 -4
  192. package/esm2020/card/kpi/card-kpi-value.directive.mjs +4 -4
  193. package/esm2020/carousel/carousel-item/carousel-item.component.mjs +3 -3
  194. package/esm2020/carousel/carousel-item.directive.mjs +3 -3
  195. package/esm2020/carousel/carousel.component.mjs +4 -4
  196. package/esm2020/carousel/carousel.directive.mjs +3 -3
  197. package/esm2020/carousel/carousel.module.mjs +4 -4
  198. package/esm2020/carousel/carousel.service.mjs +4 -4
  199. package/esm2020/checkbox/checkbox/checkbox.component.mjs +5 -5
  200. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  201. package/esm2020/checkbox/deprecated-checkbox-content-density.directive.mjs +3 -3
  202. package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -3
  203. package/esm2020/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  204. package/esm2020/combobox/combobox.component.mjs +3 -3
  205. package/esm2020/combobox/combobox.module.mjs +4 -4
  206. package/esm2020/combobox/deprecated-combobox-content-density.directive.mjs +3 -3
  207. package/esm2020/combobox/list-group.pipe.mjs +3 -3
  208. package/esm2020/content-density/classes/deprecated-compact.directive.mjs +3 -3
  209. package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
  210. package/esm2020/content-density/classes/deprecated-content-density.directive.mjs +3 -3
  211. package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
  212. package/esm2020/content-density/content-density.module.mjs +4 -4
  213. package/esm2020/content-density/directives/content-density.directive.mjs +3 -3
  214. package/esm2020/content-density/providers/local-content-density-storage.mjs +3 -3
  215. package/esm2020/content-density/providers/memory-content-density-storage.mjs +3 -3
  216. package/esm2020/content-density/providers/url-content-density-storage.mjs +3 -3
  217. package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
  218. package/esm2020/content-density/services/deprecated-content-density.service.mjs +3 -3
  219. package/esm2020/content-density/services/global-content-density.service.mjs +3 -3
  220. package/esm2020/date-picker/date-picker.component.mjs +3 -3
  221. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  222. package/esm2020/date-picker/deprecated-date-picker-compact.directive.mjs +3 -3
  223. package/esm2020/datetime/datetime-format.pipes.mjs +9 -9
  224. package/esm2020/datetime/fd-datetime-adapter.mjs +3 -3
  225. package/esm2020/datetime/fd-datetime-pipes.module.mjs +4 -4
  226. package/esm2020/datetime/fd-datetime.module.mjs +8 -8
  227. package/esm2020/datetime-picker/datetime-picker.component.mjs +3 -3
  228. package/esm2020/datetime-picker/datetime-picker.module.mjs +4 -4
  229. package/esm2020/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +3 -3
  230. package/esm2020/dialog/base/dialog-base.class.mjs +3 -3
  231. package/esm2020/dialog/base/dialog-footer-base.class.mjs +3 -3
  232. package/esm2020/dialog/base/dialog-header-base.class.mjs +3 -3
  233. package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -3
  234. package/esm2020/dialog/dialog-close-button/dialog-close-button.component.mjs +3 -3
  235. package/esm2020/dialog/dialog-container/dialog-container.component.mjs +4 -4
  236. package/esm2020/dialog/dialog-default/dialog-default.component.mjs +3 -3
  237. package/esm2020/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
  238. package/esm2020/dialog/dialog-footer-button/dialog-footer-button.component.mjs +3 -3
  239. package/esm2020/dialog/dialog-header/dialog-header.component.mjs +3 -3
  240. package/esm2020/dialog/dialog-service/dialog.service.mjs +3 -3
  241. package/esm2020/dialog/dialog.component.mjs +5 -5
  242. package/esm2020/dialog/dialog.module.mjs +4 -4
  243. package/esm2020/dialog/directives/dialog-decisive-button.directive.mjs +3 -3
  244. package/esm2020/dialog/directives/dialog-title.directive.mjs +3 -3
  245. package/esm2020/dialog/utils/dialog-config.class.mjs +3 -3
  246. package/esm2020/dialog/utils/dialog-ref.class.mjs +3 -3
  247. package/esm2020/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +3 -3
  248. package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
  249. package/esm2020/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  250. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.mjs +3 -3
  251. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +3 -3
  252. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +3 -3
  253. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +3 -3
  254. package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
  255. package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
  256. package/esm2020/dynamic-page/dynamic-page-wrapper.directive.mjs +3 -3
  257. package/esm2020/dynamic-page/dynamic-page.component.mjs +4 -4
  258. package/esm2020/dynamic-page/dynamic-page.config.mjs +3 -3
  259. package/esm2020/dynamic-page/dynamic-page.module.mjs +4 -4
  260. package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -3
  261. package/esm2020/dynamic-side-content/dynamic-side-content-main.component.mjs +3 -3
  262. package/esm2020/dynamic-side-content/dynamic-side-content-side.component.mjs +3 -3
  263. package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +5 -5
  264. package/esm2020/dynamic-side-content/dynamic-side-content.module.mjs +4 -4
  265. package/esm2020/facets/content/facet-content.component.mjs +3 -3
  266. package/esm2020/facets/facet/facet.component.mjs +4 -4
  267. package/esm2020/facets/facet-group.component.mjs +3 -3
  268. package/esm2020/facets/facet.module.mjs +4 -4
  269. package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +4 -4
  270. package/esm2020/feed-input/directives/feed-input-button.directive.mjs +3 -3
  271. package/esm2020/feed-input/directives/feed-input-textarea.directive.mjs +3 -3
  272. package/esm2020/feed-input/feed-input.component.mjs +4 -4
  273. package/esm2020/feed-input/feed-input.module.mjs +4 -4
  274. package/esm2020/feed-list-item/components/feed-list-action/feed-list-action.component.mjs +3 -3
  275. package/esm2020/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.mjs +3 -3
  276. package/esm2020/feed-list-item/components/feed-list-footer/feed-list-footer.component.mjs +3 -3
  277. package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +4 -4
  278. package/esm2020/feed-list-item/components/list/feed-list.component.mjs +5 -5
  279. package/esm2020/feed-list-item/directives/byline.directive.mjs +3 -3
  280. package/esm2020/feed-list-item/feed-list-item.module.mjs +4 -4
  281. package/esm2020/file-uploader/deprecated-file-uploader-content-density.directive.mjs +3 -3
  282. package/esm2020/file-uploader/directives/file-uploader-dragndrop.directive.mjs +3 -3
  283. package/esm2020/file-uploader/directives/file-uploader-select.directive.mjs +3 -3
  284. package/esm2020/file-uploader/file-uploader.component.mjs +5 -5
  285. package/esm2020/file-uploader/file-uploader.module.mjs +4 -4
  286. package/esm2020/file-uploader/file-uploader.service.mjs +3 -3
  287. package/esm2020/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
  288. package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +7 -7
  289. package/esm2020/fixed-card-layout/fixed-card-layout.module.mjs +4 -4
  290. package/esm2020/flexible-column-layout/flexible-column-layout.component.mjs +4 -4
  291. package/esm2020/flexible-column-layout/flexible-column-layout.module.mjs +4 -4
  292. package/esm2020/form/fieldset/fieldset.component.mjs +4 -4
  293. package/esm2020/form/fieldset/fieldset.module.mjs +4 -4
  294. package/esm2020/form/form-control/deprecated-form-control-content-density.directive.mjs +3 -3
  295. package/esm2020/form/form-control/form-control.component.mjs +5 -5
  296. package/esm2020/form/form-control/form-control.module.mjs +4 -4
  297. package/esm2020/form/form-control/input-form-control.directive.mjs +3 -3
  298. package/esm2020/form/form-control/textarea-form-control.directive.mjs +3 -3
  299. package/esm2020/form/form-group/form-group.component.mjs +5 -5
  300. package/esm2020/form/form-group/form-group.module.mjs +4 -4
  301. package/esm2020/form/form-header/form-header.component.mjs +4 -4
  302. package/esm2020/form/form-header/form-header.module.mjs +4 -4
  303. package/esm2020/form/form-input-message-group/form-input-message-group.component.mjs +3 -3
  304. package/esm2020/form/form-input-message-group/form-input-message-group.module.mjs +4 -4
  305. package/esm2020/form/form-item/form-item.component.mjs +4 -4
  306. package/esm2020/form/form-item/form-item.module.mjs +4 -4
  307. package/esm2020/form/form-label/form-label.component.mjs +4 -4
  308. package/esm2020/form/form-label/form-label.module.mjs +4 -4
  309. package/esm2020/form/form-legend/form-legend.directive.mjs +3 -3
  310. package/esm2020/form/form-legend/form-legend.module.mjs +4 -4
  311. package/esm2020/form/form-message/form-message.component.mjs +5 -5
  312. package/esm2020/form/form-message/form-message.module.mjs +4 -4
  313. package/esm2020/form/form-message/popover-form-message.service.mjs +3 -3
  314. package/esm2020/form/form.module.mjs +4 -4
  315. package/esm2020/formatted-text/formatted-text.component.mjs +3 -3
  316. package/esm2020/formatted-text/formatted-text.module.mjs +4 -4
  317. package/esm2020/fundamental-ngx.module.mjs +4 -4
  318. package/esm2020/grid-list/components/grid-list/grid-list-base.component.mjs +3 -3
  319. package/esm2020/grid-list/components/grid-list/grid-list.component.mjs +4 -4
  320. package/esm2020/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +3 -3
  321. package/esm2020/grid-list/components/grid-list-footer/grid-list-footer.component.mjs +3 -3
  322. package/esm2020/grid-list/components/grid-list-group-header/grid-list-group-header.component.mjs +3 -3
  323. package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
  324. package/esm2020/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.mjs +3 -3
  325. package/esm2020/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.mjs +3 -3
  326. package/esm2020/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.mjs +3 -3
  327. package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +3 -3
  328. package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.mjs +3 -3
  329. package/esm2020/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.mjs +3 -3
  330. package/esm2020/grid-list/directives/grid-list-item-body.directive.mjs +3 -3
  331. package/esm2020/grid-list/directives/grid-list-item-image.directive.mjs +3 -3
  332. package/esm2020/grid-list/grid-list.module.mjs +4 -4
  333. package/esm2020/icon/icon.component.mjs +5 -5
  334. package/esm2020/icon/icon.module.mjs +4 -4
  335. package/esm2020/illustrated-message/components/illustrated-message-actions/illustrated-message-actions.component.mjs +3 -3
  336. package/esm2020/illustrated-message/components/illustrated-message-figcaption/illustrated-message-figcaption.component.mjs +3 -3
  337. package/esm2020/illustrated-message/directives/illustrated-message-text/illustrated-message-text.directive.mjs +3 -3
  338. package/esm2020/illustrated-message/directives/illustrated-message-title/illustrated-message-title.directive.mjs +3 -3
  339. package/esm2020/illustrated-message/illustrated-message.component.mjs +6 -6
  340. package/esm2020/illustrated-message/illustrated-message.module.mjs +4 -4
  341. package/esm2020/infinite-scroll/infinite-scroll.directive.mjs +3 -3
  342. package/esm2020/infinite-scroll/infinite-scroll.module.mjs +4 -4
  343. package/esm2020/info-label/info-label.component.mjs +5 -5
  344. package/esm2020/info-label/info-label.module.mjs +4 -4
  345. package/esm2020/inline-help/inline-help.directive.mjs +3 -3
  346. package/esm2020/inline-help/inline-help.module.mjs +4 -4
  347. package/esm2020/input-group/deprecated-input-group-compact.directive.mjs +3 -3
  348. package/esm2020/input-group/input-group-directives.mjs +10 -10
  349. package/esm2020/input-group/input-group.component.mjs +5 -5
  350. package/esm2020/input-group/input-group.module.mjs +4 -4
  351. package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +4 -4
  352. package/esm2020/layout-grid/directives/layout-grid-row.directive.mjs +3 -3
  353. package/esm2020/layout-grid/layout-grid.component.mjs +5 -5
  354. package/esm2020/layout-grid/layout-grid.module.mjs +4 -4
  355. package/esm2020/layout-panel/layout-panel-actions/layout-panel-actions.component.mjs +3 -3
  356. package/esm2020/layout-panel/layout-panel-body/layout-panel-body.component.mjs +3 -3
  357. package/esm2020/layout-panel/layout-panel-description/layout-panel-description.component.mjs +3 -3
  358. package/esm2020/layout-panel/layout-panel-filters/layout-panel-filters.component.mjs +3 -3
  359. package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -3
  360. package/esm2020/layout-panel/layout-panel-head/layout-panel-head.component.mjs +3 -3
  361. package/esm2020/layout-panel/layout-panel-header/layout-panel-header.component.mjs +3 -3
  362. package/esm2020/layout-panel/layout-panel-title/layout-panel-title.directive.mjs +3 -3
  363. package/esm2020/layout-panel/layout-panel.component.mjs +4 -4
  364. package/esm2020/layout-panel/layout-panel.module.mjs +4 -4
  365. package/esm2020/link/link.component.mjs +16 -14
  366. package/esm2020/link/link.module.mjs +4 -4
  367. package/esm2020/list/deprecated-list-content-density,directive.mjs +3 -3
  368. package/esm2020/list/directives/byline/list-byline-left.directive.mjs +3 -3
  369. package/esm2020/list/directives/byline/list-byline-right.directive.mjs +3 -3
  370. package/esm2020/list/directives/byline/list-byline.directive.mjs +3 -3
  371. package/esm2020/list/directives/byline/list-content.directive.mjs +3 -3
  372. package/esm2020/list/directives/byline/list-thumbnail.directive.mjs +3 -3
  373. package/esm2020/list/directives/list-footer.directive.mjs +3 -3
  374. package/esm2020/list/directives/list-group-header.directive.mjs +3 -3
  375. package/esm2020/list/directives/list-icon.directive.mjs +4 -4
  376. package/esm2020/list/directives/list-link.directive.mjs +3 -3
  377. package/esm2020/list/directives/list-navigation-item-arrow.directive.mjs +3 -3
  378. package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -3
  379. package/esm2020/list/directives/list-secondary.directive.mjs +3 -3
  380. package/esm2020/list/directives/list-title-text.directive.mjs +3 -3
  381. package/esm2020/list/directives/list-title.directive.mjs +3 -3
  382. package/esm2020/list/list-focus-item.model.mjs +3 -3
  383. package/esm2020/list/list-item/list-item.component.mjs +3 -3
  384. package/esm2020/list/list-message.directive.mjs +4 -4
  385. package/esm2020/list/list-navigation-item/list-navigation-item.component.mjs +3 -3
  386. package/esm2020/list/list.component.mjs +5 -5
  387. package/esm2020/list/list.module.mjs +4 -4
  388. package/esm2020/menu/directives/deprecated-menu-compact.directive.mjs +3 -3
  389. package/esm2020/menu/directives/menu-addon.directive.mjs +3 -3
  390. package/esm2020/menu/directives/menu-interactive.directive.mjs +3 -3
  391. package/esm2020/menu/directives/menu-shortcut.directive.mjs +3 -3
  392. package/esm2020/menu/directives/menu-title.directive.mjs +3 -3
  393. package/esm2020/menu/directives/menu-trigger.directive.mjs +3 -3
  394. package/esm2020/menu/menu-item/menu-item.component.mjs +6 -6
  395. package/esm2020/menu/menu-keyboard.service.mjs +3 -3
  396. package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +3 -3
  397. package/esm2020/menu/menu-mobile/menu-mobile.module.mjs +4 -4
  398. package/esm2020/menu/menu-separator/menu-separator.component.mjs +3 -3
  399. package/esm2020/menu/menu.component.mjs +4 -4
  400. package/esm2020/menu/menu.module.mjs +4 -4
  401. package/esm2020/menu/services/menu.service.mjs +3 -3
  402. package/esm2020/message-box/directives/message-box-decisive-button.directive.mjs +3 -3
  403. package/esm2020/message-box/message-box-body/message-box-body.component.mjs +3 -3
  404. package/esm2020/message-box/message-box-container/message-box-container.component.mjs +4 -4
  405. package/esm2020/message-box/message-box-default/message-box-default.component.mjs +3 -3
  406. package/esm2020/message-box/message-box-footer/message-box-footer.component.mjs +3 -3
  407. package/esm2020/message-box/message-box-footer-button/message-box-footer-button.component.mjs +3 -3
  408. package/esm2020/message-box/message-box-header/message-box-header.component.mjs +3 -3
  409. package/esm2020/message-box/message-box-semantic-icon/message-box-semantic-icon.component.mjs +3 -3
  410. package/esm2020/message-box/message-box.component.mjs +5 -5
  411. package/esm2020/message-box/message-box.module.mjs +4 -4
  412. package/esm2020/message-box/services/message-box.service.mjs +3 -3
  413. package/esm2020/message-box/utils/message-box-config.class.mjs +3 -3
  414. package/esm2020/message-box/utils/message-box-ref.class.mjs +3 -3
  415. package/esm2020/message-page/message-page-actions/message-page-actions.component.mjs +3 -3
  416. package/esm2020/message-page/message-page-more/message-page-more.component.mjs +3 -3
  417. package/esm2020/message-page/message-page-subtitle/message-page-subtitle.component.mjs +3 -3
  418. package/esm2020/message-page/message-page-title/message-page-title.component.mjs +3 -3
  419. package/esm2020/message-page/message-page.component.mjs +5 -5
  420. package/esm2020/message-page/message-page.module.mjs +4 -4
  421. package/esm2020/message-strip/message-strip.component.mjs +5 -5
  422. package/esm2020/message-strip/message-strip.module.mjs +4 -4
  423. package/esm2020/message-toast/message-toast-service/message-toast.service.mjs +3 -3
  424. package/esm2020/message-toast/message-toast-utils/message-toast-container.component.mjs +3 -3
  425. package/esm2020/message-toast/message-toast.component.mjs +4 -4
  426. package/esm2020/message-toast/message-toast.module.mjs +4 -4
  427. package/esm2020/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +3 -3
  428. package/esm2020/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +3 -3
  429. package/esm2020/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.mjs +3 -3
  430. package/esm2020/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +3 -3
  431. package/esm2020/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +3 -3
  432. package/esm2020/micro-process-flow/micro-process-flow-intermediary-item.directive.mjs +3 -3
  433. package/esm2020/micro-process-flow/micro-process-flow.module.mjs +4 -4
  434. package/esm2020/multi-input/deprecated-multi-input-compact.directive.mjs +3 -3
  435. package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  436. package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  437. package/esm2020/multi-input/multi-input.component.mjs +4 -4
  438. package/esm2020/multi-input/multi-input.module.mjs +4 -4
  439. package/esm2020/nested-list/deprecated-nested-list-compact.directive.mjs +3 -3
  440. package/esm2020/nested-list/nested-content/nested-list-content.directive.mjs +3 -3
  441. package/esm2020/nested-list/nested-item/nested-item.directive.mjs +3 -3
  442. package/esm2020/nested-list/nested-link/nested-link.directive.mjs +3 -3
  443. package/esm2020/nested-list/nested-list/nested-list.directive.mjs +3 -3
  444. package/esm2020/nested-list/nested-list-directives.mjs +13 -13
  445. package/esm2020/nested-list/nested-list-keyboard.service.mjs +3 -3
  446. package/esm2020/nested-list/nested-list-popover/nested-list-popover.component.mjs +3 -3
  447. package/esm2020/nested-list/nested-list-state.service.mjs +3 -3
  448. package/esm2020/nested-list/nested-list.module.mjs +4 -4
  449. package/esm2020/nested-list/prepared-nested-list/prepared-nested-list.component.mjs +4 -4
  450. package/esm2020/notification/directives/notification-footer-content.directive.mjs +3 -3
  451. package/esm2020/notification/directives/notification-indicator.directive.mjs +4 -4
  452. package/esm2020/notification/directives/notification-limit-description.directive.mjs +3 -3
  453. package/esm2020/notification/directives/notification-limit-title.directive.mjs +3 -3
  454. package/esm2020/notification/directives/notification-paragraph.directive.mjs +3 -3
  455. package/esm2020/notification/directives/notification-separator.directive.mjs +3 -3
  456. package/esm2020/notification/directives/notification-title.directive.mjs +3 -3
  457. package/esm2020/notification/notification/notification.component.mjs +5 -5
  458. package/esm2020/notification/notification-actions/notification-actions.component.mjs +3 -3
  459. package/esm2020/notification/notification-body/notification-body.component.mjs +3 -3
  460. package/esm2020/notification/notification-content/notification-content.component.mjs +3 -3
  461. package/esm2020/notification/notification-footer/notification-footer.component.mjs +3 -3
  462. package/esm2020/notification/notification-group/notification-group.component.mjs +4 -4
  463. package/esm2020/notification/notification-group-header/notification-group-header.component.mjs +3 -3
  464. package/esm2020/notification/notification-group-list/notification-group-list.component.mjs +3 -3
  465. package/esm2020/notification/notification-header/notification-header.component.mjs +3 -3
  466. package/esm2020/notification/notification-limit/notification-limit.component.mjs +3 -3
  467. package/esm2020/notification/notification-service/notification.service.mjs +4 -4
  468. package/esm2020/notification/notification-utils/notification-container.mjs +3 -3
  469. package/esm2020/notification/notification-utils/notification-group-base.mjs +3 -3
  470. package/esm2020/notification/notification.module.mjs +4 -4
  471. package/esm2020/object-identifier/object-identifier.component.mjs +5 -5
  472. package/esm2020/object-identifier/object-identifier.module.mjs +4 -4
  473. package/esm2020/object-marker/object-marker.component.mjs +6 -6
  474. package/esm2020/object-marker/object-marker.module.mjs +4 -4
  475. package/esm2020/object-number/object-number.component.mjs +5 -5
  476. package/esm2020/object-number/object-number.module.mjs +4 -4
  477. package/esm2020/object-status/object-status.component.mjs +6 -6
  478. package/esm2020/object-status/object-status.module.mjs +4 -4
  479. package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +3 -3
  480. package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +3 -3
  481. package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +3 -3
  482. package/esm2020/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +3 -3
  483. package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +3 -3
  484. package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +3 -3
  485. package/esm2020/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +3 -3
  486. package/esm2020/overflow-layout/overflow-layout.component.mjs +3 -3
  487. package/esm2020/overflow-layout/overflow-layout.module.mjs +4 -4
  488. package/esm2020/overflow-layout/overflow-layout.service.mjs +3 -3
  489. package/esm2020/pagination/deprecated-pagination-compact.directive.mjs +3 -3
  490. package/esm2020/pagination/pagination.component.mjs +4 -4
  491. package/esm2020/pagination/pagination.module.mjs +4 -4
  492. package/esm2020/pagination/pagination.service.mjs +3 -3
  493. package/esm2020/panel/deprecated-panel-compact.directive.mjs +3 -3
  494. package/esm2020/panel/panel-content/panel-content.directive.mjs +3 -3
  495. package/esm2020/panel/panel-title/panel-title.directive.mjs +3 -3
  496. package/esm2020/panel/panel.component.mjs +4 -4
  497. package/esm2020/panel/panel.module.mjs +4 -4
  498. package/esm2020/popover/base/base-popover.class.mjs +3 -3
  499. package/esm2020/popover/popover-body/popover-body-directives/popover-body-footer.directive.mjs +3 -3
  500. package/esm2020/popover/popover-body/popover-body-directives/popover-body-header.directive.mjs +3 -3
  501. package/esm2020/popover/popover-body/popover-body.component.mjs +4 -4
  502. package/esm2020/popover/popover-container/popover-container.directive.mjs +3 -3
  503. package/esm2020/popover/popover-control/popover-control.component.mjs +3 -3
  504. package/esm2020/popover/popover-mobile/popover-mobile.component.mjs +3 -3
  505. package/esm2020/popover/popover-mobile/popover-mobile.module.mjs +4 -4
  506. package/esm2020/popover/popover-service/popover.service.mjs +3 -3
  507. package/esm2020/popover/popover-trigger.directive.mjs +3 -3
  508. package/esm2020/popover/popover.component.mjs +3 -3
  509. package/esm2020/popover/popover.module.mjs +4 -4
  510. package/esm2020/product-switch/product-switch/product-switch.component.mjs +3 -3
  511. package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +4 -4
  512. package/esm2020/product-switch/product-switch.module.mjs +4 -4
  513. package/esm2020/progress-indicator/progress-indicator.component.mjs +4 -4
  514. package/esm2020/progress-indicator/progress-indicator.module.mjs +4 -4
  515. package/esm2020/quick-view/quick-view/quick-view.component.mjs +4 -4
  516. package/esm2020/quick-view/quick-view-group/quick-view-group.component.mjs +3 -3
  517. package/esm2020/quick-view/quick-view-group-item/quick-view-group-item.component.mjs +3 -3
  518. package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content-element.directive.mjs +3 -3
  519. package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content.component.mjs +3 -3
  520. package/esm2020/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +3 -3
  521. package/esm2020/quick-view/quick-view-group-title/quick-view-group-title.component.mjs +3 -3
  522. package/esm2020/quick-view/quick-view-subheader/quick-view-subheader.component.mjs +3 -3
  523. package/esm2020/quick-view/quick-view-subheader-subtitle/quick-view-subheader-subtitle.component.mjs +3 -3
  524. package/esm2020/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.mjs +3 -3
  525. package/esm2020/quick-view/quick-view-title/quick-view-title.component.mjs +3 -3
  526. package/esm2020/quick-view/quick-view.module.mjs +4 -4
  527. package/esm2020/radio/deprecated-radio-button-compact.directive.mjs +3 -3
  528. package/esm2020/radio/radio-button/radio-button.component.mjs +6 -6
  529. package/esm2020/radio/radio.module.mjs +4 -4
  530. package/esm2020/rating-indicator/components/rating-indicator.component.mjs +6 -6
  531. package/esm2020/rating-indicator/pipes/rating-star-label.pipe.mjs +3 -3
  532. package/esm2020/rating-indicator/rating-indicator.module.mjs +4 -4
  533. package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +4 -4
  534. package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +4 -4
  535. package/esm2020/resizable-card-layout/resizable-card-layout.module.mjs +4 -4
  536. package/esm2020/scroll-spy/scroll-spy.directive.mjs +3 -3
  537. package/esm2020/scroll-spy/scroll-spy.module.mjs +4 -4
  538. package/esm2020/scrollbar/scrollbar.component.mjs +4 -4
  539. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  540. package/esm2020/segmented-button/segmented-button.component.mjs +5 -5
  541. package/esm2020/segmented-button/segmented-button.module.mjs +4 -4
  542. package/esm2020/select/deprecated-select-compact.directive.mjs +3 -3
  543. package/esm2020/select/option/option.component.mjs +3 -3
  544. package/esm2020/select/select-key-manager.service.mjs +3 -3
  545. package/esm2020/select/select-mobile/select-mobile.component.mjs +3 -3
  546. package/esm2020/select/select-mobile/select-mobile.module.mjs +4 -4
  547. package/esm2020/select/select.component.mjs +8 -8
  548. package/esm2020/select/select.module.mjs +4 -4
  549. package/esm2020/shared/services/value-state-message.service.mjs +3 -3
  550. package/esm2020/shellbar/deprecated-shellbar-compact.directive.mjs +3 -3
  551. package/esm2020/shellbar/product-menu/product-menu.component.mjs +3 -3
  552. package/esm2020/shellbar/shellbar-action/shellbar-action.component.mjs +3 -3
  553. package/esm2020/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -3
  554. package/esm2020/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -3
  555. package/esm2020/shellbar/shellbar-logo/shellbar-logo.component.mjs +3 -3
  556. package/esm2020/shellbar/shellbar-sidenav.directive.mjs +3 -3
  557. package/esm2020/shellbar/shellbar-subtitle/shellbar-subtitle.component.mjs +3 -3
  558. package/esm2020/shellbar/shellbar-title/shellbar-title.component.mjs +3 -3
  559. package/esm2020/shellbar/shellbar.component.mjs +4 -4
  560. package/esm2020/shellbar/shellbar.module.mjs +4 -4
  561. package/esm2020/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -5
  562. package/esm2020/side-navigation/side-navigation-main.directive.mjs +3 -3
  563. package/esm2020/side-navigation/side-navigation-utility.directive.mjs +3 -3
  564. package/esm2020/side-navigation/side-navigation.component.mjs +4 -4
  565. package/esm2020/side-navigation/side-navigation.module.mjs +4 -4
  566. package/esm2020/slider/deprecated-slider-cozy.directive.mjs +3 -3
  567. package/esm2020/slider/slider-position.directive.mjs +3 -3
  568. package/esm2020/slider/slider.component.mjs +6 -6
  569. package/esm2020/slider/slider.module.mjs +4 -4
  570. package/esm2020/split-button/deprecated-split-button-compact.directive.mjs +3 -3
  571. package/esm2020/split-button/split-button-utils/split-button.directives.mjs +3 -3
  572. package/esm2020/split-button/split-button.component.mjs +4 -4
  573. package/esm2020/split-button/split-button.module.mjs +4 -4
  574. package/esm2020/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -3
  575. package/esm2020/splitter/splitter-pane-container/splitter-pane-container.component.mjs +7 -7
  576. package/esm2020/splitter/splitter-resizer/splitter-resizer.component.mjs +4 -4
  577. package/esm2020/splitter/splitter-split-pane/splitter-split-pane.component.mjs +4 -4
  578. package/esm2020/splitter/splitter.component.mjs +4 -4
  579. package/esm2020/splitter/splitter.module.mjs +4 -4
  580. package/esm2020/status-indicator/status-indicator.component.mjs +5 -5
  581. package/esm2020/status-indicator/status-indicator.module.mjs +4 -4
  582. package/esm2020/step-input/deprecated-step-input-compact.directive.mjs +3 -3
  583. package/esm2020/step-input/step-input.component.mjs +5 -5
  584. package/esm2020/step-input/step-input.module.mjs +4 -4
  585. package/esm2020/switch/deprecated-switch-compact.directive.mjs +3 -3
  586. package/esm2020/switch/switch.component.mjs +5 -5
  587. package/esm2020/switch/switch.module.mjs +4 -4
  588. package/esm2020/table/deprecated-table-compact.directive.mjs +3 -3
  589. package/esm2020/table/deprecated-table-condensed.directive.mjs +3 -3
  590. package/esm2020/table/directives/table-body.directive.mjs +3 -3
  591. package/esm2020/table/directives/table-cell.directive.mjs +3 -3
  592. package/esm2020/table/directives/table-footer.directive.mjs +3 -3
  593. package/esm2020/table/directives/table-header.directive.mjs +3 -3
  594. package/esm2020/table/directives/table-icon.directive.mjs +4 -4
  595. package/esm2020/table/directives/table-inner.directive.mjs +3 -3
  596. package/esm2020/table/directives/table-popover.directive.mjs +3 -3
  597. package/esm2020/table/directives/table-responsive-wrapper.directive.mjs +3 -3
  598. package/esm2020/table/directives/table-row.directive.mjs +3 -3
  599. package/esm2020/table/directives/table-status-indicator.directive.mjs +3 -3
  600. package/esm2020/table/directives/table-text.directive.mjs +3 -3
  601. package/esm2020/table/table-wrapper.component.mjs +4 -4
  602. package/esm2020/table/table.component.mjs +5 -5
  603. package/esm2020/table/table.module.mjs +4 -4
  604. package/esm2020/tabs/deprecated-tabs-compact.directive.mjs +3 -3
  605. package/esm2020/tabs/tab-item/tab-item.directive.mjs +4 -4
  606. package/esm2020/tabs/tab-item-expand/tab-item-expand.component.mjs +3 -3
  607. package/esm2020/tabs/tab-link/tab-link.directive.mjs +3 -3
  608. package/esm2020/tabs/tab-list.component.mjs +5 -5
  609. package/esm2020/tabs/tab-nav/tab-nav.component.mjs +5 -5
  610. package/esm2020/tabs/tab-panel/tab-panel.component.mjs +3 -3
  611. package/esm2020/tabs/tab-utils/tab-directives.mjs +31 -31
  612. package/esm2020/tabs/tabs.module.mjs +4 -4
  613. package/esm2020/text/text.component.mjs +4 -4
  614. package/esm2020/text/text.module.mjs +4 -4
  615. package/esm2020/theming/theming.module.mjs +4 -4
  616. package/esm2020/theming/theming.service.mjs +4 -4
  617. package/esm2020/tile/directives/numeric-content.directives.mjs +28 -28
  618. package/esm2020/tile/directives/tile.directives.mjs +70 -70
  619. package/esm2020/tile/tile.component.mjs +5 -5
  620. package/esm2020/tile/tile.module.mjs +4 -4
  621. package/esm2020/time/deprecated-time-content-density.directive.mjs +3 -3
  622. package/esm2020/time/i18n/time-i18n.mjs +3 -3
  623. package/esm2020/time/time-column/time-column.component.mjs +3 -3
  624. package/esm2020/time/time.component.mjs +5 -5
  625. package/esm2020/time/time.module.mjs +4 -4
  626. package/esm2020/time-picker/deprecated-timepicker-compact.directive.mjs +3 -3
  627. package/esm2020/time-picker/time-picker.component.mjs +3 -3
  628. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  629. package/esm2020/timeline/components/timeline-node/timeline-node.component.mjs +3 -3
  630. package/esm2020/timeline/components/timeline-node-body/timeline-node-body.component.mjs +3 -3
  631. package/esm2020/timeline/components/timeline-node-footer/timeline-node-footer.component.mjs +3 -3
  632. package/esm2020/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.mjs +3 -3
  633. package/esm2020/timeline/components/timeline-node-header/timeline-node-header.component.mjs +3 -3
  634. package/esm2020/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.mjs +3 -3
  635. package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-text.directive.mjs +3 -3
  636. package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-title.directive.mjs +3 -3
  637. package/esm2020/timeline/directives/timeline-first-list-outlet.directive.mjs +3 -3
  638. package/esm2020/timeline/directives/timeline-node-def.directive.mjs +3 -3
  639. package/esm2020/timeline/directives/timeline-second-list-outlet.directive.mjs +3 -3
  640. package/esm2020/timeline/services/timeline-position-control.service.mjs +3 -3
  641. package/esm2020/timeline/timeline.component.mjs +3 -3
  642. package/esm2020/timeline/timeline.module.mjs +4 -4
  643. package/esm2020/title/title.component.mjs +4 -4
  644. package/esm2020/title/title.module.mjs +4 -4
  645. package/esm2020/token/deprecated-tokenizer-content-density.directive.mjs +3 -3
  646. package/esm2020/token/token-input.directive.mjs +4 -4
  647. package/esm2020/token/token.component.mjs +4 -4
  648. package/esm2020/token/token.module.mjs +4 -4
  649. package/esm2020/token/tokenizer.component.mjs +5 -5
  650. package/esm2020/toolbar/deprecated-toolbar-size.directive.mjs +3 -3
  651. package/esm2020/toolbar/toolbar-form-label.directive.mjs +3 -3
  652. package/esm2020/toolbar/toolbar-item.directive.mjs +3 -3
  653. package/esm2020/toolbar/toolbar-label.directive.mjs +3 -3
  654. package/esm2020/toolbar/toolbar-overflow-button-menu.directive.mjs +3 -3
  655. package/esm2020/toolbar/toolbar-overflow-button.directive.mjs +3 -3
  656. package/esm2020/toolbar/toolbar-overflow-group.directive.mjs +3 -3
  657. package/esm2020/toolbar/toolbar-overflow-priority.directive.mjs +3 -3
  658. package/esm2020/toolbar/toolbar-separator.component.mjs +3 -3
  659. package/esm2020/toolbar/toolbar-spacer.component.mjs +3 -3
  660. package/esm2020/toolbar/toolbar.component.mjs +6 -6
  661. package/esm2020/toolbar/toolbar.module.mjs +4 -4
  662. package/esm2020/tree/tree-child.component.mjs +3 -3
  663. package/esm2020/tree/tree.component.mjs +4 -4
  664. package/esm2020/tree/tree.module.mjs +4 -4
  665. package/esm2020/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +3 -3
  666. package/esm2020/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +3 -3
  667. package/esm2020/upload-collection/upload-collection-item.directive.mjs +3 -3
  668. package/esm2020/upload-collection/upload-collection-simple.directives.mjs +21 -21
  669. package/esm2020/upload-collection/upload-collection.component.mjs +5 -5
  670. package/esm2020/upload-collection/upload-collection.module.mjs +4 -4
  671. package/esm2020/utils/abstract-fd-ngx-class.mjs +3 -3
  672. package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +3 -3
  673. package/esm2020/utils/directives/auto-complete/auto-complete.module.mjs +4 -4
  674. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +4 -4
  675. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +3 -3
  676. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +3 -3
  677. package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +4 -4
  678. package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +4 -4
  679. package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +3 -3
  680. package/esm2020/utils/directives/initial-focus/initial-focus.module.mjs +4 -4
  681. package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +6 -6
  682. package/esm2020/utils/directives/line-clamp/line-clamp.module.mjs +4 -4
  683. package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +3 -3
  684. package/esm2020/utils/directives/only-digits/only-digits.module.mjs +4 -4
  685. package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +3 -3
  686. package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +3 -3
  687. package/esm2020/utils/directives/overflow-list/overflow-list.module.mjs +4 -4
  688. package/esm2020/utils/directives/resize/resize-handle.directive.mjs +3 -3
  689. package/esm2020/utils/directives/resize/resize.directive.mjs +3 -3
  690. package/esm2020/utils/directives/resize/resize.module.mjs +4 -4
  691. package/esm2020/utils/directives/template/template.directive.mjs +3 -3
  692. package/esm2020/utils/directives/template/template.module.mjs +4 -4
  693. package/esm2020/utils/directives/truncate/truncate.directive.mjs +3 -3
  694. package/esm2020/utils/directives/truncate/truncate.module.mjs +4 -4
  695. package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +3 -3
  696. package/esm2020/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +3 -3
  697. package/esm2020/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +3 -3
  698. package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +3 -3
  699. package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +4 -4
  700. package/esm2020/utils/dynamic-component/dynamic-component-injector.mjs +1 -1
  701. package/esm2020/utils/dynamic-component/dynamic-component.service.mjs +3 -3
  702. package/esm2020/utils/pipes/displayFn.pipe.mjs +3 -3
  703. package/esm2020/utils/pipes/is-compact.pipe.mjs +3 -3
  704. package/esm2020/utils/pipes/pipe.module.mjs +4 -4
  705. package/esm2020/utils/pipes/safe.pipe.mjs +3 -3
  706. package/esm2020/utils/pipes/search-highlight.pipe.mjs +3 -3
  707. package/esm2020/utils/pipes/truncate.pipe.mjs +3 -3
  708. package/esm2020/utils/pipes/two-digits.pipe.mjs +3 -3
  709. package/esm2020/utils/pipes/value-by-path.pipe.mjs +3 -3
  710. package/esm2020/utils/services/content-density.service.mjs +3 -3
  711. package/esm2020/utils/services/destroyed.service.mjs +3 -3
  712. package/esm2020/utils/services/focus-trap.service.mjs +3 -3
  713. package/esm2020/utils/services/local-storage.service.mjs +3 -3
  714. package/esm2020/utils/services/resize-observer.service.mjs +7 -7
  715. package/esm2020/utils/services/rtl.service.mjs +3 -3
  716. package/esm2020/utils/services/tabbable-element.service.mjs +4 -4
  717. package/esm2020/utils/services/themes.service.mjs +3 -3
  718. package/esm2020/utils/utils.module.mjs +4 -4
  719. package/esm2020/vertical-navigation/vertical-navigation-group-header.directive.mjs +3 -3
  720. package/esm2020/vertical-navigation/vertical-navigation-main-navigation.component.mjs +4 -4
  721. package/esm2020/vertical-navigation/vertical-navigation.component.mjs +4 -4
  722. package/esm2020/vertical-navigation/vertical-navigation.module.mjs +4 -4
  723. package/esm2020/wizard/deprecated-wizard-compact.directive.mjs +3 -3
  724. package/esm2020/wizard/wizard-content/wizard-content.component.mjs +3 -3
  725. package/esm2020/wizard/wizard-navigation/wizard-navigation.component.mjs +3 -3
  726. package/esm2020/wizard/wizard-next-step/wizard-next-step.component.mjs +3 -3
  727. package/esm2020/wizard/wizard-progress-bar/wizard-progress-bar.directive.mjs +3 -3
  728. package/esm2020/wizard/wizard-step/wizard-step.component.mjs +3 -3
  729. package/esm2020/wizard/wizard-step-indicator/wizard-step-indicator.component.mjs +3 -3
  730. package/esm2020/wizard/wizard.component.mjs +5 -5
  731. package/esm2020/wizard/wizard.module.mjs +4 -4
  732. package/esm2020/wizard/wizard.service.mjs +3 -3
  733. package/facets/content/facet-content.component.d.ts +1 -1
  734. package/facets/facet/facet.component.d.ts +1 -1
  735. package/facets/facet-group.component.d.ts +1 -1
  736. package/feed-input/directives/feed-input-avatar.directive.d.ts +1 -1
  737. package/feed-input/directives/feed-input-button.directive.d.ts +1 -1
  738. package/feed-input/directives/feed-input-textarea.directive.d.ts +1 -1
  739. package/feed-input/feed-input.component.d.ts +1 -1
  740. package/feed-list-item/components/feed-list-action/feed-list-action.component.d.ts +1 -1
  741. package/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.d.ts +1 -1
  742. package/feed-list-item/components/feed-list-footer/feed-list-footer.component.d.ts +1 -1
  743. package/feed-list-item/components/item/feed-list-item.component.d.ts +1 -1
  744. package/feed-list-item/components/list/feed-list.component.d.ts +1 -1
  745. package/feed-list-item/directives/byline.directive.d.ts +1 -1
  746. package/fesm2015/fundamental-ngx-core-action-bar.mjs +26 -26
  747. package/fesm2015/fundamental-ngx-core-action-bar.mjs.map +1 -1
  748. package/fesm2015/fundamental-ngx-core-action-sheet.mjs +27 -27
  749. package/fesm2015/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  750. package/fesm2015/fundamental-ngx-core-alert.mjs +14 -14
  751. package/fesm2015/fundamental-ngx-core-alert.mjs.map +1 -1
  752. package/fesm2015/fundamental-ngx-core-avatar-group.mjs +30 -30
  753. package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  754. package/fesm2015/fundamental-ngx-core-avatar.mjs +8 -8
  755. package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  756. package/fesm2015/fundamental-ngx-core-bar.mjs +30 -30
  757. package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
  758. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -14
  759. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  760. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +11 -11
  761. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  762. package/fesm2015/fundamental-ngx-core-button.mjs +15 -15
  763. package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
  764. package/fesm2015/fundamental-ngx-core-calendar.mjs +36 -36
  765. package/fesm2015/fundamental-ngx-core-calendar.mjs.map +1 -1
  766. package/fesm2015/fundamental-ngx-core-card.mjs +60 -60
  767. package/fesm2015/fundamental-ngx-core-card.mjs.map +1 -1
  768. package/fesm2015/fundamental-ngx-core-carousel.mjs +20 -20
  769. package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
  770. package/fesm2015/fundamental-ngx-core-checkbox.mjs +12 -12
  771. package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  772. package/fesm2015/fundamental-ngx-core-combobox.mjs +20 -20
  773. package/fesm2015/fundamental-ngx-core-content-density.mjs +37 -37
  774. package/fesm2015/fundamental-ngx-core-date-picker.mjs +10 -10
  775. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +10 -10
  776. package/fesm2015/fundamental-ngx-core-datetime.mjs +24 -24
  777. package/fesm2015/fundamental-ngx-core-dialog.mjs +53 -53
  778. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  779. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +44 -44
  780. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  781. package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +14 -14
  782. package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  783. package/fesm2015/fundamental-ngx-core-facets.mjs +14 -14
  784. package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
  785. package/fesm2015/fundamental-ngx-core-feed-input.mjs +17 -17
  786. package/fesm2015/fundamental-ngx-core-feed-input.mjs.map +1 -1
  787. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +23 -23
  788. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  789. package/fesm2015/fundamental-ngx-core-file-uploader.mjs +21 -21
  790. package/fesm2015/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  791. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +14 -14
  792. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  793. package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -8
  794. package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  795. package/fesm2015/fundamental-ngx-core-form.mjs +86 -86
  796. package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  797. package/fesm2015/fundamental-ngx-core-formatted-text.mjs +7 -7
  798. package/fesm2015/fundamental-ngx-core-grid-list.mjs +47 -47
  799. package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  800. package/fesm2015/fundamental-ngx-core-icon.mjs +8 -8
  801. package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
  802. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +21 -21
  803. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  804. package/fesm2015/fundamental-ngx-core-infinite-scroll.mjs +7 -7
  805. package/fesm2015/fundamental-ngx-core-info-label.mjs +8 -8
  806. package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
  807. package/fesm2015/fundamental-ngx-core-inline-help.mjs +7 -7
  808. package/fesm2015/fundamental-ngx-core-input-group.mjs +21 -21
  809. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  810. package/fesm2015/fundamental-ngx-core-layout-grid.mjs +14 -14
  811. package/fesm2015/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  812. package/fesm2015/fundamental-ngx-core-layout-panel.mjs +32 -32
  813. package/fesm2015/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  814. package/fesm2015/fundamental-ngx-core-link.mjs +18 -17
  815. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  816. package/fesm2015/fundamental-ngx-core-list.mjs +66 -66
  817. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  818. package/fesm2015/fundamental-ngx-core-menu.mjs +48 -48
  819. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  820. package/fesm2015/fundamental-ngx-core-message-box.mjs +41 -41
  821. package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  822. package/fesm2015/fundamental-ngx-core-message-page.mjs +20 -20
  823. package/fesm2015/fundamental-ngx-core-message-page.mjs.map +1 -1
  824. package/fesm2015/fundamental-ngx-core-message-strip.mjs +8 -8
  825. package/fesm2015/fundamental-ngx-core-message-strip.mjs.map +1 -1
  826. package/fesm2015/fundamental-ngx-core-message-toast.mjs +14 -14
  827. package/fesm2015/fundamental-ngx-core-message-toast.mjs.map +1 -1
  828. package/fesm2015/fundamental-ngx-core-micro-process-flow.mjs +22 -22
  829. package/fesm2015/fundamental-ngx-core-multi-input.mjs +17 -17
  830. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  831. package/fesm2015/fundamental-ngx-core-nested-list.mjs +43 -43
  832. package/fesm2015/fundamental-ngx-core-nested-list.mjs.map +1 -1
  833. package/fesm2015/fundamental-ngx-core-notification.mjs +66 -66
  834. package/fesm2015/fundamental-ngx-core-notification.mjs.map +1 -1
  835. package/fesm2015/fundamental-ngx-core-object-identifier.mjs +9 -9
  836. package/fesm2015/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  837. package/fesm2015/fundamental-ngx-core-object-marker.mjs +9 -9
  838. package/fesm2015/fundamental-ngx-core-object-marker.mjs.map +1 -1
  839. package/fesm2015/fundamental-ngx-core-object-number.mjs +8 -8
  840. package/fesm2015/fundamental-ngx-core-object-number.mjs.map +1 -1
  841. package/fesm2015/fundamental-ngx-core-object-status.mjs +9 -9
  842. package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
  843. package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +31 -31
  844. package/fesm2015/fundamental-ngx-core-pagination.mjs +14 -14
  845. package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
  846. package/fesm2015/fundamental-ngx-core-panel.mjs +17 -17
  847. package/fesm2015/fundamental-ngx-core-panel.mjs.map +1 -1
  848. package/fesm2015/fundamental-ngx-core-popover.mjs +39 -39
  849. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  850. package/fesm2015/fundamental-ngx-core-product-switch.mjs +11 -11
  851. package/fesm2015/fundamental-ngx-core-product-switch.mjs.map +1 -1
  852. package/fesm2015/fundamental-ngx-core-progress-indicator.mjs +8 -8
  853. package/fesm2015/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  854. package/fesm2015/fundamental-ngx-core-quick-view.mjs +38 -38
  855. package/fesm2015/fundamental-ngx-core-quick-view.mjs.map +1 -1
  856. package/fesm2015/fundamental-ngx-core-radio.mjs +12 -12
  857. package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
  858. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +12 -12
  859. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  860. package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +12 -12
  861. package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  862. package/fesm2015/fundamental-ngx-core-scroll-spy.mjs +7 -7
  863. package/fesm2015/fundamental-ngx-core-scrollbar.mjs +8 -8
  864. package/fesm2015/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  865. package/fesm2015/fundamental-ngx-core-segmented-button.mjs +9 -9
  866. package/fesm2015/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  867. package/fesm2015/fundamental-ngx-core-select.mjs +27 -27
  868. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  869. package/fesm2015/fundamental-ngx-core-shared.mjs +3 -3
  870. package/fesm2015/fundamental-ngx-core-shellbar.mjs +39 -39
  871. package/fesm2015/fundamental-ngx-core-shellbar.mjs.map +1 -1
  872. package/fesm2015/fundamental-ngx-core-side-navigation.mjs +14 -14
  873. package/fesm2015/fundamental-ngx-core-side-navigation.mjs.map +1 -1
  874. package/fesm2015/fundamental-ngx-core-slider.mjs +15 -15
  875. package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
  876. package/fesm2015/fundamental-ngx-core-split-button.mjs +14 -14
  877. package/fesm2015/fundamental-ngx-core-split-button.mjs.map +1 -1
  878. package/fesm2015/fundamental-ngx-core-splitter.mjs +23 -23
  879. package/fesm2015/fundamental-ngx-core-splitter.mjs.map +1 -1
  880. package/fesm2015/fundamental-ngx-core-status-indicator.mjs +8 -8
  881. package/fesm2015/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  882. package/fesm2015/fundamental-ngx-core-step-input.mjs +12 -12
  883. package/fesm2015/fundamental-ngx-core-step-input.mjs.map +1 -1
  884. package/fesm2015/fundamental-ngx-core-switch.mjs +12 -12
  885. package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
  886. package/fesm2015/fundamental-ngx-core-table.mjs +52 -52
  887. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  888. package/fesm2015/fundamental-ngx-core-tabs.mjs +58 -58
  889. package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
  890. package/fesm2015/fundamental-ngx-core-text.mjs +8 -8
  891. package/fesm2015/fundamental-ngx-core-text.mjs.map +1 -1
  892. package/fesm2015/fundamental-ngx-core-theming.mjs +7 -7
  893. package/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
  894. package/fesm2015/fundamental-ngx-core-tile.mjs +104 -104
  895. package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  896. package/fesm2015/fundamental-ngx-core-time-picker.mjs +10 -10
  897. package/fesm2015/fundamental-ngx-core-time.mjs +18 -18
  898. package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  899. package/fesm2015/fundamental-ngx-core-timeline.mjs +43 -43
  900. package/fesm2015/fundamental-ngx-core-title.mjs +8 -8
  901. package/fesm2015/fundamental-ngx-core-title.mjs.map +1 -1
  902. package/fesm2015/fundamental-ngx-core-token.mjs +18 -18
  903. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  904. package/fesm2015/fundamental-ngx-core-toolbar.mjs +39 -39
  905. package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
  906. package/fesm2015/fundamental-ngx-core-tree.mjs +11 -11
  907. package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
  908. package/fesm2015/fundamental-ngx-core-upload-collection.mjs +39 -39
  909. package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  910. package/fesm2015/fundamental-ngx-core-utils.mjs +160 -160
  911. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  912. package/fesm2015/fundamental-ngx-core-vertical-navigation.mjs +15 -15
  913. package/fesm2015/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  914. package/fesm2015/fundamental-ngx-core-wizard.mjs +33 -33
  915. package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
  916. package/fesm2015/fundamental-ngx-core.mjs +4 -4
  917. package/fesm2020/fundamental-ngx-core-action-bar.mjs +26 -26
  918. package/fesm2020/fundamental-ngx-core-action-bar.mjs.map +1 -1
  919. package/fesm2020/fundamental-ngx-core-action-sheet.mjs +27 -27
  920. package/fesm2020/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  921. package/fesm2020/fundamental-ngx-core-alert.mjs +14 -14
  922. package/fesm2020/fundamental-ngx-core-alert.mjs.map +1 -1
  923. package/fesm2020/fundamental-ngx-core-avatar-group.mjs +30 -30
  924. package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  925. package/fesm2020/fundamental-ngx-core-avatar.mjs +8 -8
  926. package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  927. package/fesm2020/fundamental-ngx-core-bar.mjs +30 -30
  928. package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
  929. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -14
  930. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  931. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +11 -11
  932. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  933. package/fesm2020/fundamental-ngx-core-button.mjs +15 -15
  934. package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
  935. package/fesm2020/fundamental-ngx-core-calendar.mjs +36 -36
  936. package/fesm2020/fundamental-ngx-core-calendar.mjs.map +1 -1
  937. package/fesm2020/fundamental-ngx-core-card.mjs +60 -60
  938. package/fesm2020/fundamental-ngx-core-card.mjs.map +1 -1
  939. package/fesm2020/fundamental-ngx-core-carousel.mjs +20 -20
  940. package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
  941. package/fesm2020/fundamental-ngx-core-checkbox.mjs +12 -12
  942. package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  943. package/fesm2020/fundamental-ngx-core-combobox.mjs +20 -20
  944. package/fesm2020/fundamental-ngx-core-content-density.mjs +37 -37
  945. package/fesm2020/fundamental-ngx-core-date-picker.mjs +10 -10
  946. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +10 -10
  947. package/fesm2020/fundamental-ngx-core-datetime.mjs +24 -24
  948. package/fesm2020/fundamental-ngx-core-dialog.mjs +53 -53
  949. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  950. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +44 -44
  951. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  952. package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +14 -14
  953. package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  954. package/fesm2020/fundamental-ngx-core-facets.mjs +14 -14
  955. package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
  956. package/fesm2020/fundamental-ngx-core-feed-input.mjs +17 -17
  957. package/fesm2020/fundamental-ngx-core-feed-input.mjs.map +1 -1
  958. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +23 -23
  959. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  960. package/fesm2020/fundamental-ngx-core-file-uploader.mjs +21 -21
  961. package/fesm2020/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  962. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +14 -14
  963. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  964. package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -8
  965. package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  966. package/fesm2020/fundamental-ngx-core-form.mjs +86 -86
  967. package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  968. package/fesm2020/fundamental-ngx-core-formatted-text.mjs +7 -7
  969. package/fesm2020/fundamental-ngx-core-grid-list.mjs +47 -47
  970. package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  971. package/fesm2020/fundamental-ngx-core-icon.mjs +8 -8
  972. package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
  973. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +21 -21
  974. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  975. package/fesm2020/fundamental-ngx-core-infinite-scroll.mjs +7 -7
  976. package/fesm2020/fundamental-ngx-core-info-label.mjs +8 -8
  977. package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
  978. package/fesm2020/fundamental-ngx-core-inline-help.mjs +7 -7
  979. package/fesm2020/fundamental-ngx-core-input-group.mjs +21 -21
  980. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  981. package/fesm2020/fundamental-ngx-core-layout-grid.mjs +14 -14
  982. package/fesm2020/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  983. package/fesm2020/fundamental-ngx-core-layout-panel.mjs +32 -32
  984. package/fesm2020/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  985. package/fesm2020/fundamental-ngx-core-link.mjs +18 -17
  986. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  987. package/fesm2020/fundamental-ngx-core-list.mjs +66 -66
  988. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  989. package/fesm2020/fundamental-ngx-core-menu.mjs +48 -48
  990. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  991. package/fesm2020/fundamental-ngx-core-message-box.mjs +41 -41
  992. package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  993. package/fesm2020/fundamental-ngx-core-message-page.mjs +20 -20
  994. package/fesm2020/fundamental-ngx-core-message-page.mjs.map +1 -1
  995. package/fesm2020/fundamental-ngx-core-message-strip.mjs +8 -8
  996. package/fesm2020/fundamental-ngx-core-message-strip.mjs.map +1 -1
  997. package/fesm2020/fundamental-ngx-core-message-toast.mjs +14 -14
  998. package/fesm2020/fundamental-ngx-core-message-toast.mjs.map +1 -1
  999. package/fesm2020/fundamental-ngx-core-micro-process-flow.mjs +22 -22
  1000. package/fesm2020/fundamental-ngx-core-multi-input.mjs +17 -17
  1001. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  1002. package/fesm2020/fundamental-ngx-core-nested-list.mjs +43 -43
  1003. package/fesm2020/fundamental-ngx-core-nested-list.mjs.map +1 -1
  1004. package/fesm2020/fundamental-ngx-core-notification.mjs +66 -66
  1005. package/fesm2020/fundamental-ngx-core-notification.mjs.map +1 -1
  1006. package/fesm2020/fundamental-ngx-core-object-identifier.mjs +9 -9
  1007. package/fesm2020/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  1008. package/fesm2020/fundamental-ngx-core-object-marker.mjs +9 -9
  1009. package/fesm2020/fundamental-ngx-core-object-marker.mjs.map +1 -1
  1010. package/fesm2020/fundamental-ngx-core-object-number.mjs +8 -8
  1011. package/fesm2020/fundamental-ngx-core-object-number.mjs.map +1 -1
  1012. package/fesm2020/fundamental-ngx-core-object-status.mjs +9 -9
  1013. package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
  1014. package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +31 -31
  1015. package/fesm2020/fundamental-ngx-core-pagination.mjs +14 -14
  1016. package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
  1017. package/fesm2020/fundamental-ngx-core-panel.mjs +17 -17
  1018. package/fesm2020/fundamental-ngx-core-panel.mjs.map +1 -1
  1019. package/fesm2020/fundamental-ngx-core-popover.mjs +39 -39
  1020. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  1021. package/fesm2020/fundamental-ngx-core-product-switch.mjs +11 -11
  1022. package/fesm2020/fundamental-ngx-core-product-switch.mjs.map +1 -1
  1023. package/fesm2020/fundamental-ngx-core-progress-indicator.mjs +8 -8
  1024. package/fesm2020/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  1025. package/fesm2020/fundamental-ngx-core-quick-view.mjs +38 -38
  1026. package/fesm2020/fundamental-ngx-core-quick-view.mjs.map +1 -1
  1027. package/fesm2020/fundamental-ngx-core-radio.mjs +12 -12
  1028. package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
  1029. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +12 -12
  1030. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  1031. package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +12 -12
  1032. package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  1033. package/fesm2020/fundamental-ngx-core-scroll-spy.mjs +7 -7
  1034. package/fesm2020/fundamental-ngx-core-scrollbar.mjs +8 -8
  1035. package/fesm2020/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  1036. package/fesm2020/fundamental-ngx-core-segmented-button.mjs +9 -9
  1037. package/fesm2020/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  1038. package/fesm2020/fundamental-ngx-core-select.mjs +27 -27
  1039. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  1040. package/fesm2020/fundamental-ngx-core-shared.mjs +3 -3
  1041. package/fesm2020/fundamental-ngx-core-shellbar.mjs +39 -39
  1042. package/fesm2020/fundamental-ngx-core-shellbar.mjs.map +1 -1
  1043. package/fesm2020/fundamental-ngx-core-side-navigation.mjs +14 -14
  1044. package/fesm2020/fundamental-ngx-core-side-navigation.mjs.map +1 -1
  1045. package/fesm2020/fundamental-ngx-core-slider.mjs +15 -15
  1046. package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
  1047. package/fesm2020/fundamental-ngx-core-split-button.mjs +14 -14
  1048. package/fesm2020/fundamental-ngx-core-split-button.mjs.map +1 -1
  1049. package/fesm2020/fundamental-ngx-core-splitter.mjs +23 -23
  1050. package/fesm2020/fundamental-ngx-core-splitter.mjs.map +1 -1
  1051. package/fesm2020/fundamental-ngx-core-status-indicator.mjs +8 -8
  1052. package/fesm2020/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  1053. package/fesm2020/fundamental-ngx-core-step-input.mjs +12 -12
  1054. package/fesm2020/fundamental-ngx-core-step-input.mjs.map +1 -1
  1055. package/fesm2020/fundamental-ngx-core-switch.mjs +12 -12
  1056. package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
  1057. package/fesm2020/fundamental-ngx-core-table.mjs +52 -52
  1058. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  1059. package/fesm2020/fundamental-ngx-core-tabs.mjs +58 -58
  1060. package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
  1061. package/fesm2020/fundamental-ngx-core-text.mjs +8 -8
  1062. package/fesm2020/fundamental-ngx-core-text.mjs.map +1 -1
  1063. package/fesm2020/fundamental-ngx-core-theming.mjs +7 -7
  1064. package/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
  1065. package/fesm2020/fundamental-ngx-core-tile.mjs +104 -104
  1066. package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  1067. package/fesm2020/fundamental-ngx-core-time-picker.mjs +10 -10
  1068. package/fesm2020/fundamental-ngx-core-time.mjs +18 -18
  1069. package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  1070. package/fesm2020/fundamental-ngx-core-timeline.mjs +43 -43
  1071. package/fesm2020/fundamental-ngx-core-title.mjs +8 -8
  1072. package/fesm2020/fundamental-ngx-core-title.mjs.map +1 -1
  1073. package/fesm2020/fundamental-ngx-core-token.mjs +18 -18
  1074. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  1075. package/fesm2020/fundamental-ngx-core-toolbar.mjs +39 -39
  1076. package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
  1077. package/fesm2020/fundamental-ngx-core-tree.mjs +11 -11
  1078. package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
  1079. package/fesm2020/fundamental-ngx-core-upload-collection.mjs +39 -39
  1080. package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  1081. package/fesm2020/fundamental-ngx-core-utils.mjs +160 -160
  1082. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  1083. package/fesm2020/fundamental-ngx-core-vertical-navigation.mjs +15 -15
  1084. package/fesm2020/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  1085. package/fesm2020/fundamental-ngx-core-wizard.mjs +33 -33
  1086. package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
  1087. package/fesm2020/fundamental-ngx-core.mjs +4 -4
  1088. package/file-uploader/deprecated-file-uploader-content-density.directive.d.ts +1 -1
  1089. package/file-uploader/directives/file-uploader-dragndrop.directive.d.ts +1 -1
  1090. package/file-uploader/directives/file-uploader-select.directive.d.ts +1 -1
  1091. package/file-uploader/file-uploader.component.d.ts +1 -1
  1092. package/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.d.ts +1 -1
  1093. package/fixed-card-layout/fixed-card-layout.component.d.ts +2 -2
  1094. package/flexible-column-layout/flexible-column-layout.component.d.ts +1 -1
  1095. package/form/fieldset/fieldset.component.d.ts +1 -1
  1096. package/form/form-control/deprecated-form-control-content-density.directive.d.ts +1 -1
  1097. package/form/form-control/form-control.component.d.ts +1 -1
  1098. package/form/form-control/input-form-control.directive.d.ts +1 -1
  1099. package/form/form-control/textarea-form-control.directive.d.ts +1 -1
  1100. package/form/form-group/form-group.component.d.ts +1 -1
  1101. package/form/form-header/form-header.component.d.ts +1 -1
  1102. package/form/form-input-message-group/form-input-message-group.component.d.ts +1 -1
  1103. package/form/form-item/form-item.component.d.ts +1 -1
  1104. package/form/form-label/form-label.component.d.ts +1 -1
  1105. package/form/form-legend/form-legend.directive.d.ts +1 -1
  1106. package/form/form-message/form-message.component.d.ts +1 -1
  1107. package/formatted-text/formatted-text.component.d.ts +1 -1
  1108. package/fundamental-ngx-core-v0.37.2.tgz +0 -0
  1109. package/grid-list/components/grid-list/grid-list-base.component.d.ts +1 -1
  1110. package/grid-list/components/grid-list/grid-list.component.d.ts +1 -1
  1111. package/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.d.ts +1 -1
  1112. package/grid-list/components/grid-list-footer/grid-list-footer.component.d.ts +1 -1
  1113. package/grid-list/components/grid-list-group-header/grid-list-group-header.component.d.ts +1 -1
  1114. package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +1 -1
  1115. package/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.d.ts +1 -1
  1116. package/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.d.ts +1 -1
  1117. package/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.d.ts +1 -1
  1118. package/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.d.ts +1 -1
  1119. package/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.d.ts +1 -1
  1120. package/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.d.ts +1 -1
  1121. package/grid-list/directives/grid-list-item-body.directive.d.ts +1 -1
  1122. package/grid-list/directives/grid-list-item-image.directive.d.ts +1 -1
  1123. package/icon/icon.component.d.ts +1 -1
  1124. package/illustrated-message/components/illustrated-message-actions/illustrated-message-actions.component.d.ts +1 -1
  1125. package/illustrated-message/components/illustrated-message-figcaption/illustrated-message-figcaption.component.d.ts +1 -1
  1126. package/illustrated-message/directives/illustrated-message-text/illustrated-message-text.directive.d.ts +1 -1
  1127. package/illustrated-message/directives/illustrated-message-title/illustrated-message-title.directive.d.ts +1 -1
  1128. package/illustrated-message/illustrated-message.component.d.ts +1 -1
  1129. package/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
  1130. package/info-label/info-label.component.d.ts +1 -1
  1131. package/inline-help/inline-help.directive.d.ts +1 -1
  1132. package/input-group/deprecated-input-group-compact.directive.d.ts +1 -1
  1133. package/input-group/input-group-directives.d.ts +3 -3
  1134. package/input-group/input-group.component.d.ts +1 -1
  1135. package/layout-grid/directives/layout-grid-col.directive.d.ts +1 -1
  1136. package/layout-grid/directives/layout-grid-row.directive.d.ts +1 -1
  1137. package/layout-grid/layout-grid.component.d.ts +1 -1
  1138. package/layout-panel/layout-panel-actions/layout-panel-actions.component.d.ts +1 -1
  1139. package/layout-panel/layout-panel-body/layout-panel-body.component.d.ts +1 -1
  1140. package/layout-panel/layout-panel-description/layout-panel-description.component.d.ts +1 -1
  1141. package/layout-panel/layout-panel-filters/layout-panel-filters.component.d.ts +1 -1
  1142. package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +1 -1
  1143. package/layout-panel/layout-panel-head/layout-panel-head.component.d.ts +1 -1
  1144. package/layout-panel/layout-panel-header/layout-panel-header.component.d.ts +1 -1
  1145. package/layout-panel/layout-panel-title/layout-panel-title.directive.d.ts +1 -1
  1146. package/layout-panel/layout-panel.component.d.ts +1 -1
  1147. package/link/link.component.d.ts +6 -4
  1148. package/list/deprecated-list-content-density,directive.d.ts +1 -1
  1149. package/list/directives/byline/list-byline-left.directive.d.ts +1 -1
  1150. package/list/directives/byline/list-byline-right.directive.d.ts +1 -1
  1151. package/list/directives/byline/list-byline.directive.d.ts +1 -1
  1152. package/list/directives/byline/list-content.directive.d.ts +1 -1
  1153. package/list/directives/byline/list-thumbnail.directive.d.ts +1 -1
  1154. package/list/directives/list-footer.directive.d.ts +1 -1
  1155. package/list/directives/list-group-header.directive.d.ts +1 -1
  1156. package/list/directives/list-icon.directive.d.ts +1 -1
  1157. package/list/directives/list-link.directive.d.ts +1 -1
  1158. package/list/directives/list-navigation-item-arrow.directive.d.ts +1 -1
  1159. package/list/directives/list-navigation-item-text.directive.d.ts +1 -1
  1160. package/list/directives/list-secondary.directive.d.ts +1 -1
  1161. package/list/directives/list-title-text.directive.d.ts +1 -1
  1162. package/list/directives/list-title.directive.d.ts +1 -1
  1163. package/list/list-focus-item.model.d.ts +1 -1
  1164. package/list/list-item/list-item.component.d.ts +1 -1
  1165. package/list/list-message.directive.d.ts +1 -1
  1166. package/list/list-navigation-item/list-navigation-item.component.d.ts +1 -1
  1167. package/list/list.component.d.ts +1 -1
  1168. package/menu/directives/deprecated-menu-compact.directive.d.ts +1 -1
  1169. package/menu/directives/menu-addon.directive.d.ts +1 -1
  1170. package/menu/directives/menu-interactive.directive.d.ts +1 -1
  1171. package/menu/directives/menu-shortcut.directive.d.ts +1 -1
  1172. package/menu/directives/menu-title.directive.d.ts +1 -1
  1173. package/menu/directives/menu-trigger.directive.d.ts +1 -1
  1174. package/menu/menu-item/menu-item.component.d.ts +2 -2
  1175. package/menu/menu-mobile/menu-mobile.component.d.ts +1 -1
  1176. package/menu/menu-separator/menu-separator.component.d.ts +1 -1
  1177. package/menu/menu.component.d.ts +1 -1
  1178. package/message-box/directives/message-box-decisive-button.directive.d.ts +1 -1
  1179. package/message-box/message-box-body/message-box-body.component.d.ts +1 -1
  1180. package/message-box/message-box-container/message-box-container.component.d.ts +1 -1
  1181. package/message-box/message-box-default/message-box-default.component.d.ts +1 -1
  1182. package/message-box/message-box-footer/message-box-footer.component.d.ts +1 -1
  1183. package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +1 -1
  1184. package/message-box/message-box-header/message-box-header.component.d.ts +1 -1
  1185. package/message-box/message-box-semantic-icon/message-box-semantic-icon.component.d.ts +1 -1
  1186. package/message-box/message-box.component.d.ts +1 -1
  1187. package/message-page/message-page-actions/message-page-actions.component.d.ts +1 -1
  1188. package/message-page/message-page-more/message-page-more.component.d.ts +1 -1
  1189. package/message-page/message-page-subtitle/message-page-subtitle.component.d.ts +1 -1
  1190. package/message-page/message-page-title/message-page-title.component.d.ts +1 -1
  1191. package/message-page/message-page.component.d.ts +1 -1
  1192. package/message-strip/message-strip.component.d.ts +1 -1
  1193. package/message-toast/message-toast-utils/message-toast-container.component.d.ts +1 -1
  1194. package/message-toast/message-toast.component.d.ts +1 -1
  1195. package/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.d.ts +1 -1
  1196. package/micro-process-flow/components/micro-process-flow/micro-process-flow.component.d.ts +1 -1
  1197. package/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.d.ts +1 -1
  1198. package/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.d.ts +1 -1
  1199. package/micro-process-flow/micro-process-flow-focusable-item.directive.d.ts +1 -1
  1200. package/micro-process-flow/micro-process-flow-intermediary-item.directive.d.ts +1 -1
  1201. package/multi-input/deprecated-multi-input-compact.directive.d.ts +1 -1
  1202. package/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +1 -1
  1203. package/multi-input/multi-input.component.d.ts +1 -1
  1204. package/nested-list/deprecated-nested-list-compact.directive.d.ts +1 -1
  1205. package/nested-list/nested-content/nested-list-content.directive.d.ts +1 -1
  1206. package/nested-list/nested-item/nested-item.directive.d.ts +1 -1
  1207. package/nested-list/nested-link/nested-link.directive.d.ts +1 -1
  1208. package/nested-list/nested-list/nested-list.directive.d.ts +1 -1
  1209. package/nested-list/nested-list-directives.d.ts +4 -4
  1210. package/nested-list/nested-list-popover/nested-list-popover.component.d.ts +1 -1
  1211. package/nested-list/prepared-nested-list/prepared-nested-list.component.d.ts +1 -1
  1212. package/notification/directives/notification-footer-content.directive.d.ts +1 -1
  1213. package/notification/directives/notification-indicator.directive.d.ts +1 -1
  1214. package/notification/directives/notification-limit-description.directive.d.ts +1 -1
  1215. package/notification/directives/notification-limit-title.directive.d.ts +1 -1
  1216. package/notification/directives/notification-paragraph.directive.d.ts +1 -1
  1217. package/notification/directives/notification-separator.directive.d.ts +1 -1
  1218. package/notification/directives/notification-title.directive.d.ts +1 -1
  1219. package/notification/notification/notification.component.d.ts +1 -1
  1220. package/notification/notification-actions/notification-actions.component.d.ts +1 -1
  1221. package/notification/notification-body/notification-body.component.d.ts +1 -1
  1222. package/notification/notification-content/notification-content.component.d.ts +1 -1
  1223. package/notification/notification-footer/notification-footer.component.d.ts +1 -1
  1224. package/notification/notification-group/notification-group.component.d.ts +1 -1
  1225. package/notification/notification-group-header/notification-group-header.component.d.ts +1 -1
  1226. package/notification/notification-group-list/notification-group-list.component.d.ts +1 -1
  1227. package/notification/notification-header/notification-header.component.d.ts +1 -1
  1228. package/notification/notification-limit/notification-limit.component.d.ts +1 -1
  1229. package/notification/notification-utils/notification-container.d.ts +1 -1
  1230. package/notification/notification-utils/notification-group-base.d.ts +1 -1
  1231. package/object-identifier/object-identifier.component.d.ts +1 -1
  1232. package/object-marker/object-marker.component.d.ts +1 -1
  1233. package/object-number/object-number.component.d.ts +1 -1
  1234. package/object-status/object-status.component.d.ts +1 -1
  1235. package/overflow-layout/directives/overflow-expand.directive.d.ts +1 -1
  1236. package/overflow-layout/directives/overflow-item-container-ref.directive.d.ts +1 -1
  1237. package/overflow-layout/directives/overflow-item-ref.directive.d.ts +1 -1
  1238. package/overflow-layout/directives/overflow-layout-focusable-item.directive.d.ts +1 -1
  1239. package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +1 -1
  1240. package/overflow-layout/directives/overflow-layout-item.directive.d.ts +1 -1
  1241. package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +1 -1
  1242. package/overflow-layout/overflow-layout.component.d.ts +1 -1
  1243. package/package.json +9 -9
  1244. package/pagination/deprecated-pagination-compact.directive.d.ts +1 -1
  1245. package/pagination/pagination.component.d.ts +1 -1
  1246. package/panel/deprecated-panel-compact.directive.d.ts +1 -1
  1247. package/panel/panel-content/panel-content.directive.d.ts +1 -1
  1248. package/panel/panel-title/panel-title.directive.d.ts +1 -1
  1249. package/panel/panel.component.d.ts +1 -1
  1250. package/popover/base/base-popover.class.d.ts +1 -1
  1251. package/popover/popover-body/popover-body-directives/popover-body-footer.directive.d.ts +1 -1
  1252. package/popover/popover-body/popover-body-directives/popover-body-header.directive.d.ts +1 -1
  1253. package/popover/popover-body/popover-body.component.d.ts +1 -1
  1254. package/popover/popover-container/popover-container.directive.d.ts +1 -1
  1255. package/popover/popover-control/popover-control.component.d.ts +1 -1
  1256. package/popover/popover-mobile/popover-mobile.component.d.ts +1 -1
  1257. package/popover/popover-trigger.directive.d.ts +1 -1
  1258. package/popover/popover.component.d.ts +1 -1
  1259. package/product-switch/product-switch/product-switch.component.d.ts +1 -1
  1260. package/product-switch/product-switch-body/product-switch-body.component.d.ts +1 -1
  1261. package/progress-indicator/progress-indicator.component.d.ts +1 -1
  1262. package/quick-view/quick-view/quick-view.component.d.ts +1 -1
  1263. package/quick-view/quick-view-group/quick-view-group.component.d.ts +1 -1
  1264. package/quick-view/quick-view-group-item/quick-view-group-item.component.d.ts +1 -1
  1265. package/quick-view/quick-view-group-item-content/quick-view-group-item-content-element.directive.d.ts +1 -1
  1266. package/quick-view/quick-view-group-item-content/quick-view-group-item-content.component.d.ts +1 -1
  1267. package/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.d.ts +1 -1
  1268. package/quick-view/quick-view-group-title/quick-view-group-title.component.d.ts +1 -1
  1269. package/quick-view/quick-view-subheader/quick-view-subheader.component.d.ts +1 -1
  1270. package/quick-view/quick-view-subheader-subtitle/quick-view-subheader-subtitle.component.d.ts +1 -1
  1271. package/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.d.ts +1 -1
  1272. package/quick-view/quick-view-title/quick-view-title.component.d.ts +1 -1
  1273. package/radio/deprecated-radio-button-compact.directive.d.ts +1 -1
  1274. package/radio/radio-button/radio-button.component.d.ts +1 -1
  1275. package/rating-indicator/components/rating-indicator.component.d.ts +1 -1
  1276. package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +1 -1
  1277. package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +1 -1
  1278. package/scroll-spy/scroll-spy.directive.d.ts +1 -1
  1279. package/scrollbar/scrollbar.component.d.ts +1 -1
  1280. package/segmented-button/segmented-button.component.d.ts +1 -1
  1281. package/select/deprecated-select-compact.directive.d.ts +1 -1
  1282. package/select/option/option.component.d.ts +1 -1
  1283. package/select/select-mobile/select-mobile.component.d.ts +1 -1
  1284. package/select/select.component.d.ts +1 -1
  1285. package/shellbar/deprecated-shellbar-compact.directive.d.ts +1 -1
  1286. package/shellbar/product-menu/product-menu.component.d.ts +1 -1
  1287. package/shellbar/shellbar-action/shellbar-action.component.d.ts +1 -1
  1288. package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -1
  1289. package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +1 -1
  1290. package/shellbar/shellbar-logo/shellbar-logo.component.d.ts +1 -1
  1291. package/shellbar/shellbar-sidenav.directive.d.ts +1 -1
  1292. package/shellbar/shellbar-subtitle/shellbar-subtitle.component.d.ts +1 -1
  1293. package/shellbar/shellbar-title/shellbar-title.component.d.ts +1 -1
  1294. package/shellbar/shellbar.component.d.ts +1 -1
  1295. package/shellbar/user-menu/shellbar-user-menu.component.d.ts +1 -1
  1296. package/side-navigation/side-navigation-main.directive.d.ts +1 -1
  1297. package/side-navigation/side-navigation-utility.directive.d.ts +1 -1
  1298. package/side-navigation/side-navigation.component.d.ts +1 -1
  1299. package/slider/deprecated-slider-cozy.directive.d.ts +1 -1
  1300. package/slider/slider-position.directive.d.ts +1 -1
  1301. package/slider/slider.component.d.ts +1 -1
  1302. package/split-button/deprecated-split-button-compact.directive.d.ts +1 -1
  1303. package/split-button/split-button-utils/split-button.directives.d.ts +1 -1
  1304. package/split-button/split-button.component.d.ts +1 -1
  1305. package/splitter/splitter-pagination/splitter-pagination.component.d.ts +1 -1
  1306. package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
  1307. package/splitter/splitter-resizer/splitter-resizer.component.d.ts +1 -1
  1308. package/splitter/splitter-split-pane/splitter-split-pane.component.d.ts +1 -1
  1309. package/splitter/splitter.component.d.ts +1 -1
  1310. package/status-indicator/status-indicator.component.d.ts +1 -1
  1311. package/step-input/deprecated-step-input-compact.directive.d.ts +1 -1
  1312. package/step-input/step-input.component.d.ts +1 -1
  1313. package/switch/deprecated-switch-compact.directive.d.ts +1 -1
  1314. package/switch/switch.component.d.ts +1 -1
  1315. package/table/deprecated-table-compact.directive.d.ts +1 -1
  1316. package/table/deprecated-table-condensed.directive.d.ts +1 -1
  1317. package/table/directives/table-body.directive.d.ts +1 -1
  1318. package/table/directives/table-cell.directive.d.ts +1 -1
  1319. package/table/directives/table-footer.directive.d.ts +1 -1
  1320. package/table/directives/table-header.directive.d.ts +1 -1
  1321. package/table/directives/table-icon.directive.d.ts +1 -1
  1322. package/table/directives/table-inner.directive.d.ts +1 -1
  1323. package/table/directives/table-popover.directive.d.ts +1 -1
  1324. package/table/directives/table-responsive-wrapper.directive.d.ts +1 -1
  1325. package/table/directives/table-row.directive.d.ts +1 -1
  1326. package/table/directives/table-status-indicator.directive.d.ts +1 -1
  1327. package/table/directives/table-text.directive.d.ts +1 -1
  1328. package/table/table-wrapper.component.d.ts +1 -1
  1329. package/table/table.component.d.ts +1 -1
  1330. package/tabs/deprecated-tabs-compact.directive.d.ts +1 -1
  1331. package/tabs/tab-item/tab-item.directive.d.ts +1 -1
  1332. package/tabs/tab-item-expand/tab-item-expand.component.d.ts +1 -1
  1333. package/tabs/tab-link/tab-link.directive.d.ts +1 -1
  1334. package/tabs/tab-list.component.d.ts +1 -1
  1335. package/tabs/tab-nav/tab-nav.component.d.ts +1 -1
  1336. package/tabs/tab-panel/tab-panel.component.d.ts +1 -1
  1337. package/tabs/tab-utils/tab-directives.d.ts +10 -10
  1338. package/text/text.component.d.ts +1 -1
  1339. package/tile/directives/numeric-content.directives.d.ts +9 -9
  1340. package/tile/directives/tile.directives.d.ts +23 -23
  1341. package/tile/tile.component.d.ts +1 -1
  1342. package/time/deprecated-time-content-density.directive.d.ts +1 -1
  1343. package/time/time-column/time-column.component.d.ts +1 -1
  1344. package/time/time.component.d.ts +1 -1
  1345. package/time-picker/deprecated-timepicker-compact.directive.d.ts +1 -1
  1346. package/time-picker/time-picker.component.d.ts +1 -1
  1347. package/timeline/components/timeline-node/timeline-node.component.d.ts +1 -1
  1348. package/timeline/components/timeline-node-body/timeline-node-body.component.d.ts +1 -1
  1349. package/timeline/components/timeline-node-footer/timeline-node-footer.component.d.ts +1 -1
  1350. package/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.d.ts +1 -1
  1351. package/timeline/components/timeline-node-header/timeline-node-header.component.d.ts +1 -1
  1352. package/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.d.ts +1 -1
  1353. package/timeline/directives/class-bindings/timeline-node-header-info-text.directive.d.ts +1 -1
  1354. package/timeline/directives/class-bindings/timeline-node-header-info-title.directive.d.ts +1 -1
  1355. package/timeline/directives/timeline-first-list-outlet.directive.d.ts +1 -1
  1356. package/timeline/directives/timeline-node-def.directive.d.ts +1 -1
  1357. package/timeline/directives/timeline-second-list-outlet.directive.d.ts +1 -1
  1358. package/timeline/timeline.component.d.ts +1 -1
  1359. package/title/title.component.d.ts +1 -1
  1360. package/token/deprecated-tokenizer-content-density.directive.d.ts +1 -1
  1361. package/token/token-input.directive.d.ts +1 -1
  1362. package/token/token.component.d.ts +1 -1
  1363. package/token/tokenizer.component.d.ts +1 -1
  1364. package/toolbar/deprecated-toolbar-size.directive.d.ts +1 -1
  1365. package/toolbar/toolbar-form-label.directive.d.ts +1 -1
  1366. package/toolbar/toolbar-item.directive.d.ts +1 -1
  1367. package/toolbar/toolbar-label.directive.d.ts +1 -1
  1368. package/toolbar/toolbar-overflow-button-menu.directive.d.ts +1 -1
  1369. package/toolbar/toolbar-overflow-button.directive.d.ts +1 -1
  1370. package/toolbar/toolbar-overflow-group.directive.d.ts +1 -1
  1371. package/toolbar/toolbar-overflow-priority.directive.d.ts +1 -1
  1372. package/toolbar/toolbar-separator.component.d.ts +1 -1
  1373. package/toolbar/toolbar-spacer.component.d.ts +1 -1
  1374. package/toolbar/toolbar.component.d.ts +1 -1
  1375. package/tree/tree-child.component.d.ts +1 -1
  1376. package/tree/tree.component.d.ts +1 -1
  1377. package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +1 -1
  1378. package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +1 -1
  1379. package/upload-collection/upload-collection-item.directive.d.ts +1 -1
  1380. package/upload-collection/upload-collection-simple.directives.d.ts +7 -7
  1381. package/upload-collection/upload-collection.component.d.ts +1 -1
  1382. package/utils/abstract-fd-ngx-class.d.ts +1 -1
  1383. package/utils/directives/auto-complete/auto-complete.directive.d.ts +1 -1
  1384. package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +1 -1
  1385. package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +1 -1
  1386. package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +1 -1
  1387. package/utils/directives/initial-focus/initial-focus.directive.d.ts +1 -1
  1388. package/utils/directives/line-clamp/line-clamp.directive.d.ts +2 -2
  1389. package/utils/directives/only-digits/only-digits.directive.d.ts +1 -1
  1390. package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +1 -1
  1391. package/utils/directives/overflow-list/overflow-list.directive.d.ts +1 -1
  1392. package/utils/directives/resize/resize-handle.directive.d.ts +1 -1
  1393. package/utils/directives/resize/resize.directive.d.ts +1 -1
  1394. package/utils/directives/template/template.directive.d.ts +1 -1
  1395. package/utils/directives/truncate/truncate.directive.d.ts +1 -1
  1396. package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
  1397. package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
  1398. package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
  1399. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
  1400. package/utils/dynamic-component/dynamic-component-injector.d.ts +0 -11
  1401. package/vertical-navigation/vertical-navigation-group-header.directive.d.ts +1 -1
  1402. package/vertical-navigation/vertical-navigation-main-navigation.component.d.ts +1 -1
  1403. package/vertical-navigation/vertical-navigation.component.d.ts +1 -1
  1404. package/wizard/deprecated-wizard-compact.directive.d.ts +1 -1
  1405. package/wizard/wizard-content/wizard-content.component.d.ts +1 -1
  1406. package/wizard/wizard-navigation/wizard-navigation.component.d.ts +1 -1
  1407. package/wizard/wizard-next-step/wizard-next-step.component.d.ts +1 -1
  1408. package/wizard/wizard-progress-bar/wizard-progress-bar.directive.d.ts +1 -1
  1409. package/wizard/wizard-step/wizard-step.component.d.ts +1 -1
  1410. package/wizard/wizard-step-indicator/wizard-step-indicator.component.d.ts +1 -1
  1411. package/wizard/wizard.component.d.ts +1 -1
  1412. package/fundamental-ngx-core-v0.37.2-rc.0.tgz +0 -0
@@ -561,8 +561,8 @@ export class MultiInputComponent {
561
561
  }
562
562
  }
563
563
  }
564
- MultiInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.ContentDensityObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.DynamicComponentService }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i2.RtlService, optional: true }, { token: i2.FocusTrapService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
565
- MultiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: MultiInputComponent, selector: "fd-multi-input", inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", compactCollapse: "compactCollapse", maxHeight: "maxHeight", glyph: "glyph", dropdownValues: "dropdownValues", searchTerm: "searchTerm", inputId: "inputId", highlight: "highlight", selected: "selected", class: "class", filterFn: "filterFn", valueFn: "valueFn", displayFn: "displayFn", newTokenParseFn: "newTokenParseFn", newTokenValidateFn: "newTokenValidateFn", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", fillControlMode: "fillControlMode", state: "state", buttonFocusable: "buttonFocusable", allowNewTokens: "allowNewTokens", mobile: "mobile", showAllButton: "showAllButton", bodyMaxWidth: "bodyMaxWidth", mobileConfig: "mobileConfig", includes: "includes", itemTemplate: "itemTemplate", title: "title", autoComplete: "autoComplete", open: "open", displayAddonButton: "displayAddonButton" }, outputs: { searchTermChange: "searchTermChange", selectedChange: "selectedChange", openChange: "openChange", allItemsSelectedChange: "allItemsSelectedChange" }, host: { listeners: { "focusout": "_focusOut($event)" } }, providers: [
564
+ MultiInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.ContentDensityObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.DynamicComponentService }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i2.RtlService, optional: true }, { token: i2.FocusTrapService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
565
+ MultiInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MultiInputComponent, selector: "fd-multi-input", inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", compactCollapse: "compactCollapse", maxHeight: "maxHeight", glyph: "glyph", dropdownValues: "dropdownValues", searchTerm: "searchTerm", inputId: "inputId", highlight: "highlight", selected: "selected", class: "class", filterFn: "filterFn", valueFn: "valueFn", displayFn: "displayFn", newTokenParseFn: "newTokenParseFn", newTokenValidateFn: "newTokenValidateFn", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", fillControlMode: "fillControlMode", state: "state", buttonFocusable: "buttonFocusable", allowNewTokens: "allowNewTokens", mobile: "mobile", showAllButton: "showAllButton", bodyMaxWidth: "bodyMaxWidth", mobileConfig: "mobileConfig", includes: "includes", itemTemplate: "itemTemplate", title: "title", autoComplete: "autoComplete", open: "open", displayAddonButton: "displayAddonButton" }, outputs: { searchTermChange: "searchTermChange", selectedChange: "selectedChange", openChange: "openChange", allItemsSelectedChange: "allItemsSelectedChange" }, host: { listeners: { "focusout": "_focusOut($event)" } }, providers: [
566
566
  {
567
567
  provide: NG_VALUE_ACCESSOR,
568
568
  useExisting: forwardRef(() => MultiInputComponent),
@@ -578,7 +578,7 @@ __decorate([
578
578
  __metadata("design:paramtypes", []),
579
579
  __metadata("design:returntype", Array)
580
580
  ], MultiInputComponent.prototype, "buildComponentCssClass", null);
581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MultiInputComponent, decorators: [{
581
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MultiInputComponent, decorators: [{
582
582
  type: Component,
583
583
  args: [{ selector: 'fd-multi-input', host: {
584
584
  '(focusout)': '_focusOut($event)'
@@ -689,4 +689,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
689
689
  type: ViewChild,
690
690
  args: [TokenizerComponent]
691
691
  }], buildComponentCssClass: [] } });
692
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFP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QWE7c0JBRFosS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLRyxnQkFBZ0I7c0JBRHhCLE1BQU07Z0JBS0UsY0FBYztzQkFEdEIsTUFBTTtnQkFLUCxJQUFJO3NCQURILEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtHLFVBQVU7c0JBRGxCLE1BQU07Z0JBS0Usc0JBQXNCO3NCQUQ5QixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSzNCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUszQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFLeEMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS3JELFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBd0c3QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIEVTQ0FQRSwgU1BBQ0UsIFRBQiwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBNZW51S2V5Ym9hcmRTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcywgTnVsbGFibGUsIFBvcG92ZXJGaWxsTW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBUb2tlbml6ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9rZW4nO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGlzdCc7XG5pbXBvcnQge1xuICAgIGFwcGx5Q3NzQ2xhc3MsXG4gICAgQ3NzQ2xhc3NCdWlsZGVyLFxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIEZvY3VzRXNjYXBlRGlyZWN0aW9uLFxuICAgIEZvY3VzVHJhcFNlcnZpY2UsXG4gICAgS2V5VXRpbCxcbiAgICBSYW5nZVNlbGVjdG9yLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgdXVpZHY0XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbmltcG9ydCB7IE11bHRpSW5wdXRNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL211bHRpLWlucHV0LW1vYmlsZS9tdWx0aS1pbnB1dC1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpSW5wdXRNb2JpbGVNb2R1bGUgfSBmcm9tICcuL211bHRpLWlucHV0LW1vYmlsZS9tdWx0aS1pbnB1dC1tb2JpbGUubW9kdWxlJztcbmltcG9ydCB7IE1VTFRJX0lOUFVUX0NPTVBPTkVOVCwgTXVsdGlJbnB1dEludGVyZmFjZSB9IGZyb20gJy4vbXVsdGktaW5wdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcblxuLyoqXG4gKiBJbnB1dCBmaWVsZCB3aXRoIG11bHRpcGxlIHNlbGVjdGlvbiBlbmFibGVkLiBTaG91bGQgYmUgdXNlZCB3aGVuIGEgdXNlciBjYW4gc2VsZWN0IGJldHdlZW4gYVxuICogbGltaXRlZCBudW1iZXIgb2YgcHJlLWRlZmluZWQgb3B0aW9ucyB3aXRoIGEgZmlsdGVyLWVuYWJsZWQgY29udGV4dC5cbiAqXG4gKiBTdXBwb3J0cyBBbmd1bGFyIEZvcm1zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLW11bHRpLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdfZm9jdXNPdXQoJGV2ZW50KSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpSW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgTWVudUtleWJvYXJkU2VydmljZSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woTXVsdGlJbnB1dENvbXBvbmVudCksXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBNdWx0aUlucHV0SW50ZXJmYWNlLFxuICAgICAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgQ3NzQ2xhc3NCdWlsZGVyLFxuICAgICAgICBPbkluaXQsXG4gICAgICAgIE9uQ2hhbmdlcyxcbiAgICAgICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICAgICAgT25EZXN0cm95LFxuICAgICAgICBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogUGxhY2Vob2xkZXIgZm9yIHRoZSBpbnB1dCBmaWVsZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHVzZSBjb3p5IHZpc3VhbHMgYnV0IGNvbXBhY3QgY29sbGFwc2luZyBiZWhhdmlvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhY3RDb2xsYXBzZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1heCBoZWlnaHQgb2YgdGhlIHBvcG92ZXIuIEFueSBvdmVyZmxvd2luZyBlbGVtZW50cyB3aWxsIGJlIGFjY2Vzc2libGUgdGhyb3VnaCBzY3JvbGxpbmcuICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQgPSAnMzAwcHgnO1xuXG4gICAgLyoqIEljb24gb2YgdGhlIGJ1dHRvbiBvbiB0aGUgcmlnaHQgb2YgdGhlIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGggPSAndmFsdWUtaGVscCc7XG5cbiAgICAvKiogVmFsdWVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgdW5maWx0ZXJlZCBkcm9wZG93bi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRyb3Bkb3duVmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqIFNlYXJjaCB0ZXJtLCBvciBtb3JlIHNwZWNpZmljYWxseSB0aGUgdmFsdWUgb2YgdGhlIGlubmVyIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNlYXJjaFRlcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hUZXJtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogSWQgYXR0cmlidXRlIGZvciBpbnB1dCBlbGVtZW50IGluc2lkZSBNdWx0aUlucHV0IGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5wdXRJZCA9ICcnO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlYXJjaCB0ZXJtIHNob3VsZCBiZSBoaWdobGlnaHRlZCBpbiByZXN1bHRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlnaGxpZ2h0ID0gdHJ1ZTtcblxuICAgIC8qKiBTZWxlY3RlZCBkcm9wZG93biBpdGVtcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZXM6IGFueVtdKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIHZhbHVlcz8uZm9yRWFjaCgoaXRlbSkgPT4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGl0ZW0pKTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiB1c2VyJ3MgY3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZnVuY3Rpb24uIEFjY2VwdHMgYW4gYXJyYXkgYW5kIGEgc3RyaW5nIGFzIGFyZ3VtZW50cywgYW5kIG91dHB1dHMgYW4gYXJyYXkuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIG11bHRpIGlucHV0IGV4YW1wbGVzIGZvciBkZXRhaWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyRm4gPSB0aGlzLl9kZWZhdWx0RmlsdGVyO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgZnVuY3Rpb24uIEFjY2VwdHMgYW4gb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlXG4gICAgICogaXRlbXMgcGFzc2VkIHRvIGRyb3Bkb3duVmFsdWVzIGFzIGFyZ3VtZW50LCBhbmQgb3V0cHV0cyBhbnkgcHJvcGVydHksIHRoYXQgc2hvdWxkIGJlIHVzZWQgYXMgdmFsdWUuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIG11bHRpIGlucHV0IGV4YW1wbGVzIGZvciBkZXRhaWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWVGbiA9IHRoaXMuX2RlZmF1bHRWYWx1ZUZuO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBmdW5jdGlvbi4gQWNjZXB0cyBhbiBvYmplY3Qgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGVcbiAgICAgKiBpdGVtcyBwYXNzZWQgdG8gZHJvcGRvd25WYWx1ZXMgYXMgYXJndW1lbnQsIGFuZCBvdXRwdXRzIGEgc3RyaW5nLlxuICAgICAqIEFuIGFycm93IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgKnRoaXMqIGtleXdvcmQgaW4gdGhlIGNhbGxpbmcgY29tcG9uZW50LlxuICAgICAqIFNlZSBtdWx0aSBpbnB1dCBleGFtcGxlcyBmb3IgZGV0YWlscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlGbiA9IHRoaXMuX2RlZmF1bHREaXNwbGF5O1xuXG4gICAgLyoqXG4gICAgICogUGFyc2UgZnVuY3Rpb24uIFVzZWQgZm9yIHN1Ym1pdHRpbmcgbmV3IHRva2Vucy4gQWNjZXB0cyBhIHN0cmluZyBieSBkZWZhdWx0LlxuICAgICAqIEFuIGFycm93IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgKnRoaXMqIGtleXdvcmQgaW4gdGhlIGNhbGxpbmcgY29tcG9uZW50LlxuICAgICAqIFNlZSBtdWx0aSBpbnB1dCBleGFtcGxlcyBmb3IgZGV0YWlscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5ld1Rva2VuUGFyc2VGbjogKHNlYXJjaFRlcm06IHN0cmluZykgPT4gYW55ID0gdGhpcy5fZGVmYXVsdFBhcnNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgZnVuY3Rpb24uIFVzZWQgdG8gY2hlY2sgaWYgbmV3IHRva2VuIGNhbiBiZSBhZGRlZCBpbnRvIGxpc3QuXG4gICAgICogV29ya3Mgb25seSwgd2hlbiBgYWxsb3dOZXdUb2tlbnNgIG9wdGlvbiBpcyBlbmFibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV3VG9rZW5WYWxpZGF0ZUZuID0gdGhpcy5fZGVmYXVsdFRva2VuVmFsaWRhdGU7XG5cbiAgICAvKiogYXJpYS1sYWJlbCBhdHRyaWJ1dGUgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsbGVkYnkgYXR0cmlidXRlIGJpbmRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgU2VsZWN0IGJvZHkgd2lkdGgsIHdoYXRldmVyIGlzIGNob3NlbiwgdGhlIGJvZHkgaGFzIGEgNjAwcHggbGltaXQuXG4gICAgICogKiBgYXQtbGVhc3RgIHdpbGwgYXBwbHkgYSBtaW5pbXVtIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLiAtIERlZmF1bHRcbiAgICAgKiAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogJ2ZpdC1jb250ZW50JyB3aWxsIGFwcGx5IHdpZHRoIG5lZWRlZCB0byBwcm9wZXJseSBkaXNwbGF5IGl0ZW1zIGluc2lkZSwgaW5kZXBlbmRlbnQgb2YgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogUG9wb3ZlckZpbGxNb2RlID0gJ2F0LWxlYXN0JztcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlPzogRm9ybVN0YXRlcztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG11bHRpLWlucHV0IGFsbG93cyB0aGUgY3JlYXRpb24gb2YgbmV3IHRva2Vucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93TmV3VG9rZW5zID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbXVsdGktaW5wdXQgc2hvdWxkIGJlIGJ1aWx0IG9uIG1vYmlsZSBtb2RlICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGUgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBtdWx0aS1pbnB1dCBzaG91bGQgaGF2ZSBzaG93IGFsbCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93QWxsQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKiBNYXggd2lkdGggb2YgbXVsdGkgaW5wdXQgYm9keSBpbiBQWCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYm9keU1heFdpZHRoOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgLyoqIE11bHRpIElucHV0IE1vYmlsZSBDb25maWd1cmF0aW9uLCBpdCdzIGFwcGxpZWQgb25seSwgd2hlbiBtb2JpbGUgaXMgZW5hYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnID0geyBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSwgYXBwcm92ZUJ1dHRvblRleHQ6ICdTZWxlY3QnIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byByZXR1cm4gcmVzdWx0cyB3aGVyZSB0aGUgaW5wdXQgbWF0Y2hlcyB0aGUgZW50aXJlIHN0cmluZy4gQnkgZGVmYXVsdCwgb25seSByZXN1bHRzIHRoYXQgc3RhcnRcbiAgICAgKiB3aXRoIHRoZSBpbnB1dCBzZWFyY2ggdGVybSB3aWxsIGJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5jbHVkZXMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSB3aXRoIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGluZGl2aWR1YWwgbGlzdGVkIGl0ZW1zLlxuICAgICAqIFVzZSBpdCBieSBwYXNzaW5nIGFuIG5nLXRlbXBsYXRlIHdpdGggaW1wbGljaXQgY29udGVudC4gU2VlIGV4YW1wbGVzIGZvciBtb3JlIGluZm8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdG9vbHRpcCBmb3IgdGhlIG11bHRpLWlucHV0IGljb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgYmUgZW5hYmxlZDsgRW5hYmxlZCBieSBkZWZhdWx0ICovXG4gICAgQElucHV0KClcbiAgICBhdXRvQ29tcGxldGUgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gY2hhbmdlcy4gVXNlICokZXZlbnQqIHRvIGFjY2VzcyB0aGUgbmV3IHRlcm0uICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoVGVybUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIGl0ZW1zIGNoYW5nZS4gVXNlICokZXZlbnQqIHRvIGFjY2VzcyB0aGUgbmV3IHNlbGVjdGVkIGFycmF5LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICAgIC8qKiBXaGV0aGVyIG11bHRpIGlucHV0IHBvcG92ZXIgYm9keSBzaG91bGQgYmUgb3BlbmVkICovXG4gICAgQElucHV0KClcbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgdG8gZGlzcGxheSB0aGUgYWRkb24gYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUFkZG9uQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkLCB3aGVuIHRoZSBtdWx0aSBpbnB1dCdzIHBvcG92ZXIgYm9keSBpcyBvcGVuZWQgb3IgY2xvc2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gdGhlIG11bHRpIGlucHV0J3MgYWxsIGl0ZW0gY2hlY2tlZCBvciBub3QgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBhbGxJdGVtc1NlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudClcbiAgICBwb3BvdmVyUmVmOiBQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb250cm9sJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbGlzdCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBsaXN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoTGlzdENvbXBvbmVudClcbiAgICBsaXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dEVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBzZWFyY2hJbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVG9rZW5pemVyQ29tcG9uZW50KVxuICAgIHRva2VuaXplcjogVG9rZW5pemVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBvcHRpb25JdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wdGlvbkl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc2VhcmNoVGVybUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3ZpZXdNb2RlbCQ6IE9ic2VydmFibGU8Vmlld01vZGVsPiA9IHRoaXMuX2dldFZpZXdNb2RlbCgpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlyOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JhbmdlU2VsZWN0b3IgPSBuZXcgUmFuZ2VTZWxlY3RvcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzVHJhcFNlcnZpY2U6IEZvY3VzVHJhcFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyID0gaXNSdGwgPyAncnRsJyA6ICdsdHInO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRJZCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dElkID0gdXVpZHY0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRlcm1DdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoc2VhcmNoVGVybSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybUNoYW5nZS5lbWl0KHNlYXJjaFRlcm0gPz8gJycpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0dGluZyBleGlzdGluZyBzZWxlY3Rpb24gc3RhdGUsIGlmIGFueVxuICAgICAgICAgICAgICAgIHRoaXMuX3JhbmdlU2VsZWN0b3IucmVzZXQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZ2V0Vmlld01vZGVsKClcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKHZpZXdNb2RlbCkgPT4gIXZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLnNvbWUoKGMpID0+ICFjLmlzU2VsZWN0ZWQpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChhbGxJdGVtc1NlbGVjdGVkKSA9PiB0aGlzLmFsbEl0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdChhbGxJdGVtc1NlbGVjdGVkKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZHJvcGRvd25WYWx1ZXMgfHwgY2hhbmdlcy5zZWFyY2hUZXJtIHx8IGNoYW5nZXMudmFsdWVGbiB8fCBjaGFuZ2VzLmRpc3BsYXlGbikge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uSXRlbXMgPSAodGhpcy5kcm9wZG93blZhbHVlcyA/PyBbXSkubWFwKChpdGVtKSA9PiB0aGlzLl9nZXRPcHRpb25JdGVtKGl0ZW0pKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uSXRlbXMkLm5leHQob3B0aW9uSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyB0aGlzLl9zZWFyY2hUZXJtQ3RybC5kaXNhYmxlKCkgOiB0aGlzLl9zZWFyY2hUZXJtQ3RybC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFVwTW9iaWxlTW9kZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5pemVyLl9zaG93T3ZlcmZsb3dQb3BvdmVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpY29uIGZsaXAgbWF5IGJlIGFkZHJlc3NlZCBpbiBzdHlsZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICBpZiAodGhpcy5nbHlwaCA9PT0gJ3ZhbHVlLWhlbHAnICYmIHRoaXMuX2RpciA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGljb24gPSB0aGlzLmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zYXAtaWNvbi0tdmFsdWUtaGVscCcpO1xuICAgICAgICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgICAgICAgICBpY29uLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZVgoLTEpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbJ2ZkLW11bHRpLWlucHV0JywgJ2ZkLW11bHRpLWlucHV0LWN1c3RvbScsIHRoaXMuY2xhc3NdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChzZWxlY3RlZDogYW55W10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYXV0byc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHBhc3NlZCB0byBsaXN0IGNvbXBvbmVudCAqL1xuICAgIGhhbmRsZUxpc3RGb2N1c0VzY2FwZShkaXJlY3Rpb246IEZvY3VzRXNjYXBlRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcgJiYgIXRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5DaGFuZ2VIYW5kbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcGVuICYmIHRoaXMub3BlbiAmJiAhdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gIT09IG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcblxuICAgICAgICBpZiAoIXRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3BvdmVyT3BlbkhhbmRsZShvcGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUGFyZW50Rm9jdXNUcmFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQYXJlbnRGb2N1c1RyYXAoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdENvbXBvbmVudCAmJiB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnNldEl0ZW1BY3RpdmUoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRva2VuaXplci5yZW1vdmVTZWxlY3RlZFRva2VucygpO1xuXG4gICAgICAgIHRoaXMudG9rZW5pemVyLnRva2VuaXplcklubmVyRWwubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnRva2VuaXplcklubmVyRWwubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBzZWxlY3RzIGFsbCBwb3NzaWJsZSBvcHRpb25zLiAqL1xuICAgIHNlbGVjdEFsbEl0ZW1zKHNlbGVjdEFsbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoc2VsZWN0QWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5vcHRpb25JdGVtcyQuZ2V0VmFsdWUoKS5tYXAoKGMpID0+IGMudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9uIE1vYmlsZSBtb2RlIGNoYW5nZXMgYXJlIHByb3BhZ2F0ZWQgb25seSBvbiBhcHByb3ZlLlxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkNoZWNrYm94S2V5dXAodmFsdWU6IGFueSwgZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hlY2tib3hDbGljayh2YWx1ZSwgZXZlbnQsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYXN5bmMgX29uQ2hlY2tib3hDbGljayhcbiAgICAgICAgdmFsdWU6IGFueSxcbiAgICAgICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50LFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBpc0xpc3RJdGVtID0gZmFsc2VcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdG9nZ2xlZFNlbGVjdGlvbiA9ICF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcmFuZ2VTZWxlY3Rvci5vblJhbmdlRWxlbWVudFRvZ2dsZWQoaW5kZXgsIGV2ZW50KTtcbiAgICAgICAgY29uc3Qgc3ViID0gdGhpcy5fdmlld01vZGVsJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgodm0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3JhbmdlU2VsZWN0b3IuYXBwbHlWYWx1ZVRvRWFjaEluUmFuZ2UoKGlkeCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QodG9nZ2xlZFNlbGVjdGlvbiwgdm0uZGlzcGxheWVkT3B0aW9uc1tpZHhdLnZhbHVlLCBmYWxzZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xuICAgICAgICBpZiAoaXNMaXN0SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGNoZWNrYm94IHNvIGV2ZW50IGRvZXNuJ3QgcmVhY2ggdGhlIGxpc3QgaXRlbVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblRva2VuQ2xpY2sodmFsdWU6IGFueSwgcmVzZXRTZWFyY2g6IGJvb2xlYW4sIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTsgLy8gcHJldmVudCB0aGlzIGZ1bmN0aW9uIGZyb20gYmVpbmcgY2FsbGVkIHR3aWNlIHdoZW4gY2hlY2tib3ggdXBkYXRlc1xuICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QoZmFsc2UsIHZhbHVlLCByZXNldFNlYXJjaCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGFuZGxlU2VsZWN0KGNoZWNrZWQ6IGFueSwgdmFsdWU6IGFueSwgcmVzZXRTZWFyY2ggPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzTGVuZ3RoID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoO1xuICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBwb3BvdmVyIHBsYWNlbWVudCB1cGRhdGVcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFBvcG92ZXJCZVVwZGF0ZWQocHJldmlvdXNMZW5ndGgsIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5yZWZyZXNoUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzZXRTZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0U2VhcmNoVGVybSgpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uIE1vYmlsZSBtb2RlIGNoYW5nZXMgYXJlIHByb3BhZ2F0ZWQgb25seSBvbiBhcHByb3ZlLlxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGVJbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSAmJiAhdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5DaGFuZ2VIYW5kbGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1csIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZUhhbmRsZSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSAmJiB0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnYWxwaGFiZXRpY2FsJykgfHwgS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdudW1lcmljJykpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dBbGxDbGlja2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5fc2VhcmNoVGVybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0FsbEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dBbGxDbGlja2VkKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU3VibWl0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hUZXJtO1xuICAgICAgICBpZiAoc2VhcmNoVGVybSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0V4aXN0ID0gdGhpcy5fc2VsZWN0Rmlyc3RGaWx0ZXJlZChzZWFyY2hUZXJtKTtcbiAgICAgICAgaWYgKCFpc0V4aXN0ICYmIHRoaXMuYWxsb3dOZXdUb2tlbnMgJiYgdGhpcy5uZXdUb2tlblZhbGlkYXRlRm4odGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUgPz8gJycpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb2tlbiA9IHRoaXMubmV3VG9rZW5QYXJzZUZuKHRoaXMuX3NlYXJjaFRlcm1DdHJsLnZhbHVlID8/ICcnKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZE5ld1Rva2VuVG9Ecm9wRG93blZhbHVlcyhuZXdUb2tlbik7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QodHJ1ZSwgbmV3VG9rZW4pO1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoVGVybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGVDb21wbGV0ZSh7IHRlcm0gfSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBkaWFsb2cgZGlzbWlzc2luZywgY2xvc2VzIHBvcG92ZXIgYW5kIHNldHMgYmFja3VwIGRhdGEuXG4gICAgICovXG4gICAgZGlhbG9nRGlzbWlzcyhzZWxlY3RlZEJhY2t1cDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fcmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZEJhY2t1cDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgZGlhbG9nIGFwcHJvdmFsLCBjbG9zZXMgcG9wb3ZlciBhbmQgcHJvcGFnYXRlcyBkYXRhIGNoYW5nZXMuXG4gICAgICovXG4gICAgZGlhbG9nQXBwcm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5DaGFuZ2VIYW5kbGUoZmFsc2UpO1xuICAgICAgICB0aGlzLl9yZXNldFNlYXJjaFRlcm0oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9tb3JlQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FkZE9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKCF0aGlzLm9wZW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGlzYWJsZVBhcmVudEZvY3VzVHJhcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNUcmFwU2VydmljZT8ucGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbmFibGVQYXJlbnRGb2N1c1RyYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzVHJhcFNlcnZpY2U/LnVucGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGROZXdUb2tlblRvRHJvcERvd25WYWx1ZXMobmV3VG9rZW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blZhbHVlcy5wdXNoKG5ld1Rva2VuKTtcbiAgICAgICAgY29uc3QgbmV3T3B0aW9uID0gdGhpcy5fZ2V0T3B0aW9uSXRlbShuZXdUb2tlbik7XG4gICAgICAgIHRoaXMub3B0aW9uSXRlbXMkLm5leHQoWy4uLnRoaXMub3B0aW9uSXRlbXMkLnZhbHVlLCBuZXdPcHRpb25dKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdEZpcnN0RmlsdGVyZWQoc2VhcmNoVGVybTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gdGhpcy5maWx0ZXJGbih0aGlzLmRyb3Bkb3duVmFsdWVzLCBzZWFyY2hUZXJtKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyZWQpICYmIGZpbHRlcmVkLmxlbmd0aCA+IDAgJiYgdGhpcy5hdXRvQ29tcGxldGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbkl0ZW0gPSB0aGlzLl9nZXRPcHRpb25JdGVtKGZpbHRlcmVkWzBdKTtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVNlbGVjdCh0cnVlLCBvcHRpb25JdGVtLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRlcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdEZpbHRlcihjb250ZW50QXJyYXk6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJyk6IGFueVtdIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoTG93ZXIgPSBzZWFyY2hUZXJtLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBjb250ZW50QXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZFZhbHVlID0gdGhpcy5kaXNwbGF5Rm4oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVybSA9IHR5cGVvZiBkaXNwbGF5ZWRWYWx1ZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5ZWRWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogJyc7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmNsdWRlcyA/IHRlcm0uaW5jbHVkZXMoc2VhcmNoTG93ZXIpIDogdGVybS5zdGFydHNXaXRoKHNlYXJjaExvd2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0VmFsdWVGbih2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdERpc3BsYXkoc3RyOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdFBhcnNlKHN0cjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRUb2tlblZhbGlkYXRlKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXN0cjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BvcG92ZXJPcGVuSGFuZGxlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Byb3BhZ2F0ZUNoYW5nZShlbWl0SW5Nb2JpbGU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUgfHwgZW1pdEluTW9iaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZF07XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHNlbGVjdGVkKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFBvcG92ZXJCZVVwZGF0ZWQocHJldmlvdXNMZW5ndGg6IG51bWJlciwgY3VycmVudExlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucG9wb3ZlclJlZiAmJlxuICAgICAgICAgICAgKChwcmV2aW91c0xlbmd0aCA9PT0gMCAmJiBjdXJyZW50TGVuZ3RoID09PSAxKSB8fCAocHJldmlvdXNMZW5ndGggPT09IDEgJiYgY3VycmVudExlbmd0aCA9PT0gMCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVcE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTVVMVElfSU5QVVRfQ09NUE9ORU5ULCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlRHluYW1pY01vZHVsZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsaXN0VGVtcGxhdGU6IHRoaXMubGlzdFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUZW1wbGF0ZTogdGhpcy5jb250cm9sVGVtcGxhdGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNdWx0aUlucHV0TW9iaWxlTW9kdWxlLFxuICAgICAgICAgICAgTXVsdGlJbnB1dE1vYmlsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBpbmplY3RvclxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXRTZWFyY2hUZXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRPcHRpb25JdGVtKGl0ZW06IGFueSk6IE9wdGlvbkl0ZW0ge1xuICAgICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdGhpcy5fZ2V0VmFsdWVBbmRMYWJlbChpdGVtKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZhbHVlQW5kTGFiZWwoaXRlbU9yVmFsdWU6IGFueSwgb3B0aW9uSXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdKTogT3B0aW9uSXRlbUJhc2Uge1xuICAgICAgICBpZiAob3B0aW9uSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaXRlbU9yVmFsdWUgPSBvcHRpb25JdGVtcy5maW5kKChjKSA9PiBjLnZhbHVlID09PSBpdGVtT3JWYWx1ZSk/Lml0ZW0gPz8gaXRlbU9yVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmYXVsdERpc3BsYXkgPSB0eXBlb2YgaXRlbU9yVmFsdWUgPT09ICdvYmplY3QnID8gaXRlbU9yVmFsdWVbT2JqZWN0LmtleXMoaXRlbU9yVmFsdWUpWzBdXSA6IGl0ZW1PclZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVGbihpdGVtT3JWYWx1ZSkgPz8gZGVmYXVsdERpc3BsYXk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5kaXNwbGF5Rm4oaXRlbU9yVmFsdWUpID8/IGRlZmF1bHREaXNwbGF5O1xuICAgICAgICByZXR1cm4geyBsYWJlbCwgdmFsdWUgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZpZXdNb2RlbCgpOiBPYnNlcnZhYmxlPFZpZXdNb2RlbD4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUpKSxcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25JdGVtcyRcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoWywgLCBvcHRpb25JdGVtc10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQubWFwKChjKSA9PiB0aGlzLl9nZXRWYWx1ZUFuZExhYmVsKGMsIG9wdGlvbkl0ZW1zKSk7XG4gICAgICAgICAgICAgICAgLy8gbm90IHVzaW5nIFwic2VhcmNoVGVybVwiIHZhbHVlIGZyb20gY29tYmluZUxhdGVzdCBhcyBpdCB3aWxsIGJlIHdyb25nIGZvciBsYXRlIHN1YnNjcmliZXJzLCBpZiBhbnlcbiAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUgPz8gJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmZpbHRlckZuKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25JdGVtcy5tYXAoKGMpID0+IGMuaXRlbSksXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFRlcm1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZE9wdGlvbnMgPSAoQXJyYXkuaXNBcnJheShmaWx0ZXJlZCkgPyBmaWx0ZXJlZCA6IFtdKS5tYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dldE9wdGlvbkl0ZW0oaXRlbSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXllZE9wdGlvbnMuZm9yRWFjaCgoYykgPT4gKGMuaXNTZWxlY3RlZCA9IHNlbGVjdGVkLmZpbmRJbmRleCgoZCkgPT4gZC52YWx1ZSA9PT0gYy52YWx1ZSkgPiAtMSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWQsIGRpc3BsYXllZE9wdGlvbnMgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW50ZXJmYWNlIE9wdGlvbkl0ZW08VCA9IGFueT4gZXh0ZW5kcyBPcHRpb25JdGVtQmFzZSB7XG4gICAgaXRlbTogVDtcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIE9wdGlvbkl0ZW1CYXNlIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmludGVyZmFjZSBWaWV3TW9kZWwge1xuICAgIHNlbGVjdGVkT3B0aW9uczogT3B0aW9uSXRlbUJhc2VbXTtcbiAgICBkaXNwbGF5ZWRPcHRpb25zOiBPcHRpb25JdGVtW107XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiX3ZpZXdNb2RlbCQgfCBhc3luYyBhcyB2aWV3TW9kZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtbXVsdGktaW5wdXQgZmQtbXVsdGktaW5wdXQtY3VzdG9tXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1tdWx0aS1pbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250cm9sXCIgKm5nSWY9XCJtb2JpbGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtcG9wb3Zlci1jdXN0b20tbGlzdFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICBbaXNPcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgIChpc09wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiIW9wZW4gJiYgb3BlbkNoYW5nZUhhbmRsZSh0cnVlKVwiXG4gICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwiYm9keU1heFdpZHRoXCJcbiAgICAgICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2ZpbGxDb250cm9sTW9kZV09XCJmaWxsQ29udHJvbE1vZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtcG9wb3Zlci1jdXN0b21cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIChzdWJtaXQpPVwiX29uU3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHlcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIW9wZW5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtcG9wb3Zlcl9fYm9keS0taGlkZGVuXT1cIiF2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb250cm9sPlxuICAgICAgICA8ZmQtaW5wdXQtZ3JvdXBcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtaW5wdXQtZ3JvdXAtY3VzdG9tXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICBbYnV0dG9uRm9jdXNhYmxlXT1cImJ1dHRvbkZvY3VzYWJsZVwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cImRpc3BsYXlBZGRvbkJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwib3BlbiAmJiAhbW9iaWxlICYmIHZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgW2lzQ29udHJvbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJkaXNwbGF5QWRkb25CdXR0b24gPyBnbHlwaCA6ICcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJfYWRkT25CdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtdG9rZW5pemVyXG4gICAgICAgICAgICAgICAgW2NvbXBhY3RDb2xsYXBzZV09XCJjb21wYWN0Q29sbGFwc2VcIlxuICAgICAgICAgICAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgIFt0b2tlbml6ZXJGb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChtb3JlQ2xpY2tlZEV2ZW50KT1cIl9tb3JlQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW11bHRpLWlucHV0LXRva2VuaXplci1jdXN0b21cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1tdWx0aS1pbnB1dC10b2tlbml6ZXItY3VzdG9tLS1jb21wYWN0XT1cIl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ29tcGFjdCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygdmlld01vZGVsLnNlbGVjdGVkT3B0aW9uczsgdHJhY2tCeTogdmFsdWVGblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwiX29uVG9rZW5DbGljayhvcHRpb24udmFsdWUsIGZhbHNlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uUmVtb3ZlKT1cIl9vblRva2VuQ2xpY2sob3B0aW9uLnZhbHVlLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cblxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaW5wdXQgZmQtdG9rZW5pemVyX19pbnB1dCBmZC1tdWx0aS1pbnB1dC10b2tlbml6ZXItaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZmQtYXV0by1jb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICAob25Db21wbGV0ZSk9XCJfaGFuZGxlQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNzZWFyY2hJbnB1dEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5Rm5cIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRUZXh0XT1cIl9zZWFyY2hUZXJtQ3RybC52YWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImRyb3Bkb3duVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2VuYWJsZV09XCJhdXRvQ29tcGxldGUgJiYgIW1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJfc2VhcmNoVGVybUN0cmxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfaGFuZGxlSW5wdXRLZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mZC10b2tlbml6ZXI+XG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdJZj1cInZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLmxlbmd0aFwiXG4gICAgICAgICAgICBmZC1saXN0XG4gICAgICAgICAgICBjbGFzcz1cImZkLW11bHRpLWlucHV0LW1lbnUtb3ZlcmZsb3dcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttb2JpbGVNb2RlXT1cIm1vYmlsZVwiXG4gICAgICAgICAgICBbc3R5bGUubWF4SGVpZ2h0XT1cIiFtb2JpbGUgPyBtYXhIZWlnaHQgOiAnYXV0bydcIlxuICAgICAgICAgICAgKGZvY3VzRXNjYXBlTGlzdCk9XCJoYW5kbGVMaXN0Rm9jdXNFc2NhcGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc3R5bGUubWluV2lkdGhdPVwiJzEwMCUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9uczsgaW5kZXggYXMgaWR4OyB0cmFja0J5OiB2YWx1ZUZuXCJcbiAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkNoZWNrYm94Q2xpY2sob3B0aW9uLnZhbHVlLCAkZXZlbnQsIGlkeCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJfb25DaGVja2JveEtleXVwKG9wdGlvbi52YWx1ZSwgJGV2ZW50LCBpZHgpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveCAoY2xpY2spPVwiX29uQ2hlY2tib3hDbGljayhvcHRpb24udmFsdWUsICRldmVudCwgaWR4KVwiIFt2YWx1ZV09XCJvcHRpb24uaXNTZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRPRE8gLS0+XG4gICAgICAgICAgICAgICAgPC9mZC1jaGVja2JveD5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVNvdXJjZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG9wdGlvbjogb3B0aW9uIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0FsbEJ1dHRvbiAmJiB2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9ucy5sZW5ndGggPCBkcm9wZG93blZhbHVlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtc2hvdy1hbGxcIlxuICAgICAgICAgICAgICAgIChrZXlEb3duKT1cIl9zaG93QWxsS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3Nob3dBbGxDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhIGZkLWxpbmsgdGFiaW5kZXg9XCIwXCI+U2hvdyBBbGwgKHt7IGRyb3Bkb3duVmFsdWVzLmxlbmd0aCB9fSk8L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbj1cIm9wdGlvblwiICNpdGVtU291cmNlPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwib3B0aW9uLmxhYmVsIHwgaGlnaGxpZ2h0OiBfc2VhcmNoVGVybUN0cmwudmFsdWUgfHwgJyc6aGlnaGxpZ2h0XCJcbiAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbi5pdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
692
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFP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QWE7c0JBRFosS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLRyxnQkFBZ0I7c0JBRHhCLE1BQU07Z0JBS0UsY0FBYztzQkFEdEIsTUFBTTtnQkFLUCxJQUFJO3NCQURILEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtHLFVBQVU7c0JBRGxCLE1BQU07Z0JBS0Usc0JBQXNCO3NCQUQ5QixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSzNCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUszQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFLeEMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS3JELFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBd0c3QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIEVTQ0FQRSwgU1BBQ0UsIFRBQiwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBNZW51S2V5Ym9hcmRTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcywgTnVsbGFibGUsIFBvcG92ZXJGaWxsTW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBUb2tlbml6ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9rZW4nO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGlzdCc7XG5pbXBvcnQge1xuICAgIGFwcGx5Q3NzQ2xhc3MsXG4gICAgQ3NzQ2xhc3NCdWlsZGVyLFxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIEZvY3VzRXNjYXBlRGlyZWN0aW9uLFxuICAgIEZvY3VzVHJhcFNlcnZpY2UsXG4gICAgS2V5VXRpbCxcbiAgICBSYW5nZVNlbGVjdG9yLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgdXVpZHY0XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbmltcG9ydCB7IE11bHRpSW5wdXRNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL211bHRpLWlucHV0LW1vYmlsZS9tdWx0aS1pbnB1dC1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpSW5wdXRNb2JpbGVNb2R1bGUgfSBmcm9tICcuL211bHRpLWlucHV0LW1vYmlsZS9tdWx0aS1pbnB1dC1tb2JpbGUubW9kdWxlJztcbmltcG9ydCB7IE1VTFRJX0lOUFVUX0NPTVBPTkVOVCwgTXVsdGlJbnB1dEludGVyZmFjZSB9IGZyb20gJy4vbXVsdGktaW5wdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcblxuLyoqXG4gKiBJbnB1dCBmaWVsZCB3aXRoIG11bHRpcGxlIHNlbGVjdGlvbiBlbmFibGVkLiBTaG91bGQgYmUgdXNlZCB3aGVuIGEgdXNlciBjYW4gc2VsZWN0IGJldHdlZW4gYVxuICogbGltaXRlZCBudW1iZXIgb2YgcHJlLWRlZmluZWQgb3B0aW9ucyB3aXRoIGEgZmlsdGVyLWVuYWJsZWQgY29udGV4dC5cbiAqXG4gKiBTdXBwb3J0cyBBbmd1bGFyIEZvcm1zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLW11bHRpLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdfZm9jdXNPdXQoJGV2ZW50KSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpSW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgTWVudUtleWJvYXJkU2VydmljZSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woTXVsdGlJbnB1dENvbXBvbmVudCksXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBNdWx0aUlucHV0SW50ZXJmYWNlLFxuICAgICAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgQ3NzQ2xhc3NCdWlsZGVyLFxuICAgICAgICBPbkluaXQsXG4gICAgICAgIE9uQ2hhbmdlcyxcbiAgICAgICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICAgICAgT25EZXN0cm95LFxuICAgICAgICBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogUGxhY2Vob2xkZXIgZm9yIHRoZSBpbnB1dCBmaWVsZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHVzZSBjb3p5IHZpc3VhbHMgYnV0IGNvbXBhY3QgY29sbGFwc2luZyBiZWhhdmlvci4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhY3RDb2xsYXBzZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1heCBoZWlnaHQgb2YgdGhlIHBvcG92ZXIuIEFueSBvdmVyZmxvd2luZyBlbGVtZW50cyB3aWxsIGJlIGFjY2Vzc2libGUgdGhyb3VnaCBzY3JvbGxpbmcuICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQgPSAnMzAwcHgnO1xuXG4gICAgLyoqIEljb24gb2YgdGhlIGJ1dHRvbiBvbiB0aGUgcmlnaHQgb2YgdGhlIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGggPSAndmFsdWUtaGVscCc7XG5cbiAgICAvKiogVmFsdWVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgdW5maWx0ZXJlZCBkcm9wZG93bi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRyb3Bkb3duVmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqIFNlYXJjaCB0ZXJtLCBvciBtb3JlIHNwZWNpZmljYWxseSB0aGUgdmFsdWUgb2YgdGhlIGlubmVyIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNlYXJjaFRlcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hUZXJtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogSWQgYXR0cmlidXRlIGZvciBpbnB1dCBlbGVtZW50IGluc2lkZSBNdWx0aUlucHV0IGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5wdXRJZCA9ICcnO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNlYXJjaCB0ZXJtIHNob3VsZCBiZSBoaWdobGlnaHRlZCBpbiByZXN1bHRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlnaGxpZ2h0ID0gdHJ1ZTtcblxuICAgIC8qKiBTZWxlY3RlZCBkcm9wZG93biBpdGVtcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZXM6IGFueVtdKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIHZhbHVlcz8uZm9yRWFjaCgoaXRlbSkgPT4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGl0ZW0pKTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiB1c2VyJ3MgY3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZnVuY3Rpb24uIEFjY2VwdHMgYW4gYXJyYXkgYW5kIGEgc3RyaW5nIGFzIGFyZ3VtZW50cywgYW5kIG91dHB1dHMgYW4gYXJyYXkuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIG11bHRpIGlucHV0IGV4YW1wbGVzIGZvciBkZXRhaWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyRm4gPSB0aGlzLl9kZWZhdWx0RmlsdGVyO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgZnVuY3Rpb24uIEFjY2VwdHMgYW4gb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlXG4gICAgICogaXRlbXMgcGFzc2VkIHRvIGRyb3Bkb3duVmFsdWVzIGFzIGFyZ3VtZW50LCBhbmQgb3V0cHV0cyBhbnkgcHJvcGVydHksIHRoYXQgc2hvdWxkIGJlIHVzZWQgYXMgdmFsdWUuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIG11bHRpIGlucHV0IGV4YW1wbGVzIGZvciBkZXRhaWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWVGbiA9IHRoaXMuX2RlZmF1bHRWYWx1ZUZuO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBmdW5jdGlvbi4gQWNjZXB0cyBhbiBvYmplY3Qgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGVcbiAgICAgKiBpdGVtcyBwYXNzZWQgdG8gZHJvcGRvd25WYWx1ZXMgYXMgYXJndW1lbnQsIGFuZCBvdXRwdXRzIGEgc3RyaW5nLlxuICAgICAqIEFuIGFycm93IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgKnRoaXMqIGtleXdvcmQgaW4gdGhlIGNhbGxpbmcgY29tcG9uZW50LlxuICAgICAqIFNlZSBtdWx0aSBpbnB1dCBleGFtcGxlcyBmb3IgZGV0YWlscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlGbiA9IHRoaXMuX2RlZmF1bHREaXNwbGF5O1xuXG4gICAgLyoqXG4gICAgICogUGFyc2UgZnVuY3Rpb24uIFVzZWQgZm9yIHN1Ym1pdHRpbmcgbmV3IHRva2Vucy4gQWNjZXB0cyBhIHN0cmluZyBieSBkZWZhdWx0LlxuICAgICAqIEFuIGFycm93IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgKnRoaXMqIGtleXdvcmQgaW4gdGhlIGNhbGxpbmcgY29tcG9uZW50LlxuICAgICAqIFNlZSBtdWx0aSBpbnB1dCBleGFtcGxlcyBmb3IgZGV0YWlscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5ld1Rva2VuUGFyc2VGbjogKHNlYXJjaFRlcm06IHN0cmluZykgPT4gYW55ID0gdGhpcy5fZGVmYXVsdFBhcnNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgZnVuY3Rpb24uIFVzZWQgdG8gY2hlY2sgaWYgbmV3IHRva2VuIGNhbiBiZSBhZGRlZCBpbnRvIGxpc3QuXG4gICAgICogV29ya3Mgb25seSwgd2hlbiBgYWxsb3dOZXdUb2tlbnNgIG9wdGlvbiBpcyBlbmFibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV3VG9rZW5WYWxpZGF0ZUZuID0gdGhpcy5fZGVmYXVsdFRva2VuVmFsaWRhdGU7XG5cbiAgICAvKiogYXJpYS1sYWJlbCBhdHRyaWJ1dGUgYmluZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBhcmlhLWxhYmVsbGVkYnkgYXR0cmlidXRlIGJpbmRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFByZXNldCBvcHRpb25zIGZvciB0aGUgU2VsZWN0IGJvZHkgd2lkdGgsIHdoYXRldmVyIGlzIGNob3NlbiwgdGhlIGJvZHkgaGFzIGEgNjAwcHggbGltaXQuXG4gICAgICogKiBgYXQtbGVhc3RgIHdpbGwgYXBwbHkgYSBtaW5pbXVtIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLiAtIERlZmF1bHRcbiAgICAgKiAqIGBlcXVhbGAgd2lsbCBhcHBseSBhIHdpZHRoIHRvIHRoZSBib2R5IGVxdWl2YWxlbnQgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqICogJ2ZpdC1jb250ZW50JyB3aWxsIGFwcGx5IHdpZHRoIG5lZWRlZCB0byBwcm9wZXJseSBkaXNwbGF5IGl0ZW1zIGluc2lkZSwgaW5kZXBlbmRlbnQgb2YgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbGxDb250cm9sTW9kZTogUG9wb3ZlckZpbGxNb2RlID0gJ2F0LWxlYXN0JztcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlPzogRm9ybVN0YXRlcztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIG11bHRpLWlucHV0IGFsbG93cyB0aGUgY3JlYXRpb24gb2YgbmV3IHRva2Vucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93TmV3VG9rZW5zID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbXVsdGktaW5wdXQgc2hvdWxkIGJlIGJ1aWx0IG9uIG1vYmlsZSBtb2RlICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGUgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBtdWx0aS1pbnB1dCBzaG91bGQgaGF2ZSBzaG93IGFsbCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93QWxsQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKiBNYXggd2lkdGggb2YgbXVsdGkgaW5wdXQgYm9keSBpbiBQWCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYm9keU1heFdpZHRoOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgLyoqIE11bHRpIElucHV0IE1vYmlsZSBDb25maWd1cmF0aW9uLCBpdCdzIGFwcGxpZWQgb25seSwgd2hlbiBtb2JpbGUgaXMgZW5hYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnID0geyBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSwgYXBwcm92ZUJ1dHRvblRleHQ6ICdTZWxlY3QnIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byByZXR1cm4gcmVzdWx0cyB3aGVyZSB0aGUgaW5wdXQgbWF0Y2hlcyB0aGUgZW50aXJlIHN0cmluZy4gQnkgZGVmYXVsdCwgb25seSByZXN1bHRzIHRoYXQgc3RhcnRcbiAgICAgKiB3aXRoIHRoZSBpbnB1dCBzZWFyY2ggdGVybSB3aWxsIGJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5jbHVkZXMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSB3aXRoIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGluZGl2aWR1YWwgbGlzdGVkIGl0ZW1zLlxuICAgICAqIFVzZSBpdCBieSBwYXNzaW5nIGFuIG5nLXRlbXBsYXRlIHdpdGggaW1wbGljaXQgY29udGVudC4gU2VlIGV4YW1wbGVzIGZvciBtb3JlIGluZm8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdG9vbHRpcCBmb3IgdGhlIG11bHRpLWlucHV0IGljb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgYmUgZW5hYmxlZDsgRW5hYmxlZCBieSBkZWZhdWx0ICovXG4gICAgQElucHV0KClcbiAgICBhdXRvQ29tcGxldGUgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gY2hhbmdlcy4gVXNlICokZXZlbnQqIHRvIGFjY2VzcyB0aGUgbmV3IHRlcm0uICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoVGVybUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIGl0ZW1zIGNoYW5nZS4gVXNlICokZXZlbnQqIHRvIGFjY2VzcyB0aGUgbmV3IHNlbGVjdGVkIGFycmF5LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICAgIC8qKiBXaGV0aGVyIG11bHRpIGlucHV0IHBvcG92ZXIgYm9keSBzaG91bGQgYmUgb3BlbmVkICovXG4gICAgQElucHV0KClcbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgdG8gZGlzcGxheSB0aGUgYWRkb24gYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUFkZG9uQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkLCB3aGVuIHRoZSBtdWx0aSBpbnB1dCdzIHBvcG92ZXIgYm9keSBpcyBvcGVuZWQgb3IgY2xvc2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gdGhlIG11bHRpIGlucHV0J3MgYWxsIGl0ZW0gY2hlY2tlZCBvciBub3QgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBhbGxJdGVtc1NlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudClcbiAgICBwb3BvdmVyUmVmOiBQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb250cm9sJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGNvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbGlzdCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBsaXN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoTGlzdENvbXBvbmVudClcbiAgICBsaXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dEVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBzZWFyY2hJbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVG9rZW5pemVyQ29tcG9uZW50KVxuICAgIHRva2VuaXplcjogVG9rZW5pemVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBvcHRpb25JdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wdGlvbkl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc2VhcmNoVGVybUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3ZpZXdNb2RlbCQ6IE9ic2VydmFibGU8Vmlld01vZGVsPiA9IHRoaXMuX2dldFZpZXdNb2RlbCgpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlyOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JhbmdlU2VsZWN0b3IgPSBuZXcgUmFuZ2VTZWxlY3RvcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzVHJhcFNlcnZpY2U6IEZvY3VzVHJhcFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyID0gaXNSdGwgPyAncnRsJyA6ICdsdHInO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRJZCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dElkID0gdXVpZHY0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRlcm1DdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoc2VhcmNoVGVybSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybUNoYW5nZS5lbWl0KHNlYXJjaFRlcm0gPz8gJycpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0dGluZyBleGlzdGluZyBzZWxlY3Rpb24gc3RhdGUsIGlmIGFueVxuICAgICAgICAgICAgICAgIHRoaXMuX3JhbmdlU2VsZWN0b3IucmVzZXQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZ2V0Vmlld01vZGVsKClcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKHZpZXdNb2RlbCkgPT4gIXZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLnNvbWUoKGMpID0+ICFjLmlzU2VsZWN0ZWQpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChhbGxJdGVtc1NlbGVjdGVkKSA9PiB0aGlzLmFsbEl0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdChhbGxJdGVtc1NlbGVjdGVkKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZHJvcGRvd25WYWx1ZXMgfHwgY2hhbmdlcy5zZWFyY2hUZXJtIHx8IGNoYW5nZXMudmFsdWVGbiB8fCBjaGFuZ2VzLmRpc3BsYXlGbikge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uSXRlbXMgPSAodGhpcy5kcm9wZG93blZhbHVlcyA/PyBbXSkubWFwKChpdGVtKSA9PiB0aGlzLl9nZXRPcHRpb25JdGVtKGl0ZW0pKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uSXRlbXMkLm5leHQob3B0aW9uSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyB0aGlzLl9zZWFyY2hUZXJtQ3RybC5kaXNhYmxlKCkgOiB0aGlzLl9zZWFyY2hUZXJtQ3RybC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFVwTW9iaWxlTW9kZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9rZW5pemVyLl9zaG93T3ZlcmZsb3dQb3BvdmVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpY29uIGZsaXAgbWF5IGJlIGFkZHJlc3NlZCBpbiBzdHlsZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICBpZiAodGhpcy5nbHlwaCA9PT0gJ3ZhbHVlLWhlbHAnICYmIHRoaXMuX2RpciA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGljb24gPSB0aGlzLmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zYXAtaWNvbi0tdmFsdWUtaGVscCcpO1xuICAgICAgICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgICAgICAgICBpY29uLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZVgoLTEpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbJ2ZkLW11bHRpLWlucHV0JywgJ2ZkLW11bHRpLWlucHV0LWN1c3RvbScsIHRoaXMuY2xhc3NdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChzZWxlY3RlZDogYW55W10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYXV0byc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHBhc3NlZCB0byBsaXN0IGNvbXBvbmVudCAqL1xuICAgIGhhbmRsZUxpc3RGb2N1c0VzY2FwZShkaXJlY3Rpb246IEZvY3VzRXNjYXBlRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcgJiYgIXRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5DaGFuZ2VIYW5kbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcGVuICYmIHRoaXMub3BlbiAmJiAhdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gIT09IG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcblxuICAgICAgICBpZiAoIXRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3BvdmVyT3BlbkhhbmRsZShvcGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUGFyZW50Rm9jdXNUcmFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQYXJlbnRGb2N1c1RyYXAoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdENvbXBvbmVudCAmJiB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnNldEl0ZW1BY3RpdmUoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRva2VuaXplci5yZW1vdmVTZWxlY3RlZFRva2VucygpO1xuXG4gICAgICAgIHRoaXMudG9rZW5pemVyLnRva2VuaXplcklubmVyRWwubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnRva2VuaXplcklubmVyRWwubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBzZWxlY3RzIGFsbCBwb3NzaWJsZSBvcHRpb25zLiAqL1xuICAgIHNlbGVjdEFsbEl0ZW1zKHNlbGVjdEFsbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoc2VsZWN0QWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5vcHRpb25JdGVtcyQuZ2V0VmFsdWUoKS5tYXAoKGMpID0+IGMudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9uIE1vYmlsZSBtb2RlIGNoYW5nZXMgYXJlIHByb3BhZ2F0ZWQgb25seSBvbiBhcHByb3ZlLlxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkNoZWNrYm94S2V5dXAodmFsdWU6IGFueSwgZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hlY2tib3hDbGljayh2YWx1ZSwgZXZlbnQsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYXN5bmMgX29uQ2hlY2tib3hDbGljayhcbiAgICAgICAgdmFsdWU6IGFueSxcbiAgICAgICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50LFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBpc0xpc3RJdGVtID0gZmFsc2VcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdG9nZ2xlZFNlbGVjdGlvbiA9ICF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcmFuZ2VTZWxlY3Rvci5vblJhbmdlRWxlbWVudFRvZ2dsZWQoaW5kZXgsIGV2ZW50KTtcbiAgICAgICAgY29uc3Qgc3ViID0gdGhpcy5fdmlld01vZGVsJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgodm0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3JhbmdlU2VsZWN0b3IuYXBwbHlWYWx1ZVRvRWFjaEluUmFuZ2UoKGlkeCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QodG9nZ2xlZFNlbGVjdGlvbiwgdm0uZGlzcGxheWVkT3B0aW9uc1tpZHhdLnZhbHVlLCBmYWxzZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xuICAgICAgICBpZiAoaXNMaXN0SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGNoZWNrYm94IHNvIGV2ZW50IGRvZXNuJ3QgcmVhY2ggdGhlIGxpc3QgaXRlbVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblRva2VuQ2xpY2sodmFsdWU6IGFueSwgcmVzZXRTZWFyY2g6IGJvb2xlYW4sIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTsgLy8gcHJldmVudCB0aGlzIGZ1bmN0aW9uIGZyb20gYmVpbmcgY2FsbGVkIHR3aWNlIHdoZW4gY2hlY2tib3ggdXBkYXRlc1xuICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QoZmFsc2UsIHZhbHVlLCByZXNldFNlYXJjaCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGFuZGxlU2VsZWN0KGNoZWNrZWQ6IGFueSwgdmFsdWU6IGFueSwgcmVzZXRTZWFyY2ggPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzTGVuZ3RoID0gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoO1xuICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBwb3BvdmVyIHBsYWNlbWVudCB1cGRhdGVcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFBvcG92ZXJCZVVwZGF0ZWQocHJldmlvdXNMZW5ndGgsIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5yZWZyZXNoUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzZXRTZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0U2VhcmNoVGVybSgpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uIE1vYmlsZSBtb2RlIGNoYW5nZXMgYXJlIHByb3BhZ2F0ZWQgb25seSBvbiBhcHByb3ZlLlxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGVJbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSAmJiAhdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5DaGFuZ2VIYW5kbGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1csIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZUhhbmRsZSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSAmJiB0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuc2V0SXRlbUFjdGl2ZSgwKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnYWxwaGFiZXRpY2FsJykgfHwgS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdudW1lcmljJykpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dBbGxDbGlja2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5fc2VhcmNoVGVybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0FsbEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dBbGxDbGlja2VkKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU3VibWl0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hUZXJtO1xuICAgICAgICBpZiAoc2VhcmNoVGVybSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0V4aXN0ID0gdGhpcy5fc2VsZWN0Rmlyc3RGaWx0ZXJlZChzZWFyY2hUZXJtKTtcbiAgICAgICAgaWYgKCFpc0V4aXN0ICYmIHRoaXMuYWxsb3dOZXdUb2tlbnMgJiYgdGhpcy5uZXdUb2tlblZhbGlkYXRlRm4odGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUgPz8gJycpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb2tlbiA9IHRoaXMubmV3VG9rZW5QYXJzZUZuKHRoaXMuX3NlYXJjaFRlcm1DdHJsLnZhbHVlID8/ICcnKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZE5ld1Rva2VuVG9Ecm9wRG93blZhbHVlcyhuZXdUb2tlbik7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVTZWxlY3QodHJ1ZSwgbmV3VG9rZW4pO1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoVGVybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oYW5kbGVDb21wbGV0ZSh7IHRlcm0gfSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBkaWFsb2cgZGlzbWlzc2luZywgY2xvc2VzIHBvcG92ZXIgYW5kIHNldHMgYmFja3VwIGRhdGEuXG4gICAgICovXG4gICAgZGlhbG9nRGlzbWlzcyhzZWxlY3RlZEJhY2t1cDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fcmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZEJhY2t1cDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgZGlhbG9nIGFwcHJvdmFsLCBjbG9zZXMgcG9wb3ZlciBhbmQgcHJvcGFnYXRlcyBkYXRhIGNoYW5nZXMuXG4gICAgICovXG4gICAgZGlhbG9nQXBwcm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5DaGFuZ2VIYW5kbGUoZmFsc2UpO1xuICAgICAgICB0aGlzLl9yZXNldFNlYXJjaFRlcm0oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9tb3JlQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FkZE9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuQ2hhbmdlSGFuZGxlKCF0aGlzLm9wZW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGlzYWJsZVBhcmVudEZvY3VzVHJhcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNUcmFwU2VydmljZT8ucGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbmFibGVQYXJlbnRGb2N1c1RyYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzVHJhcFNlcnZpY2U/LnVucGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGROZXdUb2tlblRvRHJvcERvd25WYWx1ZXMobmV3VG9rZW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blZhbHVlcy5wdXNoKG5ld1Rva2VuKTtcbiAgICAgICAgY29uc3QgbmV3T3B0aW9uID0gdGhpcy5fZ2V0T3B0aW9uSXRlbShuZXdUb2tlbik7XG4gICAgICAgIHRoaXMub3B0aW9uSXRlbXMkLm5leHQoWy4uLnRoaXMub3B0aW9uSXRlbXMkLnZhbHVlLCBuZXdPcHRpb25dKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdEZpcnN0RmlsdGVyZWQoc2VhcmNoVGVybTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gdGhpcy5maWx0ZXJGbih0aGlzLmRyb3Bkb3duVmFsdWVzLCBzZWFyY2hUZXJtKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyZWQpICYmIGZpbHRlcmVkLmxlbmd0aCA+IDAgJiYgdGhpcy5hdXRvQ29tcGxldGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbkl0ZW0gPSB0aGlzLl9nZXRPcHRpb25JdGVtKGZpbHRlcmVkWzBdKTtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVNlbGVjdCh0cnVlLCBvcHRpb25JdGVtLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRlcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdEZpbHRlcihjb250ZW50QXJyYXk6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJyk6IGFueVtdIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoTG93ZXIgPSBzZWFyY2hUZXJtLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBjb250ZW50QXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZFZhbHVlID0gdGhpcy5kaXNwbGF5Rm4oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVybSA9IHR5cGVvZiBkaXNwbGF5ZWRWYWx1ZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5ZWRWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogJyc7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmNsdWRlcyA/IHRlcm0uaW5jbHVkZXMoc2VhcmNoTG93ZXIpIDogdGVybS5zdGFydHNXaXRoKHNlYXJjaExvd2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0VmFsdWVGbih2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdERpc3BsYXkoc3RyOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdFBhcnNlKHN0cjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRUb2tlblZhbGlkYXRlKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXN0cjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BvcG92ZXJPcGVuSGFuZGxlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Byb3BhZ2F0ZUNoYW5nZShlbWl0SW5Nb2JpbGU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUgfHwgZW1pdEluTW9iaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZF07XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHNlbGVjdGVkKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFBvcG92ZXJCZVVwZGF0ZWQocHJldmlvdXNMZW5ndGg6IG51bWJlciwgY3VycmVudExlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucG9wb3ZlclJlZiAmJlxuICAgICAgICAgICAgKChwcmV2aW91c0xlbmd0aCA9PT0gMCAmJiBjdXJyZW50TGVuZ3RoID09PSAxKSB8fCAocHJldmlvdXNMZW5ndGggPT09IDEgJiYgY3VycmVudExlbmd0aCA9PT0gMCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVcE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTVVMVElfSU5QVVRfQ09NUE9ORU5ULCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlRHluYW1pY01vZHVsZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsaXN0VGVtcGxhdGU6IHRoaXMubGlzdFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUZW1wbGF0ZTogdGhpcy5jb250cm9sVGVtcGxhdGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNdWx0aUlucHV0TW9iaWxlTW9kdWxlLFxuICAgICAgICAgICAgTXVsdGlJbnB1dE1vYmlsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBpbmplY3RvclxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXRTZWFyY2hUZXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRPcHRpb25JdGVtKGl0ZW06IGFueSk6IE9wdGlvbkl0ZW0ge1xuICAgICAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSB9ID0gdGhpcy5fZ2V0VmFsdWVBbmRMYWJlbChpdGVtKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZhbHVlQW5kTGFiZWwoaXRlbU9yVmFsdWU6IGFueSwgb3B0aW9uSXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdKTogT3B0aW9uSXRlbUJhc2Uge1xuICAgICAgICBpZiAob3B0aW9uSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaXRlbU9yVmFsdWUgPSBvcHRpb25JdGVtcy5maW5kKChjKSA9PiBjLnZhbHVlID09PSBpdGVtT3JWYWx1ZSk/Lml0ZW0gPz8gaXRlbU9yVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmYXVsdERpc3BsYXkgPSB0eXBlb2YgaXRlbU9yVmFsdWUgPT09ICdvYmplY3QnID8gaXRlbU9yVmFsdWVbT2JqZWN0LmtleXMoaXRlbU9yVmFsdWUpWzBdXSA6IGl0ZW1PclZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVGbihpdGVtT3JWYWx1ZSkgPz8gZGVmYXVsdERpc3BsYXk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5kaXNwbGF5Rm4oaXRlbU9yVmFsdWUpID8/IGRlZmF1bHREaXNwbGF5O1xuICAgICAgICByZXR1cm4geyBsYWJlbCwgdmFsdWUgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZpZXdNb2RlbCgpOiBPYnNlcnZhYmxlPFZpZXdNb2RlbD4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9zZWFyY2hUZXJtQ3RybC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUpKSxcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25JdGVtcyRcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoWywgLCBvcHRpb25JdGVtc10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQubWFwKChjKSA9PiB0aGlzLl9nZXRWYWx1ZUFuZExhYmVsKGMsIG9wdGlvbkl0ZW1zKSk7XG4gICAgICAgICAgICAgICAgLy8gbm90IHVzaW5nIFwic2VhcmNoVGVybVwiIHZhbHVlIGZyb20gY29tYmluZUxhdGVzdCBhcyBpdCB3aWxsIGJlIHdyb25nIGZvciBsYXRlIHN1YnNjcmliZXJzLCBpZiBhbnlcbiAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5fc2VhcmNoVGVybUN0cmwudmFsdWUgPz8gJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmZpbHRlckZuKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25JdGVtcy5tYXAoKGMpID0+IGMuaXRlbSksXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFRlcm1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZE9wdGlvbnMgPSAoQXJyYXkuaXNBcnJheShmaWx0ZXJlZCkgPyBmaWx0ZXJlZCA6IFtdKS5tYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dldE9wdGlvbkl0ZW0oaXRlbSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXllZE9wdGlvbnMuZm9yRWFjaCgoYykgPT4gKGMuaXNTZWxlY3RlZCA9IHNlbGVjdGVkLmZpbmRJbmRleCgoZCkgPT4gZC52YWx1ZSA9PT0gYy52YWx1ZSkgPiAtMSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWQsIGRpc3BsYXllZE9wdGlvbnMgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW50ZXJmYWNlIE9wdGlvbkl0ZW08VCA9IGFueT4gZXh0ZW5kcyBPcHRpb25JdGVtQmFzZSB7XG4gICAgaXRlbTogVDtcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIE9wdGlvbkl0ZW1CYXNlIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmludGVyZmFjZSBWaWV3TW9kZWwge1xuICAgIHNlbGVjdGVkT3B0aW9uczogT3B0aW9uSXRlbUJhc2VbXTtcbiAgICBkaXNwbGF5ZWRPcHRpb25zOiBPcHRpb25JdGVtW107XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiX3ZpZXdNb2RlbCQgfCBhc3luYyBhcyB2aWV3TW9kZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtbXVsdGktaW5wdXQgZmQtbXVsdGktaW5wdXQtY3VzdG9tXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1tdWx0aS1pbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250cm9sXCIgKm5nSWY9XCJtb2JpbGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtcG9wb3Zlci1jdXN0b20tbGlzdFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICBbaXNPcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgIChpc09wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiIW9wZW4gJiYgb3BlbkNoYW5nZUhhbmRsZSh0cnVlKVwiXG4gICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwiYm9keU1heFdpZHRoXCJcbiAgICAgICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2ZpbGxDb250cm9sTW9kZV09XCJmaWxsQ29udHJvbE1vZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtcG9wb3Zlci1jdXN0b21cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIChzdWJtaXQpPVwiX29uU3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHlcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIW9wZW5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtcG9wb3Zlcl9fYm9keS0taGlkZGVuXT1cIiF2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb250cm9sPlxuICAgICAgICA8ZmQtaW5wdXQtZ3JvdXBcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtaW5wdXQtZ3JvdXAtY3VzdG9tXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICBbYnV0dG9uRm9jdXNhYmxlXT1cImJ1dHRvbkZvY3VzYWJsZVwiXG4gICAgICAgICAgICBbYnV0dG9uXT1cImRpc3BsYXlBZGRvbkJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwib3BlbiAmJiAhbW9iaWxlICYmIHZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgW2lzQ29udHJvbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJkaXNwbGF5QWRkb25CdXR0b24gPyBnbHlwaCA6ICcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJfYWRkT25CdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtdG9rZW5pemVyXG4gICAgICAgICAgICAgICAgW2NvbXBhY3RDb2xsYXBzZV09XCJjb21wYWN0Q29sbGFwc2VcIlxuICAgICAgICAgICAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgIFt0b2tlbml6ZXJGb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChtb3JlQ2xpY2tlZEV2ZW50KT1cIl9tb3JlQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW11bHRpLWlucHV0LXRva2VuaXplci1jdXN0b21cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1tdWx0aS1pbnB1dC10b2tlbml6ZXItY3VzdG9tLS1jb21wYWN0XT1cIl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ29tcGFjdCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygdmlld01vZGVsLnNlbGVjdGVkT3B0aW9uczsgdHJhY2tCeTogdmFsdWVGblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwiX29uVG9rZW5DbGljayhvcHRpb24udmFsdWUsIGZhbHNlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uUmVtb3ZlKT1cIl9vblRva2VuQ2xpY2sob3B0aW9uLnZhbHVlLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cblxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaW5wdXQgZmQtdG9rZW5pemVyX19pbnB1dCBmZC1tdWx0aS1pbnB1dC10b2tlbml6ZXItaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZmQtYXV0by1jb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICAob25Db21wbGV0ZSk9XCJfaGFuZGxlQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNzZWFyY2hJbnB1dEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5Rm5cIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRUZXh0XT1cIl9zZWFyY2hUZXJtQ3RybC52YWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImRyb3Bkb3duVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2VuYWJsZV09XCJhdXRvQ29tcGxldGUgJiYgIW1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJfc2VhcmNoVGVybUN0cmxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfaGFuZGxlSW5wdXRLZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mZC10b2tlbml6ZXI+XG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdJZj1cInZpZXdNb2RlbC5kaXNwbGF5ZWRPcHRpb25zLmxlbmd0aFwiXG4gICAgICAgICAgICBmZC1saXN0XG4gICAgICAgICAgICBjbGFzcz1cImZkLW11bHRpLWlucHV0LW1lbnUtb3ZlcmZsb3dcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttb2JpbGVNb2RlXT1cIm1vYmlsZVwiXG4gICAgICAgICAgICBbc3R5bGUubWF4SGVpZ2h0XT1cIiFtb2JpbGUgPyBtYXhIZWlnaHQgOiAnYXV0bydcIlxuICAgICAgICAgICAgKGZvY3VzRXNjYXBlTGlzdCk9XCJoYW5kbGVMaXN0Rm9jdXNFc2NhcGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc3R5bGUubWluV2lkdGhdPVwiJzEwMCUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9uczsgaW5kZXggYXMgaWR4OyB0cmFja0J5OiB2YWx1ZUZuXCJcbiAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkNoZWNrYm94Q2xpY2sob3B0aW9uLnZhbHVlLCAkZXZlbnQsIGlkeCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJfb25DaGVja2JveEtleXVwKG9wdGlvbi52YWx1ZSwgJGV2ZW50LCBpZHgpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveCAoY2xpY2spPVwiX29uQ2hlY2tib3hDbGljayhvcHRpb24udmFsdWUsICRldmVudCwgaWR4KVwiIFt2YWx1ZV09XCJvcHRpb24uaXNTZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRPRE8gLS0+XG4gICAgICAgICAgICAgICAgPC9mZC1jaGVja2JveD5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVNvdXJjZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG9wdGlvbjogb3B0aW9uIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0FsbEJ1dHRvbiAmJiB2aWV3TW9kZWwuZGlzcGxheWVkT3B0aW9ucy5sZW5ndGggPCBkcm9wZG93blZhbHVlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbXVsdGktaW5wdXQtc2hvdy1hbGxcIlxuICAgICAgICAgICAgICAgIChrZXlEb3duKT1cIl9zaG93QWxsS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3Nob3dBbGxDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhIGZkLWxpbmsgdGFiaW5kZXg9XCIwXCI+U2hvdyBBbGwgKHt7IGRyb3Bkb3duVmFsdWVzLmxlbmd0aCB9fSk8L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbj1cIm9wdGlvblwiICNpdGVtU291cmNlPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwib3B0aW9uLmxhYmVsIHwgaGlnaGxpZ2h0OiBfc2VhcmNoVGVybUN0cmwudmFsdWUgfHwgJyc6aGlnaGxpZ2h0XCJcbiAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbi5pdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -16,8 +16,8 @@ import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
16
16
  import * as i0 from "@angular/core";
17
17
  export class MultiInputModule {
18
18
  }
19
- MultiInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MultiInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- MultiInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: MultiInputModule, declarations: [MultiInputComponent, DeprecatedMultiInputCompactDirective], imports: [CommonModule,
19
+ MultiInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MultiInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ MultiInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: MultiInputModule, declarations: [MultiInputComponent, DeprecatedMultiInputCompactDirective], imports: [CommonModule,
21
21
  TokenModule,
22
22
  FormsModule,
23
23
  ReactiveFormsModule,
@@ -30,7 +30,7 @@ MultiInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
30
30
  LinkModule,
31
31
  AutoCompleteModule,
32
32
  ContentDensityModule], exports: [MultiInputComponent, DeprecatedMultiInputCompactDirective, ContentDensityModule] });
33
- MultiInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MultiInputModule, imports: [CommonModule,
33
+ MultiInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MultiInputModule, imports: [CommonModule,
34
34
  TokenModule,
35
35
  FormsModule,
36
36
  ReactiveFormsModule,
@@ -43,7 +43,7 @@ MultiInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
43
43
  LinkModule,
44
44
  AutoCompleteModule,
45
45
  ContentDensityModule, ContentDensityModule] });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: MultiInputModule, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MultiInputModule, decorators: [{
47
47
  type: NgModule,
48
48
  args: [{
49
49
  declarations: [MultiInputComponent, DeprecatedMultiInputCompactDirective],
@@ -7,14 +7,14 @@ export class DeprecatedNestedListCompactDirective extends DeprecatedCompactDirec
7
7
  super('[fdNestedList][compact], [fd-nested-list]');
8
8
  }
9
9
  }
10
- DeprecatedNestedListCompactDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedNestedListCompactDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
- DeprecatedNestedListCompactDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedNestedListCompactDirective, selector: "[fdNestedList][compact], [fd-nested-list][compact]", providers: [
10
+ DeprecatedNestedListCompactDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DeprecatedNestedListCompactDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
+ DeprecatedNestedListCompactDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: DeprecatedNestedListCompactDirective, selector: "[fdNestedList][compact], [fd-nested-list][compact]", providers: [
12
12
  {
13
13
  provide: CONTENT_DENSITY_DIRECTIVE,
14
14
  useExisting: forwardRef(() => DeprecatedNestedListCompactDirective)
15
15
  }
16
16
  ], usesInheritance: true, ngImport: i0 });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedNestedListCompactDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DeprecatedNestedListCompactDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: '[fdNestedList][compact], [fd-nested-list][compact]',
@@ -88,9 +88,9 @@ export class NestedListContentDirective {
88
88
  }
89
89
  }
90
90
  }
91
- NestedListContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListContentDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
92
- NestedListContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: NestedListContentDirective, selector: "[fdNestedListContent], [fd-nested-list-content]", inputs: { selected: "selected" }, outputs: { selectedChange: "selectedChange", keyboardTriggered: "keyboardTriggered", clicked: "clicked" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class.is-selected": "this.selected", "attr.role": "this.role", "attr.aria-expanded": "this.ariaExpanded", "class.fd-nested-list__content": "this.fdNestedListContentClass", "class.has-child": "this.hasChildren" } }, queries: [{ propertyName: "nestedLink", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "nestedExpandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }], ngImport: i0 });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListContentDirective, decorators: [{
91
+ NestedListContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedListContentDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
92
+ NestedListContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: NestedListContentDirective, selector: "[fdNestedListContent], [fd-nested-list-content]", inputs: { selected: "selected" }, outputs: { selectedChange: "selectedChange", keyboardTriggered: "keyboardTriggered", clicked: "clicked" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class.is-selected": "this.selected", "attr.role": "this.role", "attr.aria-expanded": "this.ariaExpanded", "class.fd-nested-list__content": "this.fdNestedListContentClass", "class.has-child": "this.hasChildren" } }, queries: [{ propertyName: "nestedLink", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "nestedExpandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }], ngImport: i0 });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedListContentDirective, decorators: [{
94
94
  type: Directive,
95
95
  args: [{
96
96
  selector: '[fdNestedListContent], [fd-nested-list-content]',
@@ -210,9 +210,9 @@ export class NestedItemDirective {
210
210
  }
211
211
  }
212
212
  }
213
- NestedItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedItemDirective, deps: [{ token: i1.NestedItemService }, { token: i2.NestedListKeyboardService }, { token: i3.NestedListStateService }], target: i0.ɵɵFactoryTarget.Directive });
214
- NestedItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: NestedItemDirective, selector: "[fdNestedItem], [fd-nested-list-item]", inputs: { expanded: "expanded" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { properties: { "class.fd-nested-list__item": "this.fdNestedListItemClass", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel", "attr.aria-hidden": "this._ariaHidden" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }], ngImport: i0 });
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedItemDirective, decorators: [{
213
+ NestedItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedItemDirective, deps: [{ token: i1.NestedItemService }, { token: i2.NestedListKeyboardService }, { token: i3.NestedListStateService }], target: i0.ɵɵFactoryTarget.Directive });
214
+ NestedItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: NestedItemDirective, selector: "[fdNestedItem], [fd-nested-list-item]", inputs: { expanded: "expanded" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { properties: { "class.fd-nested-list__item": "this.fdNestedListItemClass", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel", "attr.aria-hidden": "this._ariaHidden" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkDirective, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }], ngImport: i0 });
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedItemDirective, decorators: [{
216
216
  type: Directive,
217
217
  args: [{
218
218
  selector: '[fdNestedItem], [fd-nested-list-item]',
@@ -54,9 +54,9 @@ export class NestedLinkDirective {
54
54
  return this.title && this.title.getInnerText();
55
55
  }
56
56
  }
57
- NestedLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedLinkDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
58
- NestedLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: NestedLinkDirective, selector: "[fdNestedLink], [fd-nested-list-link]", inputs: { onClickCallback: "onClickCallback", selected: "selected", ariaDescribedby: "ariaDescribedby" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)", "focus": "onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-label": "this._ariaLabel", "attr.aria-describedby": "this.ariaDescribedby", "class.fd-nested-list__link": "this.fdNestedListItemClass", "attr.tabindex": "this.tabIndex", "attr.role": "this.role" } }, queries: [{ propertyName: "title", first: true, predicate: NestedListTitleDirective, descendants: true }], ngImport: i0 });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedLinkDirective, decorators: [{
57
+ NestedLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedLinkDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
58
+ NestedLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: NestedLinkDirective, selector: "[fdNestedLink], [fd-nested-list-link]", inputs: { onClickCallback: "onClickCallback", selected: "selected", ariaDescribedby: "ariaDescribedby" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)", "focus": "onFocus()" }, properties: { "class.is-selected": "this.selected", "attr.aria-label": "this._ariaLabel", "attr.aria-describedby": "this.ariaDescribedby", "class.fd-nested-list__link": "this.fdNestedListItemClass", "attr.tabindex": "this.tabIndex", "attr.role": "this.role" } }, queries: [{ propertyName: "title", first: true, predicate: NestedListTitleDirective, descendants: true }], ngImport: i0 });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedLinkDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  selector: '[fdNestedLink], [fd-nested-list-link]'
@@ -126,11 +126,11 @@ export class NestedListDirective {
126
126
  }
127
127
  }
128
128
  }
129
- NestedListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListDirective, deps: [{ token: i1.NestedItemService, optional: true }, { token: i2.NestedListStateService }, { token: i3.NestedListKeyboardService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_LANGUAGE }, { token: i4.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Directive });
130
- NestedListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: NestedListDirective, selector: "[fdNestedList], [fd-nested-list]", inputs: { textOnly: "textOnly", ariaRoledescriptionTree: "ariaRoledescriptionTree", ariaRoledescriptionMenuBar: "ariaRoledescriptionMenuBar", ariaLabelSelected: "ariaLabelSelected" }, host: { properties: { "class.fd-nested-list--text-only": "this.textOnly", "class.fd-nested-list": "this.fdNestedListItemClass", "attr.aria-hidden": "this.hidden", "attr.role": "this._role", "attr.aria-roledescription": "this._ariaRoledescription", "attr.aria-haspopup": "this._ariaHaspopup", "attr.tabindex": "this._tabindex" } }, providers: [
129
+ NestedListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedListDirective, deps: [{ token: i1.NestedItemService, optional: true }, { token: i2.NestedListStateService }, { token: i3.NestedListKeyboardService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_LANGUAGE }, { token: i4.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Directive });
130
+ NestedListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: NestedListDirective, selector: "[fdNestedList], [fd-nested-list]", inputs: { textOnly: "textOnly", ariaRoledescriptionTree: "ariaRoledescriptionTree", ariaRoledescriptionMenuBar: "ariaRoledescriptionMenuBar", ariaLabelSelected: "ariaLabelSelected" }, host: { properties: { "class.fd-nested-list--text-only": "this.textOnly", "class.fd-nested-list": "this.fdNestedListItemClass", "attr.aria-hidden": "this.hidden", "attr.role": "this._role", "attr.aria-roledescription": "this._ariaRoledescription", "attr.aria-haspopup": "this._ariaHaspopup", "attr.tabindex": "this._tabindex" } }, providers: [
131
131
  contentDensityObserverProviders({ modifiers: { [ContentDensityMode.COMPACT]: 'fd-nested-list--compact' } })
132
132
  ], queries: [{ propertyName: "_nestedListHeader", first: true, predicate: NestedListHeaderDirective, descendants: true }, { propertyName: "nestedItems", predicate: i0.forwardRef(function () { return NestedItemDirective; }) }], ngImport: i0 });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListDirective, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NestedListDirective, decorators: [{
134
134
  type: Directive,
135
135
  args: [{
136
136
  selector: '[fdNestedList], [fd-nested-list]',