novo-elements 7.2.3-next.0 → 7.3.0-next.4

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 (316) hide show
  1. package/elements/chips/Chip.scss +2 -1
  2. package/elements/data-table/data-table.component.scss +5 -3
  3. package/elements/dropdown/Dropdown.scss +1 -1
  4. package/elements/icon/Icon.scss +1 -0
  5. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.scss +3 -0
  6. package/elements/select/Select.scss +4 -0
  7. package/esm2020/src/elements/ace-editor/AceEditor.mjs +4 -4
  8. package/esm2020/src/elements/ace-editor/AceEditor.module.mjs +5 -5
  9. package/esm2020/src/elements/agenda/Agenda.module.mjs +5 -5
  10. package/esm2020/src/elements/agenda/common/AgendaDateChange.mjs +4 -4
  11. package/esm2020/src/elements/agenda/common/EventTypeLegend.mjs +4 -4
  12. package/esm2020/src/elements/agenda/day/AgendaAllDayEvent.mjs +4 -4
  13. package/esm2020/src/elements/agenda/day/AgendaDayEvent.mjs +4 -4
  14. package/esm2020/src/elements/agenda/day/AgendaDayView.mjs +4 -4
  15. package/esm2020/src/elements/agenda/day/AgendaHourSegment.mjs +4 -4
  16. package/esm2020/src/elements/agenda/month/AgendaMonthDay.mjs +4 -4
  17. package/esm2020/src/elements/agenda/month/AgendaMonthHeader.mjs +4 -4
  18. package/esm2020/src/elements/agenda/month/AgendaMonthView.mjs +4 -4
  19. package/esm2020/src/elements/agenda/pipe/DayOfMonth.pipe.mjs +4 -4
  20. package/esm2020/src/elements/agenda/pipe/EndOfWeekDisplayPipe.pipe.mjs +4 -4
  21. package/esm2020/src/elements/agenda/pipe/Hours.pipe.mjs +4 -4
  22. package/esm2020/src/elements/agenda/pipe/Month.pipe.mjs +4 -4
  23. package/esm2020/src/elements/agenda/pipe/MonthDay.pipe.mjs +4 -4
  24. package/esm2020/src/elements/agenda/pipe/Weekday.pipe.mjs +4 -4
  25. package/esm2020/src/elements/agenda/pipe/Year.pipe.mjs +4 -4
  26. package/esm2020/src/elements/agenda/week/AgendaWeekEvent.mjs +4 -4
  27. package/esm2020/src/elements/agenda/week/AgendaWeekHeader.mjs +4 -4
  28. package/esm2020/src/elements/agenda/week/AgendaWeekView.mjs +4 -4
  29. package/esm2020/src/elements/aside/aside.component.mjs +4 -4
  30. package/esm2020/src/elements/aside/aside.module.mjs +5 -5
  31. package/esm2020/src/elements/aside/aside.service.mjs +4 -4
  32. package/esm2020/src/elements/avatar/Avatar.mjs +4 -4
  33. package/esm2020/src/elements/avatar/Avatar.module.mjs +5 -5
  34. package/esm2020/src/elements/avatar/AvatarStack.mjs +4 -4
  35. package/esm2020/src/elements/breadcrumbs/Breadcrumb.mjs +4 -4
  36. package/esm2020/src/elements/breadcrumbs/Breadcrumb.module.mjs +5 -5
  37. package/esm2020/src/elements/breadcrumbs/Breadcrumb.service.mjs +4 -4
  38. package/esm2020/src/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.mjs +4 -4
  39. package/esm2020/src/elements/button/Button.mjs +4 -4
  40. package/esm2020/src/elements/button/Button.module.mjs +5 -5
  41. package/esm2020/src/elements/calendar/Calendar.module.mjs +5 -5
  42. package/esm2020/src/elements/calendar/calendar.component.mjs +4 -4
  43. package/esm2020/src/elements/calendar/month-select/month-select.component.mjs +4 -4
  44. package/esm2020/src/elements/calendar/month-view/month-view.component.mjs +4 -4
  45. package/esm2020/src/elements/calendar/strategies/default-selection.strategy.mjs +4 -4
  46. package/esm2020/src/elements/calendar/strategies/multi-date-selection.strategy.mjs +4 -4
  47. package/esm2020/src/elements/calendar/strategies/range-selection.strategy.mjs +4 -4
  48. package/esm2020/src/elements/calendar/year-select/year-select.component.mjs +4 -4
  49. package/esm2020/src/elements/card/Card.mjs +16 -16
  50. package/esm2020/src/elements/card/Card.module.mjs +5 -5
  51. package/esm2020/src/elements/category-dropdown/CategoryDropdown.mjs +4 -4
  52. package/esm2020/src/elements/category-dropdown/CategoryDropdown.module.mjs +5 -5
  53. package/esm2020/src/elements/checkbox/CheckList.mjs +4 -4
  54. package/esm2020/src/elements/checkbox/Checkbox.mjs +4 -4
  55. package/esm2020/src/elements/checkbox/Checkbox.module.mjs +5 -5
  56. package/esm2020/src/elements/chips/Chip.mjs +11 -11
  57. package/esm2020/src/elements/chips/ChipInput.mjs +19 -11
  58. package/esm2020/src/elements/chips/ChipList.mjs +23 -12
  59. package/esm2020/src/elements/chips/ChipTextControl.mjs +1 -1
  60. package/esm2020/src/elements/chips/Chips.mjs +6 -6
  61. package/esm2020/src/elements/chips/Chips.module.mjs +5 -5
  62. package/esm2020/src/elements/chips/RowChips.mjs +8 -8
  63. package/esm2020/src/elements/ckeditor/CKEditor.mjs +5 -4
  64. package/esm2020/src/elements/ckeditor/CKEditor.module.mjs +5 -5
  65. package/esm2020/src/elements/color-picker/color-input.component.mjs +5 -5
  66. package/esm2020/src/elements/color-picker/color-picker.component.mjs +4 -4
  67. package/esm2020/src/elements/color-picker/color-picker.module.mjs +5 -5
  68. package/esm2020/src/elements/color-picker/color-swatch.component.mjs +4 -4
  69. package/esm2020/src/elements/common/common.module.mjs +5 -5
  70. package/esm2020/src/elements/common/directives/accent.directive.mjs +4 -4
  71. package/esm2020/src/elements/common/directives/bg.directive.mjs +4 -4
  72. package/esm2020/src/elements/common/directives/border.directive.mjs +4 -4
  73. package/esm2020/src/elements/common/directives/color.directive.mjs +4 -4
  74. package/esm2020/src/elements/common/directives/fill.directive.mjs +4 -4
  75. package/esm2020/src/elements/common/directives/flex.directive.mjs +4 -4
  76. package/esm2020/src/elements/common/directives/space.directive.mjs +10 -10
  77. package/esm2020/src/elements/common/directives/theme.directive.mjs +4 -4
  78. package/esm2020/src/elements/common/error/error-options.mjs +7 -7
  79. package/esm2020/src/elements/common/novo-template/novo-template.directive.mjs +4 -4
  80. package/esm2020/src/elements/common/option/index.mjs +5 -5
  81. package/esm2020/src/elements/common/option/optgroup.component.mjs +13 -13
  82. package/esm2020/src/elements/common/option/option.component.mjs +15 -15
  83. package/esm2020/src/elements/common/overlay/Overlay.mjs +4 -4
  84. package/esm2020/src/elements/common/overlay/Overlay.module.mjs +5 -5
  85. package/esm2020/src/elements/common/selection/index.mjs +5 -5
  86. package/esm2020/src/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.mjs +4 -4
  87. package/esm2020/src/elements/common/theme/theme-options.mjs +4 -4
  88. package/esm2020/src/elements/common/typography/base/base-text.component.mjs +4 -4
  89. package/esm2020/src/elements/common/typography/caption/caption.component.mjs +4 -4
  90. package/esm2020/src/elements/common/typography/label/label.component.mjs +4 -4
  91. package/esm2020/src/elements/common/typography/link/link.component.mjs +4 -4
  92. package/esm2020/src/elements/common/typography/text/text.component.mjs +4 -4
  93. package/esm2020/src/elements/common/typography/title/title.component.mjs +4 -4
  94. package/esm2020/src/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.mjs +4 -4
  95. package/esm2020/src/elements/data-table/cell-headers/data-table-expand-header-cell.component.mjs +4 -4
  96. package/esm2020/src/elements/data-table/cell-headers/data-table-header-cell.component.mjs +13 -11
  97. package/esm2020/src/elements/data-table/cell-headers/data-table-header-cell.directive.mjs +4 -4
  98. package/esm2020/src/elements/data-table/cells/data-table-cell.component.mjs +4 -4
  99. package/esm2020/src/elements/data-table/cells/data-table-checkbox-cell.component.mjs +4 -4
  100. package/esm2020/src/elements/data-table/cells/data-table-expand-cell.component.mjs +4 -4
  101. package/esm2020/src/elements/data-table/data-table-clear-button.component.mjs +4 -4
  102. package/esm2020/src/elements/data-table/data-table-expand.directive.mjs +4 -4
  103. package/esm2020/src/elements/data-table/data-table.component.mjs +29 -5
  104. package/esm2020/src/elements/data-table/data-table.module.mjs +5 -5
  105. package/esm2020/src/elements/data-table/data-table.pipes.mjs +22 -22
  106. package/esm2020/src/elements/data-table/pagination/data-table-pagination.component.mjs +4 -4
  107. package/esm2020/src/elements/data-table/rows/data-table-header-row.component.mjs +4 -4
  108. package/esm2020/src/elements/data-table/rows/data-table-row.component.mjs +4 -4
  109. package/esm2020/src/elements/data-table/sort-filter/sort-button.component.mjs +4 -4
  110. package/esm2020/src/elements/data-table/sort-filter/sort-filter.directive.mjs +4 -4
  111. package/esm2020/src/elements/data-table/state/data-table-state.service.mjs +4 -4
  112. package/esm2020/src/elements/date-picker/DatePicker.mjs +4 -4
  113. package/esm2020/src/elements/date-picker/DatePicker.module.mjs +5 -5
  114. package/esm2020/src/elements/date-picker/DatePickerInput.mjs +4 -4
  115. package/esm2020/src/elements/date-picker/DateRangeInput.mjs +4 -4
  116. package/esm2020/src/elements/date-picker/MultiDateInput.mjs +4 -4
  117. package/esm2020/src/elements/date-time-picker/DateTimePicker.mjs +4 -4
  118. package/esm2020/src/elements/date-time-picker/DateTimePicker.module.mjs +5 -5
  119. package/esm2020/src/elements/date-time-picker/DateTimePickerInput.mjs +4 -4
  120. package/esm2020/src/elements/divider/divider.component.mjs +4 -4
  121. package/esm2020/src/elements/divider/divider.module.mjs +5 -5
  122. package/esm2020/src/elements/dragula/Dragula.mjs +4 -4
  123. package/esm2020/src/elements/dragula/Dragula.module.mjs +5 -5
  124. package/esm2020/src/elements/dragula/DragulaService.mjs +4 -4
  125. package/esm2020/src/elements/dropdown/Dropdown.mjs +16 -16
  126. package/esm2020/src/elements/dropdown/Dropdown.module.mjs +5 -5
  127. package/esm2020/src/elements/expansion/accordion.mjs +4 -4
  128. package/esm2020/src/elements/expansion/expansion-panel-content.mjs +4 -4
  129. package/esm2020/src/elements/expansion/expansion-panel-header.mjs +10 -10
  130. package/esm2020/src/elements/expansion/expansion-panel.mjs +7 -7
  131. package/esm2020/src/elements/expansion/expansion.module.mjs +5 -5
  132. package/esm2020/src/elements/field/autocomplete/autocomplete.component.mjs +75 -21
  133. package/esm2020/src/elements/field/error/error.mjs +4 -4
  134. package/esm2020/src/elements/field/field-control.mjs +4 -4
  135. package/esm2020/src/elements/field/field.mjs +22 -12
  136. package/esm2020/src/elements/field/field.module.mjs +5 -5
  137. package/esm2020/src/elements/field/fieldset.mjs +4 -4
  138. package/esm2020/src/elements/field/formats/date-format.mjs +12 -7
  139. package/esm2020/src/elements/field/formats/time-format.mjs +12 -7
  140. package/esm2020/src/elements/field/hint/hint.mjs +4 -4
  141. package/esm2020/src/elements/field/input.mjs +4 -4
  142. package/esm2020/src/elements/field/picker.directive.mjs +4 -4
  143. package/esm2020/src/elements/field/toggle/picker-toggle.component.mjs +4 -4
  144. package/esm2020/src/elements/flex/Box.mjs +4 -4
  145. package/esm2020/src/elements/flex/Flex.mjs +7 -7
  146. package/esm2020/src/elements/flex/Flex.module.mjs +5 -5
  147. package/esm2020/src/elements/flex/Grid.mjs +4 -4
  148. package/esm2020/src/elements/form/Control.mjs +11 -13
  149. package/esm2020/src/elements/form/ControlGroup.mjs +4 -4
  150. package/esm2020/src/elements/form/ControlTemplates.mjs +4 -4
  151. package/esm2020/src/elements/form/DynamicForm.mjs +10 -10
  152. package/esm2020/src/elements/form/FieldInteractionApi.mjs +11 -4
  153. package/esm2020/src/elements/form/FieldInteractionModals.mjs +7 -7
  154. package/esm2020/src/elements/form/Form.mjs +4 -4
  155. package/esm2020/src/elements/form/Form.module.mjs +5 -5
  156. package/esm2020/src/elements/form/extras/FormExtras.module.mjs +5 -5
  157. package/esm2020/src/elements/form/extras/address/Address.mjs +4 -4
  158. package/esm2020/src/elements/form/extras/file/FileInput.mjs +4 -4
  159. package/esm2020/src/elements/header/Header.mjs +13 -13
  160. package/esm2020/src/elements/header/Header.module.mjs +5 -5
  161. package/esm2020/src/elements/icon/Icon.mjs +4 -4
  162. package/esm2020/src/elements/icon/Icon.module.mjs +5 -5
  163. package/esm2020/src/elements/layout/container/layout-container.component.mjs +4 -4
  164. package/esm2020/src/elements/layout/content/layout-content.component.mjs +4 -4
  165. package/esm2020/src/elements/layout/layout.module.mjs +5 -5
  166. package/esm2020/src/elements/layout/rail/rail.component.mjs +4 -4
  167. package/esm2020/src/elements/layout/sidenav/sidenav.component.mjs +4 -4
  168. package/esm2020/src/elements/list/List.mjs +25 -25
  169. package/esm2020/src/elements/list/List.module.mjs +5 -5
  170. package/esm2020/src/elements/loading/Loading.mjs +16 -16
  171. package/esm2020/src/elements/loading/Loading.module.mjs +5 -5
  172. package/esm2020/src/elements/menu/menu-content.component.mjs +4 -4
  173. package/esm2020/src/elements/menu/menu-item.directive.mjs +4 -4
  174. package/esm2020/src/elements/menu/menu.component.mjs +4 -4
  175. package/esm2020/src/elements/menu/menu.directive.mjs +4 -4
  176. package/esm2020/src/elements/menu/menu.module.mjs +5 -5
  177. package/esm2020/src/elements/menu/menu.service.mjs +4 -4
  178. package/esm2020/src/elements/modal/modal-container.component.mjs +4 -4
  179. package/esm2020/src/elements/modal/modal.component.mjs +7 -7
  180. package/esm2020/src/elements/modal/modal.module.mjs +5 -5
  181. package/esm2020/src/elements/modal/modal.service.mjs +4 -4
  182. package/esm2020/src/elements/multi-picker/MultiPicker.mjs +4 -4
  183. package/esm2020/src/elements/multi-picker/MultiPicker.module.mjs +5 -5
  184. package/esm2020/src/elements/non-ideal-state/NonIdealState.mjs +8 -4
  185. package/esm2020/src/elements/non-ideal-state/NonIdealState.module.mjs +5 -5
  186. package/esm2020/src/elements/picker/Picker.mjs +4 -4
  187. package/esm2020/src/elements/picker/Picker.module.mjs +5 -5
  188. package/esm2020/src/elements/picker/extras/base-picker-results/BasePickerResults.mjs +4 -4
  189. package/esm2020/src/elements/picker/extras/checklist-picker-results/ChecklistPickerResults.mjs +4 -4
  190. package/esm2020/src/elements/picker/extras/distributionlist-picker-results/DistributionListPickerResults.mjs +4 -4
  191. package/esm2020/src/elements/picker/extras/entity-picker-results/EntityPickerResults.mjs +7 -7
  192. package/esm2020/src/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.mjs +4 -4
  193. package/esm2020/src/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.mjs +4 -4
  194. package/esm2020/src/elements/picker/extras/picker-results/PickerResults.mjs +6 -4
  195. package/esm2020/src/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.mjs +4 -4
  196. package/esm2020/src/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.mjs +4 -4
  197. package/esm2020/src/elements/places/places.component.mjs +4 -4
  198. package/esm2020/src/elements/places/places.module.mjs +5 -5
  199. package/esm2020/src/elements/places/places.service.mjs +4 -4
  200. package/esm2020/src/elements/popover/PopOver.mjs +4 -4
  201. package/esm2020/src/elements/popover/PopOver.module.mjs +5 -5
  202. package/esm2020/src/elements/popover/PopOverContent.mjs +4 -4
  203. package/esm2020/src/elements/progress/Progress.mjs +4 -4
  204. package/esm2020/src/elements/progress/Progress.module.mjs +5 -5
  205. package/esm2020/src/elements/progress/ProgressBar.mjs +4 -4
  206. package/esm2020/src/elements/quick-note/QuickNote.mjs +4 -4
  207. package/esm2020/src/elements/quick-note/QuickNote.module.mjs +5 -5
  208. package/esm2020/src/elements/quick-note/extras/quick-note-results/QuickNoteResults.mjs +4 -4
  209. package/esm2020/src/elements/radio/Radio.mjs +4 -4
  210. package/esm2020/src/elements/radio/Radio.module.mjs +5 -5
  211. package/esm2020/src/elements/radio/RadioGroup.mjs +4 -4
  212. package/esm2020/src/elements/search/SearchBox.mjs +4 -4
  213. package/esm2020/src/elements/search/SearchBox.module.mjs +5 -5
  214. package/esm2020/src/elements/select/Select.mjs +5 -5
  215. package/esm2020/src/elements/select/Select.module.mjs +5 -5
  216. package/esm2020/src/elements/select-search/select-search-clear.directive.mjs +4 -4
  217. package/esm2020/src/elements/select-search/select-search.component.mjs +4 -4
  218. package/esm2020/src/elements/select-search/select-search.module.mjs +5 -5
  219. package/esm2020/src/elements/simple-table/cell-header.mjs +8 -8
  220. package/esm2020/src/elements/simple-table/cell.mjs +28 -28
  221. package/esm2020/src/elements/simple-table/pagination.mjs +4 -4
  222. package/esm2020/src/elements/simple-table/row.mjs +13 -13
  223. package/esm2020/src/elements/simple-table/simple-table.module.mjs +5 -5
  224. package/esm2020/src/elements/simple-table/sort.mjs +7 -7
  225. package/esm2020/src/elements/simple-table/state.mjs +4 -4
  226. package/esm2020/src/elements/simple-table/table.mjs +22 -22
  227. package/esm2020/src/elements/slider/Slider.mjs +4 -4
  228. package/esm2020/src/elements/slider/Slider.module.mjs +5 -5
  229. package/esm2020/src/elements/stepper/step-header.component.mjs +4 -4
  230. package/esm2020/src/elements/stepper/step-label.component.mjs +4 -4
  231. package/esm2020/src/elements/stepper/step-status.component.mjs +4 -4
  232. package/esm2020/src/elements/stepper/stepper-buttons.component.mjs +7 -7
  233. package/esm2020/src/elements/stepper/stepper.component.mjs +13 -13
  234. package/esm2020/src/elements/stepper/stepper.module.mjs +5 -5
  235. package/esm2020/src/elements/switch/Switch.mjs +4 -4
  236. package/esm2020/src/elements/switch/Switch.module.mjs +5 -5
  237. package/esm2020/src/elements/tabbed-group-picker/TabbedGroupPicker.mjs +5 -5
  238. package/esm2020/src/elements/tabbed-group-picker/TabbedGroupPicker.module.mjs +5 -5
  239. package/esm2020/src/elements/table/Table.mjs +13 -13
  240. package/esm2020/src/elements/table/Table.module.mjs +5 -5
  241. package/esm2020/src/elements/table/extras/TableExtras.module.mjs +5 -5
  242. package/esm2020/src/elements/table/extras/date-cell/DateCell.mjs +4 -4
  243. package/esm2020/src/elements/table/extras/dropdown-cell/DropdownCell.mjs +4 -4
  244. package/esm2020/src/elements/table/extras/keep-filter-focus/KeepFilterFocus.mjs +4 -4
  245. package/esm2020/src/elements/table/extras/pagination/Pagination.mjs +4 -4
  246. package/esm2020/src/elements/table/extras/percentage-cell/PercentageCell.mjs +4 -4
  247. package/esm2020/src/elements/table/extras/row-details/RowDetails.mjs +4 -4
  248. package/esm2020/src/elements/table/extras/table-actions/TableActions.mjs +4 -4
  249. package/esm2020/src/elements/table/extras/table-cell/TableCell.mjs +4 -4
  250. package/esm2020/src/elements/table/extras/table-filter/TableFilter.mjs +4 -4
  251. package/esm2020/src/elements/table/extras/table-footer/TableFooter.mjs +4 -4
  252. package/esm2020/src/elements/table/extras/table-header/TableHeader.mjs +4 -4
  253. package/esm2020/src/elements/table/extras/th-orderable/ThOrderable.mjs +4 -4
  254. package/esm2020/src/elements/table/extras/th-sortable/ThSortable.mjs +4 -4
  255. package/esm2020/src/elements/tabs/Tabs.mjs +22 -22
  256. package/esm2020/src/elements/tabs/Tabs.module.mjs +5 -5
  257. package/esm2020/src/elements/tiles/Tiles.mjs +4 -4
  258. package/esm2020/src/elements/tiles/Tiles.module.mjs +5 -5
  259. package/esm2020/src/elements/time-picker/TimePicker.mjs +4 -4
  260. package/esm2020/src/elements/time-picker/TimePicker.module.mjs +5 -5
  261. package/esm2020/src/elements/time-picker/TimePickerInput.mjs +5 -5
  262. package/esm2020/src/elements/tip-well/TipWell.mjs +4 -4
  263. package/esm2020/src/elements/tip-well/TipWell.module.mjs +5 -5
  264. package/esm2020/src/elements/toast/Toast.mjs +4 -4
  265. package/esm2020/src/elements/toast/Toast.module.mjs +5 -5
  266. package/esm2020/src/elements/toast/ToastService.mjs +4 -4
  267. package/esm2020/src/elements/toolbar/toolbar.component.mjs +7 -7
  268. package/esm2020/src/elements/toolbar/toolbar.module.mjs +5 -5
  269. package/esm2020/src/elements/tooltip/Tooltip.component.mjs +4 -4
  270. package/esm2020/src/elements/tooltip/Tooltip.directive.mjs +4 -4
  271. package/esm2020/src/elements/tooltip/Tooltip.module.mjs +5 -5
  272. package/esm2020/src/elements/unless/Unless.mjs +4 -4
  273. package/esm2020/src/elements/unless/Unless.module.mjs +5 -5
  274. package/esm2020/src/elements/value/EntityList.mjs +4 -4
  275. package/esm2020/src/elements/value/Render.mjs +5 -5
  276. package/esm2020/src/elements/value/Value.mjs +4 -4
  277. package/esm2020/src/elements/value/Value.module.mjs +5 -5
  278. package/esm2020/src/novo-elements.module.mjs +5 -5
  279. package/esm2020/src/novo-elements.providers.mjs +5 -5
  280. package/esm2020/src/pipes/Pipes.module.mjs +5 -5
  281. package/esm2020/src/pipes/decode-uri/DecodeURI.mjs +5 -5
  282. package/esm2020/src/pipes/default/Default.mjs +5 -5
  283. package/esm2020/src/pipes/group-by/GroupBy.mjs +4 -4
  284. package/esm2020/src/pipes/iso8601/iso-date-range.pipe.mjs +4 -4
  285. package/esm2020/src/pipes/iso8601/iso-date.pipe.mjs +4 -4
  286. package/esm2020/src/pipes/iso8601/iso-time-range.pipe.mjs +4 -4
  287. package/esm2020/src/pipes/iso8601/iso-time.pipe.mjs +4 -4
  288. package/esm2020/src/pipes/plural/Plural.mjs +5 -5
  289. package/esm2020/src/services/date-format/DateFormat.mjs +4 -4
  290. package/esm2020/src/services/global/global.service.mjs +4 -4
  291. package/esm2020/src/services/novo-label-service.mjs +5 -4
  292. package/esm2020/src/services/options/OptionsService.mjs +4 -4
  293. package/esm2020/src/services/security/Security.mjs +4 -4
  294. package/esm2020/src/services/storage/storage.service.mjs +4 -4
  295. package/esm2020/src/services/template/NovoTemplateService.mjs +4 -4
  296. package/esm2020/src/utils/component-utils/ComponentUtils.mjs +4 -4
  297. package/esm2020/src/utils/form-utils/FormUtils.mjs +4 -4
  298. package/esm2020/src/utils/outside-click/OutsideClick.mjs +4 -4
  299. package/fesm2015/novo-elements.mjs +1387 -1259
  300. package/fesm2015/novo-elements.mjs.map +1 -1
  301. package/fesm2020/novo-elements.mjs +1386 -1258
  302. package/fesm2020/novo-elements.mjs.map +1 -1
  303. package/package.json +2 -2
  304. package/schematics/package.json +1 -1
  305. package/src/elements/chips/ChipInput.d.ts +7 -3
  306. package/src/elements/chips/ChipList.d.ts +6 -3
  307. package/src/elements/chips/ChipTextControl.d.ts +1 -0
  308. package/src/elements/common/option/optgroup.component.d.ts +2 -2
  309. package/src/elements/common/option/option.component.d.ts +3 -3
  310. package/src/elements/field/autocomplete/autocomplete.component.d.ts +6 -2
  311. package/src/elements/field/field.d.ts +4 -2
  312. package/src/elements/field/formats/date-format.d.ts +2 -2
  313. package/src/elements/field/formats/time-format.d.ts +2 -2
  314. package/src/elements/form/FieldInteractionApi.d.ts +1 -0
  315. package/src/elements/non-ideal-state/NonIdealState.d.ts +1 -1
  316. package/src/services/novo-label-service.d.ts +1 -0
@@ -16,9 +16,9 @@ export class NovoStep extends CdkStep {
16
16
  super(stepper);
17
17
  }
18
18
  }
19
- NovoStep.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStep, deps: [{ token: forwardRef(() => NovoStepper) }], target: i0.ɵɵFactoryTarget.Component });
20
- NovoStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NovoStep, selector: "novo-step", inputs: { theme: "theme", color: "color", icon: "icon" }, providers: [{ provide: CdkStep, useExisting: NovoStep }], queries: [{ propertyName: "stepLabel", first: true, predicate: NovoStepLabel, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStep, decorators: [{
19
+ NovoStep.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStep, deps: [{ token: forwardRef(() => NovoStepper) }], target: i0.ɵɵFactoryTarget.Component });
20
+ NovoStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoStep, selector: "novo-step", inputs: { theme: "theme", color: "color", icon: "icon" }, providers: [{ provide: CdkStep, useExisting: NovoStep }], queries: [{ propertyName: "stepLabel", first: true, predicate: NovoStepLabel, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStep, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'novo-step', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: CdkStep, useExisting: NovoStep }], template: "<ng-template><ng-content></ng-content></ng-template>\n" }]
24
24
  }], ctorParameters: function () { return [{ type: i1.CdkStepper, decorators: [{
@@ -79,12 +79,12 @@ export class NovoStepper extends CdkStepper {
79
79
  return 'none';
80
80
  }
81
81
  }
82
- NovoStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepper, deps: null, target: i0.ɵɵFactoryTarget.Directive });
83
- NovoStepper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: NovoStepper, selector: "[novoStepper]", providers: [
82
+ NovoStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepper, deps: null, target: i0.ɵɵFactoryTarget.Directive });
83
+ NovoStepper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: NovoStepper, selector: "[novoStepper]", providers: [
84
84
  { provide: CdkStep, useExisting: NovoStep },
85
85
  { provide: CdkStepper, useExisting: NovoStepper },
86
86
  ], queries: [{ propertyName: "steps", predicate: NovoStep, descendants: true }, { propertyName: "_icons", predicate: NovoIconComponent }], viewQueries: [{ propertyName: "_stepHeader", predicate: NovoStepHeader, descendants: true }], usesInheritance: true, ngImport: i0 });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepper, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepper, decorators: [{
88
88
  type: Directive,
89
89
  args: [{
90
90
  selector: '[novoStepper]',
@@ -105,12 +105,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
105
105
  }] } });
106
106
  export class NovoHorizontalStepper extends NovoStepper {
107
107
  }
108
- NovoHorizontalStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoHorizontalStepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
- NovoHorizontalStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NovoHorizontalStepper, selector: "novo-horizontal-stepper", host: { attributes: { "aria-orientation": "horizontal", "role": "tablist" }, classAttribute: "novo-stepper-horizontal" }, providers: [
108
+ NovoHorizontalStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoHorizontalStepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
+ NovoHorizontalStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoHorizontalStepper, selector: "novo-horizontal-stepper", host: { attributes: { "aria-orientation": "horizontal", "role": "tablist" }, classAttribute: "novo-stepper-horizontal" }, providers: [
110
110
  { provide: NovoStepper, useExisting: NovoHorizontalStepper },
111
111
  { provide: CdkStepper, useExisting: NovoHorizontalStepper },
112
112
  ], exportAs: ["novoHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"novo-horizontal-stepper-header-container\">\n <div class=\"novo-stepper-horizontal-line complete\"></div>\n <ng-container *ngFor=\"let step of _steps; let i = index; let isLast = last\">\n <novo-step-header class=\"novo-horizontal-stepper-header\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [index]=\"i\"\n [theme]=\"step.theme\"\n [color]=\"step.color\"\n [icon]=\"step.icon\"\n [state]=\"getIndicatorType(i)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"step.completed || selectedIndex === i || !linear\"\n [optional]=\"step.optional\"\n [iconOverrides]=\"_iconOverrides\">\n </novo-step-header>\n </ng-container>\n <div class=\"novo-stepper-horizontal-line\" [class.complete]=\"completed\"></div>\n</div>\n\n<div class=\"novo-horizontal-content-container\">\n <div *ngFor=\"let step of _steps; let i = index\"\n class=\"novo-horizontal-stepper-content\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n</div>", styles: [".novo-stepper-vertical,.novo-stepper-horizontal{display:block}.novo-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center;justify-content:center;margin-bottom:1em;background:#f7f7f7}.novo-stepper-horizontal-line{border-bottom:1px solid #dbdbdb;flex:auto;min-width:0px;height:80px}.novo-stepper-horizontal-line.complete{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header{display:flex;height:80px;flex-flow:column;overflow:visible;align-items:center;justify-content:center;padding:0 24px}.novo-horizontal-stepper-header .novo-step-status{display:flex;width:100%;justify-content:center;align-items:center;position:absolute;height:1px;bottom:0px}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line{width:100%;position:absolute}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line:before{content:\"\";display:block;width:calc(50% - 8px);margin-right:8px;border-bottom:1px solid #dbdbdb}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line:after{content:\"\";display:block;width:calc(50% - 8px);margin-left:calc(50% + 8px);margin-top:-1px;border-top:1px solid #dbdbdb}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.edit:before{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.done:before{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.done:after{border-top:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon{position:relative}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon:before{content:\"\";display:block;background:#ffffff;border-radius:50%;position:absolute;z-index:0;top:1px;left:1px;bottom:1px;right:1px}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon>*{position:relative;z-index:1}.novo-vertical-stepper-header{display:flex;align-items:center;padding:24px;max-height:24px}.novo-vertical-stepper-header .novo-step-icon,.novo-vertical-stepper-header .novo-step-icon-not-touched{margin-right:12px}[dir=rtl] .novo-vertical-stepper-header .novo-step-icon,[dir=rtl] .novo-vertical-stepper-header .novo-step-icon-not-touched{margin-right:0;margin-left:12px}.novo-horizontal-stepper-content{overflow:hidden}.novo-horizontal-stepper-content[aria-expanded=false]{height:0}.novo-horizontal-content-container{overflow:hidden;padding:0 24px 24px}.novo-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .novo-vertical-content-container{margin-left:0;margin-right:36px}.novo-stepper-vertical-line:before{content:\"\";position:absolute;top:-16px;bottom:-16px;left:0;z-index:-1;border-left-width:1px;border-left-style:solid;border-left-color:#dbdbdb}[dir=rtl] .novo-stepper-vertical-line:before{left:auto;right:0}.novo-stepper-vertical-line.edit:before{border-left-color:1px solid #4a89dc}.novo-stepper-vertical-line.done:before{border-left-color:1px solid #4a89dc}.novo-stepper-vertical-line.done:after{border-left-color:1px solid #4a89dc}.novo-stepper-vertical novo-step-status{position:absolute;left:35px;top:25px;transform:scale(.8)}.novo-vertical-stepper-content{overflow:hidden}.novo-vertical-content{padding:0 24px 24px}.novo-step:last-child .novo-vertical-content-container{border:none}\n"], components: [{ type: i2.NovoStepHeader, selector: "novo-step-header", inputs: ["theme", "color", "icon", "state", "label", "iconOverrides", "index", "selected", "active", "optional"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [novoStepperAnimations.horizontalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoHorizontalStepper, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoHorizontalStepper, decorators: [{
114
114
  type: Component,
115
115
  args: [{ selector: 'novo-horizontal-stepper', exportAs: 'novoHorizontalStepper', host: {
116
116
  class: 'novo-stepper-horizontal',
@@ -127,12 +127,12 @@ export class NovoVerticalStepper extends NovoStepper {
127
127
  this._orientation = 'vertical';
128
128
  }
129
129
  }
130
- NovoVerticalStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoVerticalStepper, deps: [{ token: i4.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
131
- NovoVerticalStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NovoVerticalStepper, selector: "novo-vertical-stepper", host: { attributes: { "aria-orientation": "vertical", "role": "tablist" }, classAttribute: "novo-stepper-vertical" }, providers: [
130
+ NovoVerticalStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoVerticalStepper, deps: [{ token: i4.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
131
+ NovoVerticalStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoVerticalStepper, selector: "novo-vertical-stepper", host: { attributes: { "aria-orientation": "vertical", "role": "tablist" }, classAttribute: "novo-stepper-vertical" }, providers: [
132
132
  { provide: NovoStepper, useExisting: NovoVerticalStepper },
133
133
  { provide: CdkStepper, useExisting: NovoVerticalStepper },
134
134
  ], exportAs: ["novoVerticalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"novo-step\" *ngFor=\"let step of _steps; let i = index; let isLast = last\">\n <novo-step-header class=\"novo-vertical-stepper-header\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() == i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [index]=\"i\"\n [theme]=\"step.theme\"\n [color]=\"step.color\"\n [icon]=\"step.icon\"\n [state]=\"getIndicatorType(i)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"step.completed || selectedIndex === i || !linear\"\n [optional]=\"step.optional\"\n [iconOverrides]=\"_iconOverrides\">\n </novo-step-header>\n\n <div class=\"novo-vertical-content-container\" [class.novo-stepper-vertical-line]=\"!isLast\"\n [ngClass]=\"getIndicatorType(i)\">\n <div class=\"novo-vertical-stepper-content\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <div class=\"novo-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>", styles: [".novo-stepper-vertical,.novo-stepper-horizontal{display:block}.novo-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center;justify-content:center;margin-bottom:1em;background:#f7f7f7}.novo-stepper-horizontal-line{border-bottom:1px solid #dbdbdb;flex:auto;min-width:0px;height:80px}.novo-stepper-horizontal-line.complete{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header{display:flex;height:80px;flex-flow:column;overflow:visible;align-items:center;justify-content:center;padding:0 24px}.novo-horizontal-stepper-header .novo-step-status{display:flex;width:100%;justify-content:center;align-items:center;position:absolute;height:1px;bottom:0px}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line{width:100%;position:absolute}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line:before{content:\"\";display:block;width:calc(50% - 8px);margin-right:8px;border-bottom:1px solid #dbdbdb}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line:after{content:\"\";display:block;width:calc(50% - 8px);margin-left:calc(50% + 8px);margin-top:-1px;border-top:1px solid #dbdbdb}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.edit:before{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.done:before{border-bottom:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-line.done:after{border-top:1px solid #4a89dc}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon{position:relative}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon:before{content:\"\";display:block;background:#ffffff;border-radius:50%;position:absolute;z-index:0;top:1px;left:1px;bottom:1px;right:1px}.novo-horizontal-stepper-header .novo-step-status .novo-stepper-status-icon>*{position:relative;z-index:1}.novo-vertical-stepper-header{display:flex;align-items:center;padding:24px;max-height:24px}.novo-vertical-stepper-header .novo-step-icon,.novo-vertical-stepper-header .novo-step-icon-not-touched{margin-right:12px}[dir=rtl] .novo-vertical-stepper-header .novo-step-icon,[dir=rtl] .novo-vertical-stepper-header .novo-step-icon-not-touched{margin-right:0;margin-left:12px}.novo-horizontal-stepper-content{overflow:hidden}.novo-horizontal-stepper-content[aria-expanded=false]{height:0}.novo-horizontal-content-container{overflow:hidden;padding:0 24px 24px}.novo-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .novo-vertical-content-container{margin-left:0;margin-right:36px}.novo-stepper-vertical-line:before{content:\"\";position:absolute;top:-16px;bottom:-16px;left:0;z-index:-1;border-left-width:1px;border-left-style:solid;border-left-color:#dbdbdb}[dir=rtl] .novo-stepper-vertical-line:before{left:auto;right:0}.novo-stepper-vertical-line.edit:before{border-left-color:1px solid #4a89dc}.novo-stepper-vertical-line.done:before{border-left-color:1px solid #4a89dc}.novo-stepper-vertical-line.done:after{border-left-color:1px solid #4a89dc}.novo-stepper-vertical novo-step-status{position:absolute;left:35px;top:25px;transform:scale(.8)}.novo-vertical-stepper-content{overflow:hidden}.novo-vertical-content{padding:0 24px 24px}.novo-step:last-child .novo-vertical-content-container{border:none}\n"], components: [{ type: i2.NovoStepHeader, selector: "novo-step-header", inputs: ["theme", "color", "icon", "state", "label", "iconOverrides", "index", "selected", "active", "optional"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [novoStepperAnimations.verticalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush });
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoVerticalStepper, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoVerticalStepper, decorators: [{
136
136
  type: Component,
137
137
  args: [{ selector: 'novo-vertical-stepper', exportAs: 'novoVerticalStepper', host: {
138
138
  class: 'novo-stepper-vertical',
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
145
145
  }], ctorParameters: function () { return [{ type: i4.Directionality, decorators: [{
146
146
  type: Optional
147
147
  }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3RlcHBlci9zdGVwcGVyLWhvcml6b250YWwuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci12ZXJ0aWNhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFpQixVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBRVQsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUs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NUQsdUJBRW9CLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTTs7QUFzQmpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBQ2xELFlBQXdCLEdBQW1CLEVBQUUsaUJBQW9DLEVBQUUsVUFBc0I7UUFDdkcsS0FBSyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQzs7Z0hBSlUsbUJBQW1CO29HQUFuQixtQkFBbUIsc0tBUG5CO1FBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtRQUMxRCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO0tBQzFELG9GR3BKSCxtMUNBZ0NNLGswSEhnSFEsQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQzsyRkFRL0MsbUJBQW1CO2tCQWxCL0IsU0FBUzsrQkFDRSx1QkFBdUIsWUFDdkIscUJBQXFCLFFBR3pCO3dCQUNKLEtBQUssRUFBRSx1QkFBdUI7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLElBQUksRUFBRSxTQUFTO3FCQUNoQixjQUNXLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsYUFDL0M7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQzFELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUMxRCx1QkFDb0IsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFHbEMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU3RlcCwgQ2RrU3RlcEhlYWRlciwgQ2RrU3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdm9JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9JY29uJztcbmltcG9ydCB7IE5vdm9TdGVwSGVhZGVyIH0gZnJvbSAnLi9zdGVwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm92b1N0ZXBMYWJlbCB9IGZyb20gJy4vc3RlcC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbm92b1N0ZXBwZXJBbmltYXRpb25zIH0gZnJvbSAnLi9zdGVwcGVyLmFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJ3N0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrU3RlcCwgdXNlRXhpc3Rpbmc6IE5vdm9TdGVwIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcCBleHRlbmRzIENka1N0ZXAge1xuICAvKiogQ29udGVudCBmb3Igc3RlcCBsYWJlbCBnaXZlbiBieSBgPG5nLXRlbXBsYXRlIG5vdm9TdGVwTGFiZWw+YC4gKi9cbiAgQENvbnRlbnRDaGlsZChOb3ZvU3RlcExhYmVsKVxuICBzdGVwTGFiZWw6IE5vdm9TdGVwTGFiZWw7XG5cbiAgQElucHV0KClcbiAgdGhlbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgY29sb3I6IHN0cmluZztcbiAgQElucHV0KClcbiAgaWNvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOb3ZvU3RlcHBlcikpIHN0ZXBwZXI6IENka1N0ZXBwZXIpIHtcbiAgICBzdXBlcihzdGVwcGVyKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbm92b1N0ZXBwZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwLCB1c2VFeGlzdGluZzogTm92b1N0ZXAgfSxcbiAgICB7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBOb3ZvU3RlcHBlciB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcHBlciBleHRlbmRzIENka1N0ZXBwZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqIFRoZSBsaXN0IG9mIHN0ZXAgaGVhZGVycyBvZiB0aGUgc3RlcHMgaW4gdGhlIHN0ZXBwZXIuICovXG4gIEBWaWV3Q2hpbGRyZW4oTm92b1N0ZXBIZWFkZXIpXG4gIF9zdGVwSGVhZGVyOiBRdWVyeUxpc3Q8Q2RrU3RlcEhlYWRlcj47XG5cbiAgLyoqIFN0ZXBzIHRoYXQgdGhlIHN0ZXBwZXIgaG9sZHMuICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTm92b1N0ZXAsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgc3RlcHM6IFF1ZXJ5TGlzdDxOb3ZvU3RlcD47XG5cbiAgLyoqIEN1c3RvbSBpY29uIG92ZXJyaWRlcyBwYXNzZWQgaW4gYnkgdGhlIGNvbnN1bWVyLiAqL1xuICBAQ29udGVudENoaWxkcmVuKE5vdm9JY29uQ29tcG9uZW50KVxuICBfaWNvbnM6IFF1ZXJ5TGlzdDxOb3ZvSWNvbkNvbXBvbmVudD47XG5cbiAgLyoqIENvbnN1bWVyLXNwZWNpZmllZCB0ZW1wbGF0ZS1yZWZzIHRvIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlciBpY29ucy4gKi9cbiAgX2ljb25PdmVycmlkZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgZ2V0IGNvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzLnRvQXJyYXkoKTtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHN0ZXBzLmxlbmd0aCAtIDE7XG4gICAgICByZXR1cm4gc3RlcHNbbGVuZ3RoXS5jb21wbGV0ZWQgJiYgbGVuZ3RoID09PSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG4gICAgdGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdGF0ZUNoYW5nZWQoKSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzLnRvQXJyYXkoKTtcbiAgICAgIHN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleF0uY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgZ2V0SW5kaWNhdG9yVHlwZShpbmRleDogbnVtYmVyKTogJ25vbmUnIHwgJycgfCAnZWRpdCcgfCAnZG9uZScge1xuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcy50b0FycmF5KCk7XG4gICAgaWYgKGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXgpIHtcbiAgICAgIGlmIChzdGVwc1tpbmRleF0gJiYgaW5kZXggPT09IHN0ZXBzLmxlbmd0aCAtIDEgJiYgc3RlcHNbaW5kZXhdLmNvbXBsZXRlZCkge1xuICAgICAgICByZXR1cm4gJ2RvbmUnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdlZGl0JztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICByZXR1cm4gJ2RvbmUnO1xuICAgIH1cbiAgICByZXR1cm4gJ25vbmUnO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8taG9yaXpvbnRhbC1zdGVwcGVyJyxcbiAgZXhwb3J0QXM6ICdub3ZvSG9yaXpvbnRhbFN0ZXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ3N0ZXBwZXItaG9yaXpvbnRhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbm92by1zdGVwcGVyLWhvcml6b250YWwnLFxuICAgICdhcmlhLW9yaWVudGF0aW9uJzogJ2hvcml6b250YWwnLFxuICAgIHJvbGU6ICd0YWJsaXN0JyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW25vdm9TdGVwcGVyQW5pbWF0aW9ucy5ob3Jpem9udGFsU3RlcFRyYW5zaXRpb25dLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5vdm9TdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b0hvcml6b250YWxTdGVwcGVyIH0sXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b0hvcml6b250YWxTdGVwcGVyIH0sXG4gIF0sXG4gIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0hvcml6b250YWxTdGVwcGVyIGV4dGVuZHMgTm92b1N0ZXBwZXIge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by12ZXJ0aWNhbC1zdGVwcGVyJyxcbiAgZXhwb3J0QXM6ICdub3ZvVmVydGljYWxTdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdzdGVwcGVyLXZlcnRpY2FsLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdub3ZvLXN0ZXBwZXItdmVydGljYWwnLFxuICAgICdhcmlhLW9yaWVudGF0aW9uJzogJ3ZlcnRpY2FsJyxcbiAgICByb2xlOiAndGFibGlzdCcsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFtub3ZvU3RlcHBlckFuaW1hdGlvbnMudmVydGljYWxTdGVwVHJhbnNpdGlvbl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTm92b1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBOb3ZvVmVydGljYWxTdGVwcGVyIH0sXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b1ZlcnRpY2FsU3RlcHBlciB9LFxuICBdLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9WZXJ0aWNhbFN0ZXBwZXIgZXh0ZW5kcyBOb3ZvU3RlcHBlciB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGRpciwgY2hhbmdlRGV0ZWN0b3JSZWYsIGVsZW1lbnRSZWYsICcnKTtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXYgY2xhc3M9XCJub3ZvLWhvcml6b250YWwtc3RlcHBlci1oZWFkZXItY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJub3ZvLXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIGNvbXBsZXRlXCI+PC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgX3N0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgIDxub3ZvLXN0ZXAtaGVhZGVyIGNsYXNzPVwibm92by1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyXCJcbiAgICAgIChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcbiAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgICBbdGFiSW5kZXhdPVwiX2dldEZvY3VzSW5kZXgoKSA9PT0gaSA/IDAgOiAtMVwiXG4gICAgICBbaWRdPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09IGlcIlxuICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgW3RoZW1lXT1cInN0ZXAudGhlbWVcIlxuICAgICAgW2NvbG9yXT1cInN0ZXAuY29sb3JcIlxuICAgICAgW2ljb25dPVwic3RlcC5pY29uXCJcbiAgICAgIFtzdGF0ZV09XCJnZXRJbmRpY2F0b3JUeXBlKGkpXCJcbiAgICAgIFtsYWJlbF09XCJzdGVwLnN0ZXBMYWJlbCB8fCBzdGVwLmxhYmVsXCJcbiAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICAgIFthY3RpdmVdPVwic3RlcC5jb21wbGV0ZWQgfHwgc2VsZWN0ZWRJbmRleCA9PT0gaSB8fCAhbGluZWFyXCJcbiAgICAgIFtvcHRpb25hbF09XCJzdGVwLm9wdGlvbmFsXCJcbiAgICAgIFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCI+XG4gICAgPC9ub3ZvLXN0ZXAtaGVhZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cIm5vdm8tc3RlcHBlci1ob3Jpem9udGFsLWxpbmVcIiBbY2xhc3MuY29tcGxldGVdPVwiY29tcGxldGVkXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm5vdm8taG9yaXpvbnRhbC1jb250ZW50LWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGVwIG9mIF9zdGVwczsgbGV0IGkgPSBpbmRleFwiXG4gICAgY2xhc3M9XCJub3ZvLWhvcml6b250YWwtc3RlcHBlci1jb250ZW50XCIgcm9sZT1cInRhYnBhbmVsXCJcbiAgICBbQHN0ZXBUcmFuc2l0aW9uXT1cIl9nZXRBbmltYXRpb25EaXJlY3Rpb24oaSlcIlxuICAgIFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj4iLCI8ZGl2IGNsYXNzPVwibm92by1zdGVwXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgX3N0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICA8bm92by1zdGVwLWhlYWRlciBjbGFzcz1cIm5vdm8tdmVydGljYWwtc3RlcHBlci1oZWFkZXJcIlxuICAgIChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcbiAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudClcIlxuICAgIFt0YWJJbmRleF09XCJfZ2V0Rm9jdXNJbmRleCgpID09IGkgPyAwIDogLTFcIlxuICAgIFtpZF09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgW2luZGV4XT1cImlcIlxuICAgIFt0aGVtZV09XCJzdGVwLnRoZW1lXCJcbiAgICBbY29sb3JdPVwic3RlcC5jb2xvclwiXG4gICAgW2ljb25dPVwic3RlcC5pY29uXCJcbiAgICBbc3RhdGVdPVwiZ2V0SW5kaWNhdG9yVHlwZShpKVwiXG4gICAgW2xhYmVsXT1cInN0ZXAuc3RlcExhYmVsIHx8IHN0ZXAubGFiZWxcIlxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICBbYWN0aXZlXT1cInN0ZXAuY29tcGxldGVkIHx8IHNlbGVjdGVkSW5kZXggPT09IGkgfHwgIWxpbmVhclwiXG4gICAgW29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuICAgIFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCI+XG4gIDwvbm92by1zdGVwLWhlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwibm92by12ZXJ0aWNhbC1jb250ZW50LWNvbnRhaW5lclwiIFtjbGFzcy5ub3ZvLXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCJcbiAgICBbbmdDbGFzc109XCJnZXRJbmRpY2F0b3JUeXBlKGkpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5vdm8tdmVydGljYWwtc3RlcHBlci1jb250ZW50XCIgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgIFtAc3RlcFRyYW5zaXRpb25dPVwiX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpKVwiXG4gICAgICBbaWRdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXZlcnRpY2FsLWNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3RlcHBlci9zdGVwcGVyLWhvcml6b250YWwuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci12ZXJ0aWNhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFpQixVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBRVQsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUs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NUQsdUJBRW9CLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTTs7QUFzQmpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBQ2xELFlBQXdCLEdBQW1CLEVBQUUsaUJBQW9DLEVBQUUsVUFBc0I7UUFDdkcsS0FBSyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQzs7aUhBSlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsc0tBUG5CO1FBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtRQUMxRCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO0tBQzFELG9GR3BKSCxtMUNBZ0NNLGswSEhnSFEsQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQzs0RkFRL0MsbUJBQW1CO2tCQWxCL0IsU0FBUzsrQkFDRSx1QkFBdUIsWUFDdkIscUJBQXFCLFFBR3pCO3dCQUNKLEtBQUssRUFBRSx1QkFBdUI7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLElBQUksRUFBRSxTQUFTO3FCQUNoQixjQUNXLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsYUFDL0M7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQzFELEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUMxRCx1QkFDb0IsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFHbEMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU3RlcCwgQ2RrU3RlcEhlYWRlciwgQ2RrU3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdm9JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9JY29uJztcbmltcG9ydCB7IE5vdm9TdGVwSGVhZGVyIH0gZnJvbSAnLi9zdGVwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm92b1N0ZXBMYWJlbCB9IGZyb20gJy4vc3RlcC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbm92b1N0ZXBwZXJBbmltYXRpb25zIH0gZnJvbSAnLi9zdGVwcGVyLmFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJ3N0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrU3RlcCwgdXNlRXhpc3Rpbmc6IE5vdm9TdGVwIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcCBleHRlbmRzIENka1N0ZXAge1xuICAvKiogQ29udGVudCBmb3Igc3RlcCBsYWJlbCBnaXZlbiBieSBgPG5nLXRlbXBsYXRlIG5vdm9TdGVwTGFiZWw+YC4gKi9cbiAgQENvbnRlbnRDaGlsZChOb3ZvU3RlcExhYmVsKVxuICBzdGVwTGFiZWw6IE5vdm9TdGVwTGFiZWw7XG5cbiAgQElucHV0KClcbiAgdGhlbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgY29sb3I6IHN0cmluZztcbiAgQElucHV0KClcbiAgaWNvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBOb3ZvU3RlcHBlcikpIHN0ZXBwZXI6IENka1N0ZXBwZXIpIHtcbiAgICBzdXBlcihzdGVwcGVyKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbm92b1N0ZXBwZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwLCB1c2VFeGlzdGluZzogTm92b1N0ZXAgfSxcbiAgICB7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBOb3ZvU3RlcHBlciB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcHBlciBleHRlbmRzIENka1N0ZXBwZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqIFRoZSBsaXN0IG9mIHN0ZXAgaGVhZGVycyBvZiB0aGUgc3RlcHMgaW4gdGhlIHN0ZXBwZXIuICovXG4gIEBWaWV3Q2hpbGRyZW4oTm92b1N0ZXBIZWFkZXIpXG4gIF9zdGVwSGVhZGVyOiBRdWVyeUxpc3Q8Q2RrU3RlcEhlYWRlcj47XG5cbiAgLyoqIFN0ZXBzIHRoYXQgdGhlIHN0ZXBwZXIgaG9sZHMuICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTm92b1N0ZXAsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgc3RlcHM6IFF1ZXJ5TGlzdDxOb3ZvU3RlcD47XG5cbiAgLyoqIEN1c3RvbSBpY29uIG92ZXJyaWRlcyBwYXNzZWQgaW4gYnkgdGhlIGNvbnN1bWVyLiAqL1xuICBAQ29udGVudENoaWxkcmVuKE5vdm9JY29uQ29tcG9uZW50KVxuICBfaWNvbnM6IFF1ZXJ5TGlzdDxOb3ZvSWNvbkNvbXBvbmVudD47XG5cbiAgLyoqIENvbnN1bWVyLXNwZWNpZmllZCB0ZW1wbGF0ZS1yZWZzIHRvIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlciBpY29ucy4gKi9cbiAgX2ljb25PdmVycmlkZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgZ2V0IGNvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzLnRvQXJyYXkoKTtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHN0ZXBzLmxlbmd0aCAtIDE7XG4gICAgICByZXR1cm4gc3RlcHNbbGVuZ3RoXS5jb21wbGV0ZWQgJiYgbGVuZ3RoID09PSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG4gICAgdGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdGF0ZUNoYW5nZWQoKSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzLnRvQXJyYXkoKTtcbiAgICAgIHN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleF0uY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMubmV4dCgpO1xuICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgZ2V0SW5kaWNhdG9yVHlwZShpbmRleDogbnVtYmVyKTogJ25vbmUnIHwgJycgfCAnZWRpdCcgfCAnZG9uZScge1xuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcy50b0FycmF5KCk7XG4gICAgaWYgKGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXgpIHtcbiAgICAgIGlmIChzdGVwc1tpbmRleF0gJiYgaW5kZXggPT09IHN0ZXBzLmxlbmd0aCAtIDEgJiYgc3RlcHNbaW5kZXhdLmNvbXBsZXRlZCkge1xuICAgICAgICByZXR1cm4gJ2RvbmUnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdlZGl0JztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICByZXR1cm4gJ2RvbmUnO1xuICAgIH1cbiAgICByZXR1cm4gJ25vbmUnO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8taG9yaXpvbnRhbC1zdGVwcGVyJyxcbiAgZXhwb3J0QXM6ICdub3ZvSG9yaXpvbnRhbFN0ZXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ3N0ZXBwZXItaG9yaXpvbnRhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbm92by1zdGVwcGVyLWhvcml6b250YWwnLFxuICAgICdhcmlhLW9yaWVudGF0aW9uJzogJ2hvcml6b250YWwnLFxuICAgIHJvbGU6ICd0YWJsaXN0JyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW25vdm9TdGVwcGVyQW5pbWF0aW9ucy5ob3Jpem9udGFsU3RlcFRyYW5zaXRpb25dLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5vdm9TdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b0hvcml6b250YWxTdGVwcGVyIH0sXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b0hvcml6b250YWxTdGVwcGVyIH0sXG4gIF0sXG4gIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0hvcml6b250YWxTdGVwcGVyIGV4dGVuZHMgTm92b1N0ZXBwZXIge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by12ZXJ0aWNhbC1zdGVwcGVyJyxcbiAgZXhwb3J0QXM6ICdub3ZvVmVydGljYWxTdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdzdGVwcGVyLXZlcnRpY2FsLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdub3ZvLXN0ZXBwZXItdmVydGljYWwnLFxuICAgICdhcmlhLW9yaWVudGF0aW9uJzogJ3ZlcnRpY2FsJyxcbiAgICByb2xlOiAndGFibGlzdCcsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFtub3ZvU3RlcHBlckFuaW1hdGlvbnMudmVydGljYWxTdGVwVHJhbnNpdGlvbl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTm92b1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBOb3ZvVmVydGljYWxTdGVwcGVyIH0sXG4gICAgeyBwcm92aWRlOiBDZGtTdGVwcGVyLCB1c2VFeGlzdGluZzogTm92b1ZlcnRpY2FsU3RlcHBlciB9LFxuICBdLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9WZXJ0aWNhbFN0ZXBwZXIgZXh0ZW5kcyBOb3ZvU3RlcHBlciB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGRpciwgY2hhbmdlRGV0ZWN0b3JSZWYsIGVsZW1lbnRSZWYsICcnKTtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXYgY2xhc3M9XCJub3ZvLWhvcml6b250YWwtc3RlcHBlci1oZWFkZXItY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJub3ZvLXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIGNvbXBsZXRlXCI+PC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgX3N0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgIDxub3ZvLXN0ZXAtaGVhZGVyIGNsYXNzPVwibm92by1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyXCJcbiAgICAgIChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcbiAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG4gICAgICBbdGFiSW5kZXhdPVwiX2dldEZvY3VzSW5kZXgoKSA9PT0gaSA/IDAgOiAtMVwiXG4gICAgICBbaWRdPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09IGlcIlxuICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgW3RoZW1lXT1cInN0ZXAudGhlbWVcIlxuICAgICAgW2NvbG9yXT1cInN0ZXAuY29sb3JcIlxuICAgICAgW2ljb25dPVwic3RlcC5pY29uXCJcbiAgICAgIFtzdGF0ZV09XCJnZXRJbmRpY2F0b3JUeXBlKGkpXCJcbiAgICAgIFtsYWJlbF09XCJzdGVwLnN0ZXBMYWJlbCB8fCBzdGVwLmxhYmVsXCJcbiAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICAgIFthY3RpdmVdPVwic3RlcC5jb21wbGV0ZWQgfHwgc2VsZWN0ZWRJbmRleCA9PT0gaSB8fCAhbGluZWFyXCJcbiAgICAgIFtvcHRpb25hbF09XCJzdGVwLm9wdGlvbmFsXCJcbiAgICAgIFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCI+XG4gICAgPC9ub3ZvLXN0ZXAtaGVhZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cIm5vdm8tc3RlcHBlci1ob3Jpem9udGFsLWxpbmVcIiBbY2xhc3MuY29tcGxldGVdPVwiY29tcGxldGVkXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm5vdm8taG9yaXpvbnRhbC1jb250ZW50LWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGVwIG9mIF9zdGVwczsgbGV0IGkgPSBpbmRleFwiXG4gICAgY2xhc3M9XCJub3ZvLWhvcml6b250YWwtc3RlcHBlci1jb250ZW50XCIgcm9sZT1cInRhYnBhbmVsXCJcbiAgICBbQHN0ZXBUcmFuc2l0aW9uXT1cIl9nZXRBbmltYXRpb25EaXJlY3Rpb24oaSlcIlxuICAgIFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj4iLCI8ZGl2IGNsYXNzPVwibm92by1zdGVwXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgX3N0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICA8bm92by1zdGVwLWhlYWRlciBjbGFzcz1cIm5vdm8tdmVydGljYWwtc3RlcHBlci1oZWFkZXJcIlxuICAgIChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcbiAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudClcIlxuICAgIFt0YWJJbmRleF09XCJfZ2V0Rm9jdXNJbmRleCgpID09IGkgPyAwIDogLTFcIlxuICAgIFtpZF09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgW2luZGV4XT1cImlcIlxuICAgIFt0aGVtZV09XCJzdGVwLnRoZW1lXCJcbiAgICBbY29sb3JdPVwic3RlcC5jb2xvclwiXG4gICAgW2ljb25dPVwic3RlcC5pY29uXCJcbiAgICBbc3RhdGVdPVwiZ2V0SW5kaWNhdG9yVHlwZShpKVwiXG4gICAgW2xhYmVsXT1cInN0ZXAuc3RlcExhYmVsIHx8IHN0ZXAubGFiZWxcIlxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICBbYWN0aXZlXT1cInN0ZXAuY29tcGxldGVkIHx8IHNlbGVjdGVkSW5kZXggPT09IGkgfHwgIWxpbmVhclwiXG4gICAgW29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuICAgIFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCI+XG4gIDwvbm92by1zdGVwLWhlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwibm92by12ZXJ0aWNhbC1jb250ZW50LWNvbnRhaW5lclwiIFtjbGFzcy5ub3ZvLXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCJcbiAgICBbbmdDbGFzc109XCJnZXRJbmRpY2F0b3JUeXBlKGkpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5vdm8tdmVydGljYWwtc3RlcHBlci1jb250ZW50XCIgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgIFtAc3RlcFRyYW5zaXRpb25dPVwiX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpKVwiXG4gICAgICBbaWRdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXZlcnRpY2FsLWNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLmNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -13,8 +13,8 @@ import { NovoHorizontalStepper, NovoStep, NovoStepper, NovoVerticalStepper } fro
13
13
  import * as i0 from "@angular/core";
14
14
  export class NovoStepperModule {
15
15
  }
16
- NovoStepperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- NovoStepperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepperModule, declarations: [NovoHorizontalStepper,
16
+ NovoStepperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ NovoStepperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepperModule, declarations: [NovoHorizontalStepper,
18
18
  NovoVerticalStepper,
19
19
  NovoStep,
20
20
  NovoStepLabel,
@@ -31,8 +31,8 @@ NovoStepperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
31
31
  NovoStepStatus,
32
32
  NovoStepperNext,
33
33
  NovoStepperPrevious] });
34
- NovoStepperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepperModule, imports: [[CommonModule, PortalModule, NovoButtonModule, CdkStepperModule, NovoIconModule, A11yModule]] });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoStepperModule, decorators: [{
34
+ NovoStepperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepperModule, imports: [[CommonModule, PortalModule, NovoButtonModule, CdkStepperModule, NovoIconModule, A11yModule]] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoStepperModule, decorators: [{
36
36
  type: NgModule,
37
37
  args: [{
38
38
  imports: [CommonModule, PortalModule, NovoButtonModule, CdkStepperModule, NovoIconModule, A11yModule],
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
60
60
  ],
61
61
  }]
62
62
  }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQTBCeEcsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVgxQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLFFBQVE7UUFDUixhQUFhO1FBQ2IsV0FBVztRQUNYLGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLG1CQUFtQixhQXJCWCxZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLGFBRWxHLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsUUFBUTtRQUNSLGFBQWE7UUFDYixXQUFXO1FBQ1gsY0FBYztRQUNkLGNBQWM7UUFDZCxlQUFlO1FBQ2YsbUJBQW1COytHQWNWLGlCQUFpQixZQXhCbkIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7MkZBd0IxRixpQkFBaUI7a0JBekI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztvQkFDckcsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsUUFBUTt3QkFDUixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENka1N0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdm9CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vQnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBOb3ZvSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vSWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgTm92b1N0ZXBIZWFkZXIgfSBmcm9tICcuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvU3RlcExhYmVsIH0gZnJvbSAnLi9zdGVwLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvU3RlcFN0YXR1cyB9IGZyb20gJy4vc3RlcC1zdGF0dXMuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdm9TdGVwcGVyTmV4dCwgTm92b1N0ZXBwZXJQcmV2aW91cyB9IGZyb20gJy4vc3RlcHBlci1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsIE5vdm9TdGVwLCBOb3ZvU3RlcHBlciwgTm92b1ZlcnRpY2FsU3RlcHBlciB9IGZyb20gJy4vc3RlcHBlci5jb21wb25lbnQnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9ydGFsTW9kdWxlLCBOb3ZvQnV0dG9uTW9kdWxlLCBDZGtTdGVwcGVyTW9kdWxlLCBOb3ZvSWNvbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsXG4gICAgTm92b1ZlcnRpY2FsU3RlcHBlcixcbiAgICBOb3ZvU3RlcCxcbiAgICBOb3ZvU3RlcExhYmVsLFxuICAgIE5vdm9TdGVwcGVyLFxuICAgIE5vdm9TdGVwSGVhZGVyLFxuICAgIE5vdm9TdGVwU3RhdHVzLFxuICAgIE5vdm9TdGVwcGVyTmV4dCxcbiAgICBOb3ZvU3RlcHBlclByZXZpb3VzLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsXG4gICAgTm92b1ZlcnRpY2FsU3RlcHBlcixcbiAgICBOb3ZvU3RlcCxcbiAgICBOb3ZvU3RlcExhYmVsLFxuICAgIE5vdm9TdGVwcGVyLFxuICAgIE5vdm9TdGVwSGVhZGVyLFxuICAgIE5vdm9TdGVwU3RhdHVzLFxuICAgIE5vdm9TdGVwcGVyTmV4dCxcbiAgICBOb3ZvU3RlcHBlclByZXZpb3VzLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcHBlck1vZHVsZSB7fVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQTBCeEcsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQVgxQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLFFBQVE7UUFDUixhQUFhO1FBQ2IsV0FBVztRQUNYLGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLG1CQUFtQixhQXJCWCxZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLGFBRWxHLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsUUFBUTtRQUNSLGFBQWE7UUFDYixXQUFXO1FBQ1gsY0FBYztRQUNkLGNBQWM7UUFDZCxlQUFlO1FBQ2YsbUJBQW1CO2dIQWNWLGlCQUFpQixZQXhCbkIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7NEZBd0IxRixpQkFBaUI7a0JBekI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztvQkFDckcsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsUUFBUTt3QkFDUixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENka1N0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdm9CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vQnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBOb3ZvSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vSWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgTm92b1N0ZXBIZWFkZXIgfSBmcm9tICcuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvU3RlcExhYmVsIH0gZnJvbSAnLi9zdGVwLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvU3RlcFN0YXR1cyB9IGZyb20gJy4vc3RlcC1zdGF0dXMuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdm9TdGVwcGVyTmV4dCwgTm92b1N0ZXBwZXJQcmV2aW91cyB9IGZyb20gJy4vc3RlcHBlci1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsIE5vdm9TdGVwLCBOb3ZvU3RlcHBlciwgTm92b1ZlcnRpY2FsU3RlcHBlciB9IGZyb20gJy4vc3RlcHBlci5jb21wb25lbnQnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9ydGFsTW9kdWxlLCBOb3ZvQnV0dG9uTW9kdWxlLCBDZGtTdGVwcGVyTW9kdWxlLCBOb3ZvSWNvbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsXG4gICAgTm92b1ZlcnRpY2FsU3RlcHBlcixcbiAgICBOb3ZvU3RlcCxcbiAgICBOb3ZvU3RlcExhYmVsLFxuICAgIE5vdm9TdGVwcGVyLFxuICAgIE5vdm9TdGVwSGVhZGVyLFxuICAgIE5vdm9TdGVwU3RhdHVzLFxuICAgIE5vdm9TdGVwcGVyTmV4dCxcbiAgICBOb3ZvU3RlcHBlclByZXZpb3VzLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOb3ZvSG9yaXpvbnRhbFN0ZXBwZXIsXG4gICAgTm92b1ZlcnRpY2FsU3RlcHBlcixcbiAgICBOb3ZvU3RlcCxcbiAgICBOb3ZvU3RlcExhYmVsLFxuICAgIE5vdm9TdGVwcGVyLFxuICAgIE5vdm9TdGVwSGVhZGVyLFxuICAgIE5vdm9TdGVwU3RhdHVzLFxuICAgIE5vdm9TdGVwcGVyTmV4dCxcbiAgICBOb3ZvU3RlcHBlclByZXZpb3VzLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3RlcHBlck1vZHVsZSB7fVxuIl19
@@ -58,8 +58,8 @@ export class NovoSwitchElement {
58
58
  this.onModelTouched = fn;
59
59
  }
60
60
  }
61
- NovoSwitchElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchElement, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
- NovoSwitchElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NovoSwitchElement, selector: "novo-switch", inputs: { theme: "theme", icons: "icons", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { attributes: { "role": "checkbox" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.aria-checked": "value", "attr.aria-disabled": "disabled", "class": "theme", "class.novo-switch-disabled": "this.disabled" }, classAttribute: "novo-switch" }, providers: [SWITCH_VALUE_ACCESSOR], ngImport: i0, template: `
61
+ NovoSwitchElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchElement, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
+ NovoSwitchElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoSwitchElement, selector: "novo-switch", inputs: { theme: "theme", icons: "icons", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { attributes: { "role": "checkbox" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.aria-checked": "value", "attr.aria-disabled": "disabled", "class": "theme", "class.novo-switch-disabled": "this.disabled" }, classAttribute: "novo-switch" }, providers: [SWITCH_VALUE_ACCESSOR], ngImport: i0, template: `
63
63
  <div (click)="toggle($event)">
64
64
  <div class="novo-switch-container">
65
65
  <div class="novo-switch-bar"></div>
@@ -77,7 +77,7 @@ __decorate([
77
77
  BooleanInput(),
78
78
  __metadata("design:type", Boolean)
79
79
  ], NovoSwitchElement.prototype, "disabled", void 0);
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchElement, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchElement, decorators: [{
81
81
  type: Component,
82
82
  args: [{
83
83
  selector: 'novo-switch',
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
117
117
  }], onChange: [{
118
118
  type: Output
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3dpdGNoL1N3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTTtBQUNOLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBTyxNQUFNLGFBQWEsQ0FBQzs7OztBQUVoRCxzREFBc0Q7QUFDdEQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBNEJGLE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIxQyxVQUFLLEdBQVcsT0FBTyxDQUFDO1FBR3hCLFVBQUssR0FBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFLekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTakQsa0JBQWEsR0FBYSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBYSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFUyxDQUFDO0lBVDlDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBTUQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLEdBQUcsb0JBQWMsRUFBRTtZQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBWTtRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs4R0E3RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsd1pBeEJqQixDQUFDLHFCQUFxQixDQUFDLDBCQUN4Qjs7Ozs7Ozs7Ozs7OztHQWFUO0FBb0JEO0lBRkMsWUFBWSxFQUFFOzttREFFVzsyRkFWZixpQkFBaUI7a0JBMUI3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsYUFBYTt3QkFDcEIscUJBQXFCLEVBQUUsT0FBTzt3QkFDOUIsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsU0FBUyxFQUFFLE9BQU87cUJBQ25CO2lCQUNGO3dHQUdDLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBTU4sUUFBUTtzQkFIUCxLQUFLOztzQkFFTCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFJekMsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTkcyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLy8gVmFsdWUgYWNjZXNzb3IgZm9yIHRoZSBjb21wb25lbnQgKHN1cHBvcnRzIG5nTW9kZWwpXG5jb25zdCBTV0lUQ0hfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvU3dpdGNoRWxlbWVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1zd2l0Y2gnLFxuICBwcm92aWRlcnM6IFtTV0lUQ0hfVkFMVUVfQUNDRVNTT1JdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm92by1zd2l0Y2gtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC1iYXJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdm8tc3dpdGNoLXRodW1iLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC10aHVtYlwiPlxuICAgICAgICAgICAgPG5vdm8taWNvbiAqbmdJZj1cIiF2YWx1ZVwiIHNtYWxsZXI+e3sgaWNvbnNbMF0gfX08L25vdm8taWNvbj5cbiAgICAgICAgICAgIDxub3ZvLWljb24gKm5nSWY9XCJ2YWx1ZVwiIHNtYWxsZXI+e3sgaWNvbnNbMV0gfX08L25vdm8taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC1sYWJlbFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdjaGVja2JveCcsXG4gICAgY2xhc3M6ICdub3ZvLXN3aXRjaCcsXG4gICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAndmFsdWUnLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gICAgJ1tjbGFzc10nOiAndGhlbWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3dpdGNoRWxlbWVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgdGhlbWU6IHN0cmluZyA9ICdvY2Vhbic7XG5cbiAgQElucHV0KClcbiAgaWNvbnM6IFtzdHJpbmcsIHN0cmluZ10gPSBbJ3gnLCAnY2hlY2snXTtcblxuICBASW5wdXQoKVxuICBAQm9vbGVhbklucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ub3ZvLXN3aXRjaC1kaXNhYmxlZCcpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF92YWx1ZTogYm9vbGVhbjtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cbiAgb25Nb2RlbENoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7fTtcbiAgb25Nb2RlbFRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IEtleS5TcGFjZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShtb2RlbDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBtb2RlbDtcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvc3dpdGNoL1N3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTTtBQUNOLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBTyxNQUFNLGFBQWEsQ0FBQzs7OztBQUVoRCxzREFBc0Q7QUFDdEQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBNEJGLE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIxQyxVQUFLLEdBQVcsT0FBTyxDQUFDO1FBR3hCLFVBQUssR0FBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFLekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTakQsa0JBQWEsR0FBYSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBYSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFUyxDQUFDO0lBVDlDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBTUQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLEdBQUcsb0JBQWMsRUFBRTtZQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBWTtRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsrR0E3RFUsaUJBQWlCO21HQUFqQixpQkFBaUIsd1pBeEJqQixDQUFDLHFCQUFxQixDQUFDLDBCQUN4Qjs7Ozs7Ozs7Ozs7OztHQWFUO0FBb0JEO0lBRkMsWUFBWSxFQUFFOzttREFFVzs0RkFWZixpQkFBaUI7a0JBMUI3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsYUFBYTt3QkFDcEIscUJBQXFCLEVBQUUsT0FBTzt3QkFDOUIsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsU0FBUyxFQUFFLE9BQU87cUJBQ25CO2lCQUNGO3dHQUdDLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBTU4sUUFBUTtzQkFIUCxLQUFLOztzQkFFTCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFJekMsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTkcyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLy8gVmFsdWUgYWNjZXNzb3IgZm9yIHRoZSBjb21wb25lbnQgKHN1cHBvcnRzIG5nTW9kZWwpXG5jb25zdCBTV0lUQ0hfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvU3dpdGNoRWxlbWVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1zd2l0Y2gnLFxuICBwcm92aWRlcnM6IFtTV0lUQ0hfVkFMVUVfQUNDRVNTT1JdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm92by1zd2l0Y2gtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC1iYXJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdm8tc3dpdGNoLXRodW1iLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC10aHVtYlwiPlxuICAgICAgICAgICAgPG5vdm8taWNvbiAqbmdJZj1cIiF2YWx1ZVwiIHNtYWxsZXI+e3sgaWNvbnNbMF0gfX08L25vdm8taWNvbj5cbiAgICAgICAgICAgIDxub3ZvLWljb24gKm5nSWY9XCJ2YWx1ZVwiIHNtYWxsZXI+e3sgaWNvbnNbMV0gfX08L25vdm8taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3ZvLXN3aXRjaC1sYWJlbFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdjaGVja2JveCcsXG4gICAgY2xhc3M6ICdub3ZvLXN3aXRjaCcsXG4gICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAndmFsdWUnLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gICAgJ1tjbGFzc10nOiAndGhlbWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3dpdGNoRWxlbWVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgdGhlbWU6IHN0cmluZyA9ICdvY2Vhbic7XG5cbiAgQElucHV0KClcbiAgaWNvbnM6IFtzdHJpbmcsIHN0cmluZ10gPSBbJ3gnLCAnY2hlY2snXTtcblxuICBASW5wdXQoKVxuICBAQm9vbGVhbklucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ub3ZvLXN3aXRjaC1kaXNhYmxlZCcpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF92YWx1ZTogYm9vbGVhbjtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cbiAgb25Nb2RlbENoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7fTtcbiAgb25Nb2RlbFRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IEtleS5TcGFjZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShtb2RlbDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBtb2RlbDtcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cbn1cbiJdfQ==
@@ -6,10 +6,10 @@ import { NovoSwitchElement } from './Switch';
6
6
  import * as i0 from "@angular/core";
7
7
  export class NovoSwitchModule {
8
8
  }
9
- NovoSwitchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- NovoSwitchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchModule, declarations: [NovoSwitchElement], imports: [CommonModule, FormsModule, NovoIconModule], exports: [NovoSwitchElement] });
11
- NovoSwitchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchModule, imports: [[CommonModule, FormsModule, NovoIconModule]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoSwitchModule, decorators: [{
9
+ NovoSwitchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NovoSwitchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchModule, declarations: [NovoSwitchElement], imports: [CommonModule, FormsModule, NovoIconModule], exports: [NovoSwitchElement] });
11
+ NovoSwitchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchModule, imports: [[CommonModule, FormsModule, NovoIconModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoSwitchModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [CommonModule, FormsModule, NovoIconModule],
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
17
17
  exports: [NovoSwitchElement],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3N3aXRjaC9Td2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQUhaLGlCQUFpQixhQUR0QixZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsYUFFekMsaUJBQWlCOzhHQUVoQixnQkFBZ0IsWUFKbEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQzsyRkFJekMsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO29CQUNwRCxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5vdm9JY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBOb3ZvU3dpdGNoRWxlbWVudCB9IGZyb20gJy4vU3dpdGNoJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE5vdm9JY29uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbTm92b1N3aXRjaEVsZW1lbnRdLFxuICBleHBvcnRzOiBbTm92b1N3aXRjaEVsZW1lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3dpdGNoTW9kdWxlIHt9XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL3N3aXRjaC9Td2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUhaLGlCQUFpQixhQUR0QixZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsYUFFekMsaUJBQWlCOytHQUVoQixnQkFBZ0IsWUFKbEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQzs0RkFJekMsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO29CQUNwRCxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5vdm9JY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBOb3ZvU3dpdGNoRWxlbWVudCB9IGZyb20gJy4vU3dpdGNoJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE5vdm9JY29uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbTm92b1N3aXRjaEVsZW1lbnRdLFxuICBleHBvcnRzOiBbTm92b1N3aXRjaEVsZW1lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvU3dpdGNoTW9kdWxlIHt9XG4iXX0=
@@ -254,11 +254,11 @@ export class NovoTabbedGroupPickerElement {
254
254
  this.filterText.next(event.target.value);
255
255
  }
256
256
  }
257
- NovoTabbedGroupPickerElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoTabbedGroupPickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
258
- NovoTabbedGroupPickerElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NovoTabbedGroupPickerElement, selector: "novo-tabbed-group-picker", inputs: { buttonConfig: "buttonConfig", tabs: "tabs", quickSelectConfig: "quickSelectConfig" }, outputs: { selectionChange: "selectionChange" }, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], viewQueries: [{ propertyName: "scrollableInstance", first: true, predicate: ["tabbedGroupPickerVirtualScrollViewport"], descendants: true }], ngImport: i0, template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\">\n <input type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <!-- <div class=\"quick-select-label\">{{ quickSelectConfig.label }}</div> -->\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [selected]=\"quickSelect.selected\"\n (click)=\"quickSelect.selected = !quickSelect.selected; onItemToggled(quickSelect)\"\n inert>\n {{quickSelect.label}}\n <!-- <novo-checkbox\n [label]=\"quickSelect.label\"\n [name]=\"'selected'\"\n [(ngModel)]=\"quickSelect.selected\"\n (ngModelChange)=\"onItemToggled(quickSelect)\"></novo-checkbox> -->\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [selected]=\"item.selected\"\n (click)=\"item.selected = !item.selected; onItemToggled(item)\"\n inert>\n {{item[displayTab.labelField]}}\n\n <!-- <novo-checkbox\n [label]=\"item[displayTab.labelField]\"\n [name]=\"'selected'\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (ngModelChange)=\"onItemToggled(item)\">\n </novo-checkbox> -->\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n</novo-dropdown>", components: [{ type: i2.NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple"], outputs: ["toggled"] }, { type: i3.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "disabled"] }, { type: i4.NovoNavElement, selector: "novo-nav", inputs: ["theme", "direction", "outlet", "router", "condensed", "selectedIndex"], outputs: ["selectedIndexChange"] }, { type: i4.NovoTabElement, selector: "novo-tab", inputs: ["active", "color", "disabled"], outputs: ["activeChange"] }, { type: i5.NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { type: i6.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "inert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], pipes: { "async": i8.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NovoTabbedGroupPickerElement, decorators: [{
257
+ NovoTabbedGroupPickerElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoTabbedGroupPickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
258
+ NovoTabbedGroupPickerElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoTabbedGroupPickerElement, selector: "novo-tabbed-group-picker", inputs: { buttonConfig: "buttonConfig", tabs: "tabs", quickSelectConfig: "quickSelectConfig" }, outputs: { selectionChange: "selectionChange" }, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], viewQueries: [{ propertyName: "scrollableInstance", first: true, predicate: ["tabbedGroupPickerVirtualScrollViewport"], descendants: true }], ngImport: i0, template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\">\n <input type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <!-- <div class=\"quick-select-label\">{{ quickSelectConfig.label }}</div> -->\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [selected]=\"quickSelect.selected\"\n (click)=\"quickSelect.selected = !quickSelect.selected; onItemToggled(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n <!-- <novo-checkbox\n [label]=\"quickSelect.label\"\n [name]=\"'selected'\"\n [(ngModel)]=\"quickSelect.selected\"\n (ngModelChange)=\"onItemToggled(quickSelect)\"></novo-checkbox> -->\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [selected]=\"item.selected\"\n (click)=\"item.selected = !item.selected; onItemToggled(item)\"\n novoInert>\n {{item[displayTab.labelField]}}\n\n <!-- <novo-checkbox\n [label]=\"item[displayTab.labelField]\"\n [name]=\"'selected'\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (ngModelChange)=\"onItemToggled(item)\">\n </novo-checkbox> -->\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n</novo-dropdown>", components: [{ type: i2.NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple"], outputs: ["toggled"] }, { type: i3.NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "disabled"] }, { type: i4.NovoNavElement, selector: "novo-nav", inputs: ["theme", "direction", "outlet", "router", "condensed", "selectedIndex"], outputs: ["selectedIndexChange"] }, { type: i4.NovoTabElement, selector: "novo-tab", inputs: ["active", "color", "disabled"], outputs: ["activeChange"] }, { type: i5.NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { type: i6.NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], pipes: { "async": i8.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoTabbedGroupPickerElement, decorators: [{
260
260
  type: Component,
261
- args: [{ selector: 'novo-tabbed-group-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\">\n <input type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <!-- <div class=\"quick-select-label\">{{ quickSelectConfig.label }}</div> -->\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [selected]=\"quickSelect.selected\"\n (click)=\"quickSelect.selected = !quickSelect.selected; onItemToggled(quickSelect)\"\n inert>\n {{quickSelect.label}}\n <!-- <novo-checkbox\n [label]=\"quickSelect.label\"\n [name]=\"'selected'\"\n [(ngModel)]=\"quickSelect.selected\"\n (ngModelChange)=\"onItemToggled(quickSelect)\"></novo-checkbox> -->\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [selected]=\"item.selected\"\n (click)=\"item.selected = !item.selected; onItemToggled(item)\"\n inert>\n {{item[displayTab.labelField]}}\n\n <!-- <novo-checkbox\n [label]=\"item[displayTab.labelField]\"\n [name]=\"'selected'\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (ngModelChange)=\"onItemToggled(item)\">\n </novo-checkbox> -->\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n</novo-dropdown>" }]
261
+ args: [{ selector: 'novo-tabbed-group-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NOVO_OPTION_PARENT_COMPONENT, useExisting: NovoTabbedGroupPickerElement }], template: "<novo-dropdown (toggled)=\"onDropdownToggle($event)\" multiple>\n <novo-button\n class=\"tabbed-group-picker-button\"\n [theme]=\"buttonConfig.theme\"\n [side]=\"buttonConfig.side\"\n [icon]=\"buttonConfig.icon\"\n [loading]=\"loading\">\n <div class=\"tabbed-group-picker-button-label\">{{ buttonConfig.label }}</div>\n </novo-button>\n <div class=\"tabbed-group-picker-search\" data-automation-id=\"tabbed-group-picker-search\">\n <input type=\"text\" [placeholder]=\"labelService.search\" [value]=\"filterText | async\" (input)=\"onFilter($event)\" />\n <i class=\"bhi-search\" *ngIf=\"!(filterText | async)\"></i>\n <i class=\"bhi-times\" *ngIf=\"(filterText | async)\" (click)=\"onClearFilter($event)\"></i>\n </div>\n <div class=\"tabbed-group-picker-column-container\">\n <div class=\"tabbed-group-picker-column left\">\n <novo-nav theme=\"white\" direction=\"vertical\">\n <novo-tab *ngFor=\"let tab of displayTabs\" [attr.data-automation-id]=\"tab.typeName\"\n (activeChange)=\"changeTab(tab)\">\n <span>{{ tab.typeLabel }} ({{ tab.data.length }})</span><i class=\"bhi-next\"></i>\n </novo-tab>\n </novo-nav>\n <novo-button *ngIf=\"showClearAll\" class=\"clear-all-button\" theme=\"dialogue\" icon=\"times\" side=\"right\"\n color=\"grapefruit\" (click)=\"deselectEverything($event)\">{{ labelService.clear }}</novo-button>\n </div>\n <div class=\"tabbed-group-picker-column right\">\n <div class=\"quick-select\" *ngIf=\"quickSelectConfig && !(filterText | async)\">\n <!-- <div class=\"quick-select-label\">{{ quickSelectConfig.label }}</div> -->\n <novo-optgroup class=\"quick-select-list\" [label]=\"quickSelectConfig.label\">\n <novo-option\n class=\"quick-select-item\"\n *ngFor=\"let quickSelect of quickSelectConfig.items\"\n [attr.data-automation-id]=\"quickSelect.label\"\n [selected]=\"quickSelect.selected\"\n (click)=\"quickSelect.selected = !quickSelect.selected; onItemToggled(quickSelect)\"\n novoInert>\n {{quickSelect.label}}\n <!-- <novo-checkbox\n [label]=\"quickSelect.label\"\n [name]=\"'selected'\"\n [(ngModel)]=\"quickSelect.selected\"\n (ngModelChange)=\"onItemToggled(quickSelect)\"></novo-checkbox> -->\n </novo-option>\n </novo-optgroup>\n </div>\n <novo-optgroup *ngIf=\"displayTab.data.length\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize\"\n [maxBufferPx]=\"maxBufferPx\"\n [minBufferPx]=\"minBufferPx\"\n #tabbedGroupPickerVirtualScrollViewport>\n <novo-option\n *cdkVirtualFor=\"let item of displayTab.data\"\n [attr.data-automation-id]=\"item[displayTab.labelField]\"\n [selected]=\"item.selected\"\n (click)=\"item.selected = !item.selected; onItemToggled(item)\"\n novoInert>\n {{item[displayTab.labelField]}}\n\n <!-- <novo-checkbox\n [label]=\"item[displayTab.labelField]\"\n [name]=\"'selected'\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (ngModelChange)=\"onItemToggled(item)\">\n </novo-checkbox> -->\n </novo-option>\n </cdk-virtual-scroll-viewport>\n </novo-optgroup>\n <div class=\"tabbed-group-picker-empty-item\" *ngIf=\"!displayTab.data.length && (filterText | async)\">\n <i class=\"{{ displayTab.icon || 'bhi-search' }}\"></i>\n <div class=\"empty-item-main-message\">{{ labelService.tabbedGroupPickerEmpty }}</div>\n <div class=\"empty-item-sub-message\">{{ labelService.tabbedGroupClearSuggestion(displayTab.typeLabel) }}\n </div>\n </div>\n </div>\n </div>\n</novo-dropdown>" }]
262
262
  }], ctorParameters: function () { return [{ type: i1.NovoLabelService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { scrollableInstance: [{
263
263
  type: ViewChild,
264
264
  args: ['tabbedGroupPickerVirtualScrollViewport']
@@ -271,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
271
271
  }], selectionChange: [{
272
272
  type: Output
273
273
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFiYmVkR3JvdXBQaWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy90YWJiZWQtZ3JvdXAtcGlja2VyL1RhYmJlZEdyb3VwUGlja2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvdGFiYmVkLWdyb3VwLXBpY2tlci9UYWJiZWRHcm91cFBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztBQWlEekQsTUFBTSxPQUFPLDRCQUE0QjtJQXlCdkMsWUFBbUIsWUFBOEIsRUFBVSxHQUFzQjtRQUE5RCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJCakYsYUFBUSxHQUFHLElBQUksQ0FBQztRQU1OLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHdkUsb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFFNUIsZUFBVSxHQUE0QixJQUFJLGVBQWUs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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOzt5SEF6UlUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsb01BRjVCLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUMsd0tDL0RuRyx5MkhBNkVnQjsyRkRaSCw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUVuQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxDQUFDO3VJQUl6RixrQkFBa0I7c0JBRHpCLFNBQVM7dUJBQUMsd0NBQXdDO2dCQUsxQyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdm9MYWJlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3ZvLWxhYmVsLXNlcnZpY2UnO1xuaW1wb3J0IHsgYmluYXJ5U2VhcmNoLCBIZWxwZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvSGVscGVycyc7XG5pbXBvcnQgeyBOT1ZPX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UIH0gZnJvbSAnLi4vY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJUYWIgPSB7XG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIHR5cGVMYWJlbDogc3RyaW5nO1xuICB2YWx1ZUZpZWxkOiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ6IHN0cmluZztcbiAgc2Nyb2xsT2Zmc2V0PzogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xufSAmIChQYXJlbnRUYWIgfCBDaGlsZFRhYik7XG5cbmV4cG9ydCB0eXBlIFBhcmVudFRhYiA9IHtcbiAgY2hpbGRUeXBlTmFtZTogc3RyaW5nO1xuICBkYXRhOiBBcnJheTxQYXJlbnRPcHRpb24+O1xufTtcblxudHlwZSBQYXJlbnRPcHRpb24gPSB7XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBBcnJheTx7IHNlbGVjdGVkPzogYm9vbGVhbiB9Pjtcbn0gJiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG5leHBvcnQgdHlwZSBDaGlsZFRhYiA9IHtcbiAgZGF0YTogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW4gfSAmIHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJRdWlja1NlbGVjdCA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICBjaGlsZFR5cGVOYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbj86ICgoeyBzZWxlY3RlZD86IGJvb2xlYW4gfSAmIHsgW2tleTogc3RyaW5nXTogYW55IH0pIHwgbnVtYmVyKVtdO1xuICBhbGw/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUXVpY2tTZWxlY3RDb25maWcgPSB7IGxhYmVsOiBzdHJpbmc7IGl0ZW1zOiBUYWJiZWRHcm91cFBpY2tlclF1aWNrU2VsZWN0W10gfTtcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJCdXR0b25Db25maWcgPSB7XG4gIHRoZW1lOiBzdHJpbmc7XG4gIHNpZGU6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by10YWJiZWQtZ3JvdXAtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL1RhYmJlZEdyb3VwUGlja2VyLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOT1ZPX09QVElPTl9QQVJFTlRfQ09NUE9ORU5ULCB1c2VFeGlzdGluZzogTm92b1RhYmJlZEdyb3VwUGlja2VyRWxlbWVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b1RhYmJlZEdyb3VwUGlja2VyRWxlbWVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgndGFiYmVkR3JvdXBQaWNrZXJWaXJ0dWFsU2Nyb2xsVmlld3BvcnQnKVxuICBwcml2YXRlIHNjcm9sbGFibGVJbnN0YW5jZTogQ2RrU2Nyb2xsYWJsZTtcblxuICBtdWx0aXBsZSA9IHRydWU7XG5cbiAgQElucHV0KCkgYnV0dG9uQ29uZmlnOiBUYWJiZWRHcm91cFBpY2tlckJ1dHRvbkNvbmZpZztcbiAgQElucHV0KCkgdGFiczogVGFiYmVkR3JvdXBQaWNrZXJUYWJbXTtcbiAgQElucHV0KCkgcXVpY2tTZWxlY3RDb25maWc6IFF1aWNrU2VsZWN0Q29uZmlnO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZGlzcGxheVRhYnM6IFRhYmJlZEdyb3VwUGlja2VyVGFiW107XG4gIGRpc3BsYXlUYWJJbmRleDogbnVtYmVyID0gMDtcblxuICBmaWx0ZXJUZXh0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBmaWx0ZXJUZXh0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgbG9hZGluZyA9IHRydWU7XG4gIHNob3dDbGVhckFsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIEluaXRpYWwgaGVpZ2h0IGJhc2VkIG9uIDEzIHB4IGZvbnQgcmVuZGVyZWQgaW4gY2hyb21lLiBBY3R1YWwgaGVpZ2h0IHJldHJpZXZlZCBvbkRyb3Bkb3duVG9nZ2xlZC5cbiAgc2Nyb2xsVmlld3BvcnRIZWlnaHQ6IG51bWJlciA9IDM1MTtcbiAgdmlydHVhbFNjcm9sbEl0ZW1TaXplOiBudW1iZXIgPSAzOTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbGFiZWxTZXJ2aWNlOiBOb3ZvTGFiZWxTZXJ2aWNlLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGRpc3BsYXlUYWIoKTogVGFiYmVkR3JvdXBQaWNrZXJUYWIge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlUYWJzW3RoaXMuZGlzcGxheVRhYkluZGV4XTtcbiAgfVxuICBzZXQgZGlzcGxheVRhYih0YWI6IFRhYmJlZEdyb3VwUGlja2VyVGFiKSB7XG4gICAgdGhpcy5kaXNwbGF5VGFiSW5kZXggPSB0aGlzLnRhYnMubWFwKCh7IHR5cGVOYW1lIH0pID0+IHR5cGVOYW1lKS5pbmRleE9mKHRhYi50eXBlTmFtZSk7XG4gIH1cblxuICBnZXQgbWluQnVmZmVyUHgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsVmlld3BvcnRIZWlnaHQ7IC8vIHJlbmRlciBhdCBsZWFzdCAyeCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHZpc2libGUgKHZpZXdwb3J0ICsgbWluIGJ1ZmZlcilcbiAgfVxuXG4gIGdldCBtYXhCdWZmZXJQeCgpIHtcbiAgICByZXR1cm4gMiAqIHRoaXMuc2Nyb2xsVmlld3BvcnRIZWlnaHQ7IC8vIHJlbmRlciBhdCBtb3N0IDN4IHRoZSBudW1iZXIgb2YgaXRlbXMgdmlzaWJsZSAodmlld3BvcnQgKyBtYXggYnVmZmVyKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlEYXRhKCk7XG4gICAgdGhpcy5jcmVhdGVDaGlsZHJlblJlZmVyZW5jZXMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVEZXNjZW5kYW50U2VsZWN0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVQYXJlbnRzQW5kUXVpY2tTZWxlY3QoKTtcbiAgICB0aGlzLnVwZGF0ZUNsZWFyQWxsKCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbHRlclRleHRTdWJzY3JpcHRpb24gPSB0aGlzLmZpbHRlclRleHQucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHRoaXMuZmlsdGVyLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyVGV4dFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJUZXh0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVGFiKHRhYjogVGFiYmVkR3JvdXBQaWNrZXJUYWIpIHtcbiAgICB0aGlzLmRpc3BsYXlUYWIgPSB0YWI7XG4gICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnNjcm9sbGFibGVJbnN0YW5jZS5zY3JvbGxUbyh7IGJlaGF2aW9yOiAnYXV0bycsIHRvcDogMCB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRQaXhlbEhlaWdodChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBOdW1iZXIoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuaGVpZ2h0Lm1hdGNoKC8oXFxkKyhcXC5cXGQrKT8pcHgkLylbMV0pO1xuICB9XG5cbiAgc2V0dXBEaXNwbGF5RGF0YSgpOiB2b2lkIHtcbiAgICAvLyBzaGFsbG93IGNvcHkgaGVyZSBzbyB0aGF0IHJlYXNzaWduaW5nIGRpc3BsYXlUYWJzW2ldLmRhdGEgZG9lc24ndCBtdXRhdGUgdGFic1tpXS5kYXRhXG4gICAgLy8gYnV0IGJvdGggZGF0YSB2YWx1ZXMgcG9pbnQgdG8gdGhlIHNhbWUgaXRlbXNcbiAgICB0aGlzLmRpc3BsYXlUYWJzID0gdGhpcy50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIgfSkpO1xuICAgIHRoaXMuZGlzcGxheVRhYiA9IHRoaXMudGFic1swXTtcbiAgfVxuXG4gIC8vIFJlcGxhY2UgZWFjaCBwYXJlbnQncyBjaGlsZCBvYmplY3Qgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgY2hpbGQgdG8gYXZvaWRcbiAgLy8gYSBjaGlsZCBsb29rdXAgZm9yIHNlbGVjdGVkIHN0YXR1czsgbGlua2luZyByZWZlcmVuY2VzIGFsbG93cyBNIHggTlxuICAvLyB0aW1lIGNvbXBsZXhpdHkgaW5zdGVhZCBvZiBNIHggTl4yXG4gIGNyZWF0ZUNoaWxkcmVuUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAvLyB3b3VsZCByYXRoZXIgZmlsdGVyIGJ1dCBUeXBlU2NyaXB0IHN0aWxsIHdhbnRzIGEgdHlwZSBuYXJyb3dpbmcgaGVyZVxuICAgICAgaWYgKCdjaGlsZFR5cGVOYW1lJyBpbiB0YWIpIHtcbiAgICAgICAgY29uc3QgY2hpbGRUYWIgPSB0aGlzLnRhYnMuZmluZCgoeyB0eXBlTmFtZSB9KSA9PiB0eXBlTmFtZSA9PT0gdGFiLmNoaWxkVHlwZU5hbWUpO1xuICAgICAgICBjb25zdCBjb21wYXJlRnVuY3Rpb24gPSB0aGlzLm1ha2VDb21wYXJlRnVuY3Rpb24oY2hpbGRUYWIudmFsdWVGaWVsZCk7XG4gICAgICAgIGNvbnN0IHdhcm5GdW5jdGlvbiA9IHRoaXMubWFrZVdhcm5pbmdGdW5jdGlvbih0YWIudHlwZU5hbWUsIGNoaWxkVGFiLnR5cGVOYW1lLCBjaGlsZFRhYi52YWx1ZUZpZWxkKTtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2hpbGRyZW4gPSBjaGlsZFRhYi5kYXRhLnNsaWNlKCkuc29ydChjb21wYXJlRnVuY3Rpb24pO1xuXG4gICAgICAgIHRhYi5kYXRhXG4gICAgICAgICAgLmZpbHRlcigoeyBjaGlsZHJlbiB9KSA9PiBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpXG4gICAgICAgICAgLmZvckVhY2goKHBhcmVudDogeyBjaGlsZHJlbj86IGFueVtdIH0pID0+XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VDaGlsZHJlbldpdGhSZWZlcmVuY2VzKHBhcmVudCBhcyBQYXJlbnRPcHRpb24sIHNvcnRlZENoaWxkcmVuLCBjb21wYXJlRnVuY3Rpb24sIHdhcm5GdW5jdGlvbiksXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5xdWlja1NlbGVjdENvbmZpZykge1xuICAgICAgdGhpcy5xdWlja1NlbGVjdENvbmZpZy5pdGVtc1xuICAgICAgICAuZmlsdGVyKChwYXJlbnQpID0+ICdhbGwnIGluIHBhcmVudClcbiAgICAgICAgLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IHRoaXMudGFicy5maW5kKCh7IHR5cGVOYW1lIH0pID0+IHBhcmVudC5jaGlsZFR5cGVOYW1lID09PSB0eXBlTmFtZSkuZGF0YTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMucXVpY2tTZWxlY3RDb25maWcuaXRlbXNcbiAgICAgICAgLmZpbHRlcigocGFyZW50KSA9PiAhKCdhbGwnIGluIHBhcmVudCkpXG4gICAgICAgIC5mb3JFYWNoKChwYXJlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlsZFRhYiA9IHRoaXMudGFicy5maW5kKCh7IHR5cGVOYW1lIH0pID0+IHR5cGVOYW1lID09PSBwYXJlbnQuY2hpbGRUeXBlTmFtZSk7XG4gICAgICAgICAgY29uc3QgY29tcGFyZUZ1bmN0aW9uID0gdGhpcy5tYWtlQ29tcGFyZUZ1bmN0aW9uKGNoaWxkVGFiLnZhbHVlRmllbGQpO1xuICAgICAgICAgIGNvbnN0IHdhcm5GdW5jdGlvbiA9IHRoaXMubWFrZVdhcm5pbmdGdW5jdGlvbihwYXJlbnQubGFiZWwsIGNoaWxkVGFiLnR5cGVOYW1lLCBjaGlsZFRhYi52YWx1ZUZpZWxkKTtcbiAgICAgICAgICBjb25zdCBzb3J0ZWRDaGlsZHJlbiA9IGNoaWxkVGFiLmRhdGEuc2xpY2UoKS5zb3J0KGNvbXBhcmVGdW5jdGlvbik7XG5cbiAgICAgICAgICB0aGlzLnJlcGxhY2VDaGlsZHJlbldpdGhSZWZlcmVuY2VzKHBhcmVudCBhcyBQYXJlbnRPcHRpb24sIHNvcnRlZENoaWxkcmVuLCBjb21wYXJlRnVuY3Rpb24sIHdhcm5GdW5jdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG1ha2VDb21wYXJlRnVuY3Rpb248VD4oa2V5OiBzdHJpbmcpOiAoYTogVCB8IHsgW2tleTogc3RyaW5nXTogVCB9LCBiOiBUIHwgeyBba2V5OiBzdHJpbmddOiBUIH0pID0+IDEgfCAtMSB8IDAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoYTogVCB8IHsgW2tleTogc3RyaW5nXTogVCB9LCBiOiBUIHwgeyBba2V5OiBzdHJpbmddOiBUIH0pID0+IHtcbiAgICAgIGNvbnN0IGFWYWx1ZTogVCA9IChhICYmIGFba2V5XSkgfHwgYTtcbiAgICAgIGNvbnN0IGJWYWx1ZTogVCA9IChiICYmIGJba2V5XSkgfHwgYjtcblxuICAgICAgaWYgKGFWYWx1ZSA8IGJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKGFWYWx1ZSA+IGJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSBpZiAoYVZhbHVlID09PSBiVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXBsYWNlQ2hpbGRyZW5XaXRoUmVmZXJlbmNlcyhcbiAgICBwYXJlbnQ6IHsgY2hpbGRyZW46IGFueVtdIH0sXG4gICAgc29ydGVkRGF0YTogQ2hpbGRUYWJbJ2RhdGEnXSxcbiAgICBjb21wYXJlRnVuY3Rpb246IChhLCBiKSA9PiAxIHwgLTEgfCAwLFxuICAgIHdhcm5GdW5jdGlvbjogKGNoaWxkKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBwYXJlbnQuY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW5cbiAgICAgIC5tYXAoKGNoaWxkKSA9PiBiaW5hcnlTZWFyY2goY2hpbGQsIHNvcnRlZERhdGEsIGNvbXBhcmVGdW5jdGlvbikgfHwgd2FybkZ1bmN0aW9uKGNoaWxkKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7IC8vIHNpbmNlIG1hcCBjYW4gcmV0dXJuIHVuZGVmaW5lZCwgcmVtb3ZlIHVuZGVmaW5lZCBlbGVtZW50c1xuICB9XG5cbiAgbWFrZVdhcm5pbmdGdW5jdGlvbihwYXJlbnRMYWJlbDogc3RyaW5nLCBjaGlsZExhYmVsOiBzdHJpbmcsIGNoaWxkVmFsdWVGaWVsZCk6IChjaGlsZCkgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRWYWx1ZSA9IGNoaWxkW2NoaWxkVmFsdWVGaWVsZF0gfHwgY2hpbGQ7XG4gICAgICBjb25zb2xlLndhcm4oYE5vICR7Y2hpbGRMYWJlbH0gZm91bmQgd2l0aCB2YWx1ZSAke2NoaWxkVmFsdWV9IGZvciBwYXJlbnQgJHtwYXJlbnRMYWJlbH1gKTtcbiAgICB9O1xuICB9XG5cbiAgb25Ecm9wZG93blRvZ2dsZShldmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydEhlaWdodCA9IHRoaXMuZ2V0UGl4ZWxIZWlnaHQodGhpcy5zY3JvbGxhYmxlSW5zdGFuY2UuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemUgPSB0aGlzLmdldFBpeGVsSGVpZ2h0KFxuICAgICAgICB0aGlzLnNjcm9sbGFibGVJbnN0YW5jZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdub3ZvLWxpc3QtaXRlbScpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1Ub2dnbGVkKGl0ZW06IHsgc2VsZWN0ZWQ/OiBib29sZWFuOyBjaGlsZHJlbj86IEFycmF5PHsgc2VsZWN0ZWQ/OiBib29sZWFuOyBjaGlsZHJlbj86IEFycmF5PHsgc2VsZWN0ZWQ/OiBib29sZWFuIH0+IH0+IH0pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgdGhpcy51cGRhdGVEZXNjZW5kYW50cyhpdGVtLnNlbGVjdGVkLCBpdGVtLmNoaWxkcmVuKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQYXJlbnRzQW5kUXVpY2tTZWxlY3QoKTtcbiAgICB0aGlzLnVwZGF0ZUNsZWFyQWxsKGl0ZW0uc2VsZWN0ZWQpO1xuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpbml0aWFsaXplRGVzY2VuZGFudFNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAoJ2NoaWxkVHlwZU5hbWUnIGluIHRhYiAmJiB0YWIuZGF0YSAmJiB0YWIuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGFiLmRhdGEuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmVudC5zZWxlY3RlZCAmJiBwYXJlbnQuY2hpbGRyZW4gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEZXNjZW5kYW50cyhwYXJlbnRJc1NlbGVjdGVkOiBib29sZWFuLCBjaGlsZHJlbjogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW47IGNoaWxkcmVuPzogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW4gfT4gfT4pOiB2b2lkIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBwYXJlbnRJc1NlbGVjdGVkID8gKGl0ZW0uc2VsZWN0ZWQgPSB0cnVlKSA6IGRlbGV0ZSBpdGVtLnNlbGVjdGVkO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgdGhpcy51cGRhdGVEZXNjZW5kYW50cyhpdGVtLnNlbGVjdGVkLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNsZWFyQWxsKGl0ZW1XYXNKdXN0U2VsZWN0ZWQ/OiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93Q2xlYXJBbGwgPSBpdGVtV2FzSnVzdFNlbGVjdGVkXG4gICAgICA/IHRydWVcbiAgICAgIDogdGhpcy50YWJzLnNvbWUoKHRhYikgPT4ge1xuICAgICAgICAgIGlmICgodGFiIGFzIFBhcmVudFRhYikuY2hpbGRUeXBlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYi5kYXRhLnNvbWUoKHsgc2VsZWN0ZWQsIGluZGV0ZXJtaW5hdGUgfSkgPT4gc2VsZWN0ZWQgfHwgaW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0YWIuZGF0YS5zb21lKCh7IHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUGFyZW50c0FuZFF1aWNrU2VsZWN0KCk6IHZvaWQge1xuICAgIC8vIG11dGF0ZSBoZXJlIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgdGhlIG9iamVjdHMgaW4gZGlzcGxheVRhYnNcbiAgICB0aGlzLnRhYnNcbiAgICAgIC5maWx0ZXIoKHRhYikgPT4gJ2NoaWxkVHlwZU5hbWUnIGluIHRhYiAmJiAhIXRhYi5jaGlsZFR5cGVOYW1lKVxuICAgICAgLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnRzID0gdGFiLmRhdGEuZmlsdGVyKCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW4/OiBhbnlbXSB9KSA9PiBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpO1xuXG4gICAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiB7IGNoaWxkcmVuPzogeyBzZWxlY3RlZD86IGJvb2xlYW4gfVtdIH0pID0+IHtcbiAgICAgICAgICBbJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXS5mb3JFYWNoKChzZWxlY3RlZFN0YXRlT3B0aW9uKSA9PiBkZWxldGUgcGFyZW50W3NlbGVjdGVkU3RhdGVPcHRpb25dKTtcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPSB0aGlzLmdldFNlbGVjdGVkU3RhdGUocGFyZW50LmNoaWxkcmVuKTtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRTdGF0ZSkge1xuICAgICAgICAgICAgcGFyZW50W3NlbGVjdGVkU3RhdGVdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5xdWlja1NlbGVjdENvbmZpZykge1xuICAgICAgdGhpcy5xdWlja1NlbGVjdENvbmZpZy5pdGVtcy5mb3JFYWNoKChxdWlja1NlbGVjdCkgPT4ge1xuICAgICAgICBkZWxldGUgcXVpY2tTZWxlY3Quc2VsZWN0ZWQ7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPSB0aGlzLmdldFNlbGVjdGVkU3RhdGUocXVpY2tTZWxlY3QuY2hpbGRyZW4gYXMgKHsgc2VsZWN0ZWQ/OiBib29sZWFuIH0gJiB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtdKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkU3RhdGUpIHtcbiAgICAgICAgICBxdWlja1NlbGVjdFtzZWxlY3RlZFN0YXRlXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdGVkU3RhdGUgPSAoY2hpbGRBcnJheTogeyBzZWxlY3RlZD86IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU/OiBib29sZWFuIH1bXSk6ICdzZWxlY3RlZCcgfCAnaW5kZXRlcm1pbmF0ZScgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IG51bWJlck9mU2VsZWN0ZWRJdGVtcyA9IGNoaWxkQXJyYXkuZmlsdGVyKCh7IHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkKS5sZW5ndGg7XG4gICAgaWYgKCFudW1iZXJPZlNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBudW1iZXJPZlNlbGVjdGVkSXRlbXMgPT09IGNoaWxkQXJyYXkubGVuZ3RoID8gJ3NlbGVjdGVkJyA6ICdpbmRldGVybWluYXRlJztcbiAgfTtcblxuICBlbWl0U2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXM6IFRhYmJlZEdyb3VwUGlja2VyVGFiW10gPSB0aGlzLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICAuLi50YWIsXG4gICAgICBkYXRhOiB0YWIuZGF0YS5maWx0ZXIoKHsgc2VsZWN0ZWQgfSkgPT4gc2VsZWN0ZWQpLFxuICAgIH0pKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkVmFsdWVzKTtcbiAgfVxuXG4gIGRlc2VsZWN0RXZlcnl0aGluZyhldmVudCkge1xuICAgIEhlbHBlcnMuc3dhbGxvd0V2ZW50KGV2ZW50KTtcbiAgICB0aGlzLnNob3dDbGVhckFsbCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnF1aWNrU2VsZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLnF1aWNrU2VsZWN0Q29uZmlnLml0ZW1zLmZvckVhY2goKHF1aWNrU2VsZWN0KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBxdWlja1NlbGVjdC5zZWxlY3RlZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAoKHRhYiBhcyBQYXJlbnRUYWIpLmNoaWxkVHlwZU5hbWUpIHtcbiAgICAgICAgdGFiLmRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBpdGVtLnNlbGVjdGVkO1xuICAgICAgICAgIGRlbGV0ZSBpdGVtLmluZGV0ZXJtaW5hdGU7XG4gICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gZGVsZXRlIGNoaWxkLnNlbGVjdGVkKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAodGFiIGFzIENoaWxkVGFiKS5kYXRhLmZvckVhY2goKGl0ZW0pID0+IGRlbGV0ZSBpdGVtLnNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcygpO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DbGVhckZpbHRlcihldmVudCkge1xuICAgIEhlbHBlcnMuc3dhbGxvd0V2ZW50KGV2ZW50KTtcbiAgICB0aGlzLmZpbHRlclRleHQubmV4dCgnJyk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudDogeyB0YXJnZXQ6IHsgdmFsdWU6IHN0cmluZyB9IH0pIHtcbiAgICB0aGlzLmZpbHRlclRleHQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyID0gKHNlYXJjaFRlcm06IHN0cmluZykgPT4ge1xuICAgIHRoaXMuZGlzcGxheVRhYnMuZm9yRWFjaChcbiAgICAgIChkaXNwbGF5VGFiLCBpKSA9PlxuICAgICAgICAoZGlzcGxheVRhYi5kYXRhID0gdGhpcy50YWJzW2ldLmRhdGEuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgIGl0ZW1bZGlzcGxheVRhYi5sYWJlbEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSksXG4gICAgICAgICkpLFxuICAgICk7XG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG59XG4iLCI8bm92by1kcm9wZG93biAodG9nZ2xlZCk9XCJvbkRyb3Bkb3duVG9nZ2xlKCRldmVudClcIiBtdWx0aXBsZT5cbiAgPG5vdm8tYnV0dG9uXG4gICAgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLWJ1dHRvblwiXG4gICAgW3RoZW1lXT1cImJ1dHRvbkNvbmZpZy50aGVtZVwiXG4gICAgW3NpZGVdPVwiYnV0dG9uQ29uZmlnLnNpZGVcIlxuICAgIFtpY29uXT1cImJ1dHRvbkNvbmZpZy5pY29uXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmJlZC1ncm91cC1waWNrZXItYnV0dG9uLWxhYmVsXCI+e3sgYnV0dG9uQ29uZmlnLmxhYmVsIH19PC9kaXY+XG4gIDwvbm92by1idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLXNlYXJjaFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInRhYmJlZC1ncm91cC1waWNrZXItc2VhcmNoXCI+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsU2VydmljZS5zZWFyY2hcIiBbdmFsdWVdPVwiZmlsdGVyVGV4dCB8IGFzeW5jXCIgKGlucHV0KT1cIm9uRmlsdGVyKCRldmVudClcIiAvPlxuICAgIDxpIGNsYXNzPVwiYmhpLXNlYXJjaFwiICpuZ0lmPVwiIShmaWx0ZXJUZXh0IHwgYXN5bmMpXCI+PC9pPlxuICAgIDxpIGNsYXNzPVwiYmhpLXRpbWVzXCIgKm5nSWY9XCIoZmlsdGVyVGV4dCB8IGFzeW5jKVwiIChjbGljayk9XCJvbkNsZWFyRmlsdGVyKCRldmVudClcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGFiYmVkLWdyb3VwLXBpY2tlci1jb2x1bW4tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmJlZC1ncm91cC1waWNrZXItY29sdW1uIGxlZnRcIj5cbiAgICAgIDxub3ZvLW5hdiB0aGVtZT1cIndoaXRlXCIgZGlyZWN0aW9uPVwidmVydGljYWxcIj5cbiAgICAgICAgPG5vdm8tdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgZGlzcGxheVRhYnNcIiBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwidGFiLnR5cGVOYW1lXCJcbiAgICAgICAgICAoYWN0aXZlQ2hhbmdlKT1cImNoYW5nZVRhYih0YWIpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdGFiLnR5cGVMYWJlbCB9fSAoe3sgdGFiLmRhdGEubGVuZ3RoIH19KTwvc3Bhbj48aSBjbGFzcz1cImJoaS1uZXh0XCI+PC9pPlxuICAgICAgICA8L25vdm8tdGFiPlxuICAgICAgPC9ub3ZvLW5hdj5cbiAgICAgIDxub3ZvLWJ1dHRvbiAqbmdJZj1cInNob3dDbGVhckFsbFwiIGNsYXNzPVwiY2xlYXItYWxsLWJ1dHRvblwiIHRoZW1lPVwiZGlhbG9ndWVcIiBpY29uPVwidGltZXNcIiBzaWRlPVwicmlnaHRcIlxuICAgICAgICBjb2xvcj1cImdyYXBlZnJ1aXRcIiAoY2xpY2spPVwiZGVzZWxlY3RFdmVyeXRoaW5nKCRldmVudClcIj57eyBsYWJlbFNlcnZpY2UuY2xlYXIgfX08L25vdm8tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLWNvbHVtbiByaWdodFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdFwiICpuZ0lmPVwicXVpY2tTZWxlY3RDb25maWcgJiYgIShmaWx0ZXJUZXh0IHwgYXN5bmMpXCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1sYWJlbFwiPnt7IHF1aWNrU2VsZWN0Q29uZmlnLmxhYmVsIH19PC9kaXY+IC0tPlxuICAgICAgICA8bm92by1vcHRncm91cCBjbGFzcz1cInF1aWNrLXNlbGVjdC1saXN0XCIgW2xhYmVsXT1cInF1aWNrU2VsZWN0Q29uZmlnLmxhYmVsXCI+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uXG4gICAgICAgICAgICBjbGFzcz1cInF1aWNrLXNlbGVjdC1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBxdWlja1NlbGVjdCBvZiBxdWlja1NlbGVjdENvbmZpZy5pdGVtc1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwicXVpY2tTZWxlY3QubGFiZWxcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInF1aWNrU2VsZWN0LnNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJxdWlja1NlbGVjdC5zZWxlY3RlZCA9ICFxdWlja1NlbGVjdC5zZWxlY3RlZDsgb25JdGVtVG9nZ2xlZChxdWlja1NlbGVjdClcIlxuICAgICAgICAgICAgaW5lcnQ+XG4gICAgICAgICAgICB7e3F1aWNrU2VsZWN0LmxhYmVsfX1cbiAgICAgICAgICAgIDwhLS0gPG5vdm8tY2hlY2tib3hcbiAgICAgICAgICAgICAgW2xhYmVsXT1cInF1aWNrU2VsZWN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ3NlbGVjdGVkJ1wiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicXVpY2tTZWxlY3Quc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkl0ZW1Ub2dnbGVkKHF1aWNrU2VsZWN0KVwiPjwvbm92by1jaGVja2JveD4gLS0+XG4gICAgICAgICAgPC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgPC9ub3ZvLW9wdGdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgICA8bm92by1vcHRncm91cCAqbmdJZj1cImRpc3BsYXlUYWIuZGF0YS5sZW5ndGhcIj5cbiAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAgIFtpdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICAgICAgICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXG4gICAgICAgICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcbiAgICAgICAgICAjdGFiYmVkR3JvdXBQaWNrZXJWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uXG4gICAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlUYWIuZGF0YVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiaXRlbVtkaXNwbGF5VGFiLmxhYmVsRmllbGRdXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLnNlbGVjdGVkID0gIWl0ZW0uc2VsZWN0ZWQ7IG9uSXRlbVRvZ2dsZWQoaXRlbSlcIlxuICAgICAgICAgICAgaW5lcnQ+XG4gICAgICAgICAgICB7e2l0ZW1bZGlzcGxheVRhYi5sYWJlbEZpZWxkXX19XG5cbiAgICAgICAgICAgIDwhLS0gPG5vdm8tY2hlY2tib3hcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW1bZGlzcGxheVRhYi5sYWJlbEZpZWxkXVwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidzZWxlY3RlZCdcIlxuICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpdGVtLmluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkl0ZW1Ub2dnbGVkKGl0ZW0pXCI+XG4gICAgICAgICAgICA8L25vdm8tY2hlY2tib3g+IC0tPlxuICAgICAgICAgIDwvbm92by1vcHRpb24+XG4gICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgPC9ub3ZvLW9wdGdyb3VwPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmJlZC1ncm91cC1waWNrZXItZW1wdHktaXRlbVwiICpuZ0lmPVwiIWRpc3BsYXlUYWIuZGF0YS5sZW5ndGggJiYgKGZpbHRlclRleHQgfCBhc3luYylcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJ7eyBkaXNwbGF5VGFiLmljb24gfHwgJ2JoaS1zZWFyY2gnIH19XCI+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktaXRlbS1tYWluLW1lc3NhZ2VcIj57eyBsYWJlbFNlcnZpY2UudGFiYmVkR3JvdXBQaWNrZXJFbXB0eSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktaXRlbS1zdWItbWVzc2FnZVwiPnt7IGxhYmVsU2VydmljZS50YWJiZWRHcm91cENsZWFyU3VnZ2VzdGlvbihkaXNwbGF5VGFiLnR5cGVMYWJlbCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25vdm8tZHJvcGRvd24+Il19
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFiYmVkR3JvdXBQaWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy90YWJiZWQtZ3JvdXAtcGlja2VyL1RhYmJlZEdyb3VwUGlja2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvZWxlbWVudHMvdGFiYmVkLWdyb3VwLXBpY2tlci9UYWJiZWRHcm91cFBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztBQWlEekQsTUFBTSxPQUFPLDRCQUE0QjtJQXlCdkMsWUFBbUIsWUFBOEIsRUFBVSxHQUFzQjtRQUE5RCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJCakYsYUFBUSxHQUFHLElBQUksQ0FBQztRQU1OLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFHdkUsb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFFNUIsZUFBVSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUc5RCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsb0dBQW9HO1FBQ3BHLHlCQUFvQixHQUFXLEdBQUcsQ0FBQztRQUNuQywwQkFBcUIsR0FBVyxFQUFFLENBQUM7UUFvTm5DLHFCQUFnQixHQUFHLENBQUMsVUFBNkQsRUFBNEMsRUFBRTtZQUM3SCxNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDbkYsSUFBSSxDQUFDLHFCQUFxQixFQUFFO2dCQUMxQixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8scUJBQXFCLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFDcEYsQ0FBQyxDQUFDO1FBMENGLFdBQU0sR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDdEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDaEIsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUM3RSxDQUFDLENBQ0wsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO0lBMVFrRixDQUFDO0lBRXJGLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEdBQXlCO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLHlFQUF5RTtJQUM3RyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsd0VBQXdFO0lBQ2hILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUF5QjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsT0FBb0I7UUFDakMsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCx3RkFBd0Y7UUFDeEYsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxzRUFBc0U7SUFDdEUscUNBQXFDO0lBQ3JDLHdCQUF3QjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hCLHVFQUF1RTtZQUN2RSxJQUFJLGVBQWUsSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BHLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUVuRSxHQUFHLENBQUMsSUFBSTtxQkFDTCxNQUFNLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQztxQkFDckQsT0FBTyxDQUFDLENBQUMsTUFBNEIsRUFBRSxFQUFFLENBQ3hDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFzQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQzFHLENBQUM7YUFDTDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7aUJBQ3pCLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztpQkFDbkMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM3RixDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2lCQUN6QixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUM7aUJBQ3RDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwRyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFbkUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQXNCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1RyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFJLEdBQVc7UUFDaEMsT0FBTyxDQUFDLENBQTJCLEVBQUUsQ0FBMkIsRUFBRSxFQUFFO1lBQ2xFLE1BQU0sTUFBTSxHQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFckMsSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFO2dCQUNuQixPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ1g7aUJBQU0sSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFO2dCQUMxQixPQUFPLENBQUMsQ0FBQzthQUNWO2lCQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtnQkFDNUIsT0FBTyxDQUFDLENBQUM7YUFDVjtpQkFBTTtnQkFDTCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkIsQ0FDM0IsTUFBMkIsRUFDM0IsVUFBNEIsRUFDNUIsZUFBcUMsRUFDckMsWUFBNkI7UUFFN0IsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUTthQUM5QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2RixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7SUFDbEYsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQW1CLEVBQUUsVUFBa0IsRUFBRSxlQUFlO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLFVBQVUscUJBQXFCLFVBQVUsZUFBZSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN0RixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWdIO1FBQzVILElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxlQUFlLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pELEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQzFCLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO3dCQUNoRSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOzRCQUNoQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFDeEIsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLGdCQUF5QixFQUFFLFFBQWlGO1FBQzVILFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLG1CQUE2QjtRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQjtZQUNyQyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNyQixJQUFLLEdBQWlCLENBQUMsYUFBYSxFQUFFO29CQUNwQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsSUFBSSxhQUFhLENBQUMsQ0FBQztpQkFDbEY7cUJBQU07b0JBQ0wsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNsRDtZQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLElBQUk7YUFDTixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7YUFDOUQsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUF3QixFQUFFLEVBQUUsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXJHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUErQyxFQUFFLEVBQUU7Z0JBQ2xFLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBRW5HLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdELElBQUksYUFBYSxFQUFFO29CQUNqQixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUM5QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNuRCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsUUFBK0QsQ0FBQyxDQUFDO2dCQUN6SCxJQUFJLGFBQWEsRUFBRTtvQkFDakIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDbkM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQVVELGtCQUFrQjtRQUNoQixNQUFNLGNBQWMsR0FBMkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckUsR0FBRyxHQUFHO1lBQ04sSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQUs7UUFDdEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNuRCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEIsSUFBSyxHQUFpQixDQUFDLGFBQWEsRUFBRTtnQkFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7b0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDSixHQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBSztRQUNqQixPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0M7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOzswSEF6UlUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsb01BRjVCLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUMsd0tDL0RuRyxpM0hBNkVnQjs0RkRaSCw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUVuQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxDQUFDO3VJQUl6RixrQkFBa0I7c0JBRHpCLFNBQVM7dUJBQUMsd0NBQXdDO2dCQUsxQyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vdm9MYWJlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3ZvLWxhYmVsLXNlcnZpY2UnO1xuaW1wb3J0IHsgYmluYXJ5U2VhcmNoLCBIZWxwZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvSGVscGVycyc7XG5pbXBvcnQgeyBOT1ZPX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UIH0gZnJvbSAnLi4vY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJUYWIgPSB7XG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIHR5cGVMYWJlbDogc3RyaW5nO1xuICB2YWx1ZUZpZWxkOiBzdHJpbmc7XG4gIGxhYmVsRmllbGQ6IHN0cmluZztcbiAgc2Nyb2xsT2Zmc2V0PzogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xufSAmIChQYXJlbnRUYWIgfCBDaGlsZFRhYik7XG5cbmV4cG9ydCB0eXBlIFBhcmVudFRhYiA9IHtcbiAgY2hpbGRUeXBlTmFtZTogc3RyaW5nO1xuICBkYXRhOiBBcnJheTxQYXJlbnRPcHRpb24+O1xufTtcblxudHlwZSBQYXJlbnRPcHRpb24gPSB7XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBBcnJheTx7IHNlbGVjdGVkPzogYm9vbGVhbiB9Pjtcbn0gJiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG5leHBvcnQgdHlwZSBDaGlsZFRhYiA9IHtcbiAgZGF0YTogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW4gfSAmIHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJRdWlja1NlbGVjdCA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICBjaGlsZFR5cGVOYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbj86ICgoeyBzZWxlY3RlZD86IGJvb2xlYW4gfSAmIHsgW2tleTogc3RyaW5nXTogYW55IH0pIHwgbnVtYmVyKVtdO1xuICBhbGw/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUXVpY2tTZWxlY3RDb25maWcgPSB7IGxhYmVsOiBzdHJpbmc7IGl0ZW1zOiBUYWJiZWRHcm91cFBpY2tlclF1aWNrU2VsZWN0W10gfTtcblxuZXhwb3J0IHR5cGUgVGFiYmVkR3JvdXBQaWNrZXJCdXR0b25Db25maWcgPSB7XG4gIHRoZW1lOiBzdHJpbmc7XG4gIHNpZGU6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by10YWJiZWQtZ3JvdXAtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL1RhYmJlZEdyb3VwUGlja2VyLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOT1ZPX09QVElPTl9QQVJFTlRfQ09NUE9ORU5ULCB1c2VFeGlzdGluZzogTm92b1RhYmJlZEdyb3VwUGlja2VyRWxlbWVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b1RhYmJlZEdyb3VwUGlja2VyRWxlbWVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgndGFiYmVkR3JvdXBQaWNrZXJWaXJ0dWFsU2Nyb2xsVmlld3BvcnQnKVxuICBwcml2YXRlIHNjcm9sbGFibGVJbnN0YW5jZTogQ2RrU2Nyb2xsYWJsZTtcblxuICBtdWx0aXBsZSA9IHRydWU7XG5cbiAgQElucHV0KCkgYnV0dG9uQ29uZmlnOiBUYWJiZWRHcm91cFBpY2tlckJ1dHRvbkNvbmZpZztcbiAgQElucHV0KCkgdGFiczogVGFiYmVkR3JvdXBQaWNrZXJUYWJbXTtcbiAgQElucHV0KCkgcXVpY2tTZWxlY3RDb25maWc6IFF1aWNrU2VsZWN0Q29uZmlnO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZGlzcGxheVRhYnM6IFRhYmJlZEdyb3VwUGlja2VyVGFiW107XG4gIGRpc3BsYXlUYWJJbmRleDogbnVtYmVyID0gMDtcblxuICBmaWx0ZXJUZXh0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBmaWx0ZXJUZXh0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgbG9hZGluZyA9IHRydWU7XG4gIHNob3dDbGVhckFsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIEluaXRpYWwgaGVpZ2h0IGJhc2VkIG9uIDEzIHB4IGZvbnQgcmVuZGVyZWQgaW4gY2hyb21lLiBBY3R1YWwgaGVpZ2h0IHJldHJpZXZlZCBvbkRyb3Bkb3duVG9nZ2xlZC5cbiAgc2Nyb2xsVmlld3BvcnRIZWlnaHQ6IG51bWJlciA9IDM1MTtcbiAgdmlydHVhbFNjcm9sbEl0ZW1TaXplOiBudW1iZXIgPSAzOTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbGFiZWxTZXJ2aWNlOiBOb3ZvTGFiZWxTZXJ2aWNlLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGRpc3BsYXlUYWIoKTogVGFiYmVkR3JvdXBQaWNrZXJUYWIge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlUYWJzW3RoaXMuZGlzcGxheVRhYkluZGV4XTtcbiAgfVxuICBzZXQgZGlzcGxheVRhYih0YWI6IFRhYmJlZEdyb3VwUGlja2VyVGFiKSB7XG4gICAgdGhpcy5kaXNwbGF5VGFiSW5kZXggPSB0aGlzLnRhYnMubWFwKCh7IHR5cGVOYW1lIH0pID0+IHR5cGVOYW1lKS5pbmRleE9mKHRhYi50eXBlTmFtZSk7XG4gIH1cblxuICBnZXQgbWluQnVmZmVyUHgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsVmlld3BvcnRIZWlnaHQ7IC8vIHJlbmRlciBhdCBsZWFzdCAyeCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHZpc2libGUgKHZpZXdwb3J0ICsgbWluIGJ1ZmZlcilcbiAgfVxuXG4gIGdldCBtYXhCdWZmZXJQeCgpIHtcbiAgICByZXR1cm4gMiAqIHRoaXMuc2Nyb2xsVmlld3BvcnRIZWlnaHQ7IC8vIHJlbmRlciBhdCBtb3N0IDN4IHRoZSBudW1iZXIgb2YgaXRlbXMgdmlzaWJsZSAodmlld3BvcnQgKyBtYXggYnVmZmVyKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlEYXRhKCk7XG4gICAgdGhpcy5jcmVhdGVDaGlsZHJlblJlZmVyZW5jZXMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVEZXNjZW5kYW50U2VsZWN0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVQYXJlbnRzQW5kUXVpY2tTZWxlY3QoKTtcbiAgICB0aGlzLnVwZGF0ZUNsZWFyQWxsKCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbHRlclRleHRTdWJzY3JpcHRpb24gPSB0aGlzLmZpbHRlclRleHQucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHRoaXMuZmlsdGVyLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyVGV4dFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJUZXh0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVGFiKHRhYjogVGFiYmVkR3JvdXBQaWNrZXJUYWIpIHtcbiAgICB0aGlzLmRpc3BsYXlUYWIgPSB0YWI7XG4gICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnNjcm9sbGFibGVJbnN0YW5jZS5zY3JvbGxUbyh7IGJlaGF2aW9yOiAnYXV0bycsIHRvcDogMCB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRQaXhlbEhlaWdodChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBOdW1iZXIoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuaGVpZ2h0Lm1hdGNoKC8oXFxkKyhcXC5cXGQrKT8pcHgkLylbMV0pO1xuICB9XG5cbiAgc2V0dXBEaXNwbGF5RGF0YSgpOiB2b2lkIHtcbiAgICAvLyBzaGFsbG93IGNvcHkgaGVyZSBzbyB0aGF0IHJlYXNzaWduaW5nIGRpc3BsYXlUYWJzW2ldLmRhdGEgZG9lc24ndCBtdXRhdGUgdGFic1tpXS5kYXRhXG4gICAgLy8gYnV0IGJvdGggZGF0YSB2YWx1ZXMgcG9pbnQgdG8gdGhlIHNhbWUgaXRlbXNcbiAgICB0aGlzLmRpc3BsYXlUYWJzID0gdGhpcy50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIgfSkpO1xuICAgIHRoaXMuZGlzcGxheVRhYiA9IHRoaXMudGFic1swXTtcbiAgfVxuXG4gIC8vIFJlcGxhY2UgZWFjaCBwYXJlbnQncyBjaGlsZCBvYmplY3Qgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgY2hpbGQgdG8gYXZvaWRcbiAgLy8gYSBjaGlsZCBsb29rdXAgZm9yIHNlbGVjdGVkIHN0YXR1czsgbGlua2luZyByZWZlcmVuY2VzIGFsbG93cyBNIHggTlxuICAvLyB0aW1lIGNvbXBsZXhpdHkgaW5zdGVhZCBvZiBNIHggTl4yXG4gIGNyZWF0ZUNoaWxkcmVuUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAvLyB3b3VsZCByYXRoZXIgZmlsdGVyIGJ1dCBUeXBlU2NyaXB0IHN0aWxsIHdhbnRzIGEgdHlwZSBuYXJyb3dpbmcgaGVyZVxuICAgICAgaWYgKCdjaGlsZFR5cGVOYW1lJyBpbiB0YWIpIHtcbiAgICAgICAgY29uc3QgY2hpbGRUYWIgPSB0aGlzLnRhYnMuZmluZCgoeyB0eXBlTmFtZSB9KSA9PiB0eXBlTmFtZSA9PT0gdGFiLmNoaWxkVHlwZU5hbWUpO1xuICAgICAgICBjb25zdCBjb21wYXJlRnVuY3Rpb24gPSB0aGlzLm1ha2VDb21wYXJlRnVuY3Rpb24oY2hpbGRUYWIudmFsdWVGaWVsZCk7XG4gICAgICAgIGNvbnN0IHdhcm5GdW5jdGlvbiA9IHRoaXMubWFrZVdhcm5pbmdGdW5jdGlvbih0YWIudHlwZU5hbWUsIGNoaWxkVGFiLnR5cGVOYW1lLCBjaGlsZFRhYi52YWx1ZUZpZWxkKTtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2hpbGRyZW4gPSBjaGlsZFRhYi5kYXRhLnNsaWNlKCkuc29ydChjb21wYXJlRnVuY3Rpb24pO1xuXG4gICAgICAgIHRhYi5kYXRhXG4gICAgICAgICAgLmZpbHRlcigoeyBjaGlsZHJlbiB9KSA9PiBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpXG4gICAgICAgICAgLmZvckVhY2goKHBhcmVudDogeyBjaGlsZHJlbj86IGFueVtdIH0pID0+XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VDaGlsZHJlbldpdGhSZWZlcmVuY2VzKHBhcmVudCBhcyBQYXJlbnRPcHRpb24sIHNvcnRlZENoaWxkcmVuLCBjb21wYXJlRnVuY3Rpb24sIHdhcm5GdW5jdGlvbiksXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5xdWlja1NlbGVjdENvbmZpZykge1xuICAgICAgdGhpcy5xdWlja1NlbGVjdENvbmZpZy5pdGVtc1xuICAgICAgICAuZmlsdGVyKChwYXJlbnQpID0+ICdhbGwnIGluIHBhcmVudClcbiAgICAgICAgLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IHRoaXMudGFicy5maW5kKCh7IHR5cGVOYW1lIH0pID0+IHBhcmVudC5jaGlsZFR5cGVOYW1lID09PSB0eXBlTmFtZSkuZGF0YTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMucXVpY2tTZWxlY3RDb25maWcuaXRlbXNcbiAgICAgICAgLmZpbHRlcigocGFyZW50KSA9PiAhKCdhbGwnIGluIHBhcmVudCkpXG4gICAgICAgIC5mb3JFYWNoKChwYXJlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlsZFRhYiA9IHRoaXMudGFicy5maW5kKCh7IHR5cGVOYW1lIH0pID0+IHR5cGVOYW1lID09PSBwYXJlbnQuY2hpbGRUeXBlTmFtZSk7XG4gICAgICAgICAgY29uc3QgY29tcGFyZUZ1bmN0aW9uID0gdGhpcy5tYWtlQ29tcGFyZUZ1bmN0aW9uKGNoaWxkVGFiLnZhbHVlRmllbGQpO1xuICAgICAgICAgIGNvbnN0IHdhcm5GdW5jdGlvbiA9IHRoaXMubWFrZVdhcm5pbmdGdW5jdGlvbihwYXJlbnQubGFiZWwsIGNoaWxkVGFiLnR5cGVOYW1lLCBjaGlsZFRhYi52YWx1ZUZpZWxkKTtcbiAgICAgICAgICBjb25zdCBzb3J0ZWRDaGlsZHJlbiA9IGNoaWxkVGFiLmRhdGEuc2xpY2UoKS5zb3J0KGNvbXBhcmVGdW5jdGlvbik7XG5cbiAgICAgICAgICB0aGlzLnJlcGxhY2VDaGlsZHJlbldpdGhSZWZlcmVuY2VzKHBhcmVudCBhcyBQYXJlbnRPcHRpb24sIHNvcnRlZENoaWxkcmVuLCBjb21wYXJlRnVuY3Rpb24sIHdhcm5GdW5jdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG1ha2VDb21wYXJlRnVuY3Rpb248VD4oa2V5OiBzdHJpbmcpOiAoYTogVCB8IHsgW2tleTogc3RyaW5nXTogVCB9LCBiOiBUIHwgeyBba2V5OiBzdHJpbmddOiBUIH0pID0+IDEgfCAtMSB8IDAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoYTogVCB8IHsgW2tleTogc3RyaW5nXTogVCB9LCBiOiBUIHwgeyBba2V5OiBzdHJpbmddOiBUIH0pID0+IHtcbiAgICAgIGNvbnN0IGFWYWx1ZTogVCA9IChhICYmIGFba2V5XSkgfHwgYTtcbiAgICAgIGNvbnN0IGJWYWx1ZTogVCA9IChiICYmIGJba2V5XSkgfHwgYjtcblxuICAgICAgaWYgKGFWYWx1ZSA8IGJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKGFWYWx1ZSA+IGJWYWx1ZSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSBpZiAoYVZhbHVlID09PSBiVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXBsYWNlQ2hpbGRyZW5XaXRoUmVmZXJlbmNlcyhcbiAgICBwYXJlbnQ6IHsgY2hpbGRyZW46IGFueVtdIH0sXG4gICAgc29ydGVkRGF0YTogQ2hpbGRUYWJbJ2RhdGEnXSxcbiAgICBjb21wYXJlRnVuY3Rpb246IChhLCBiKSA9PiAxIHwgLTEgfCAwLFxuICAgIHdhcm5GdW5jdGlvbjogKGNoaWxkKSA9PiB2b2lkLFxuICApOiB2b2lkIHtcbiAgICBwYXJlbnQuY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW5cbiAgICAgIC5tYXAoKGNoaWxkKSA9PiBiaW5hcnlTZWFyY2goY2hpbGQsIHNvcnRlZERhdGEsIGNvbXBhcmVGdW5jdGlvbikgfHwgd2FybkZ1bmN0aW9uKGNoaWxkKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7IC8vIHNpbmNlIG1hcCBjYW4gcmV0dXJuIHVuZGVmaW5lZCwgcmVtb3ZlIHVuZGVmaW5lZCBlbGVtZW50c1xuICB9XG5cbiAgbWFrZVdhcm5pbmdGdW5jdGlvbihwYXJlbnRMYWJlbDogc3RyaW5nLCBjaGlsZExhYmVsOiBzdHJpbmcsIGNoaWxkVmFsdWVGaWVsZCk6IChjaGlsZCkgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRWYWx1ZSA9IGNoaWxkW2NoaWxkVmFsdWVGaWVsZF0gfHwgY2hpbGQ7XG4gICAgICBjb25zb2xlLndhcm4oYE5vICR7Y2hpbGRMYWJlbH0gZm91bmQgd2l0aCB2YWx1ZSAke2NoaWxkVmFsdWV9IGZvciBwYXJlbnQgJHtwYXJlbnRMYWJlbH1gKTtcbiAgICB9O1xuICB9XG5cbiAgb25Ecm9wZG93blRvZ2dsZShldmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydEhlaWdodCA9IHRoaXMuZ2V0UGl4ZWxIZWlnaHQodGhpcy5zY3JvbGxhYmxlSW5zdGFuY2UuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemUgPSB0aGlzLmdldFBpeGVsSGVpZ2h0KFxuICAgICAgICB0aGlzLnNjcm9sbGFibGVJbnN0YW5jZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdub3ZvLWxpc3QtaXRlbScpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1Ub2dnbGVkKGl0ZW06IHsgc2VsZWN0ZWQ/OiBib29sZWFuOyBjaGlsZHJlbj86IEFycmF5PHsgc2VsZWN0ZWQ/OiBib29sZWFuOyBjaGlsZHJlbj86IEFycmF5PHsgc2VsZWN0ZWQ/OiBib29sZWFuIH0+IH0+IH0pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgdGhpcy51cGRhdGVEZXNjZW5kYW50cyhpdGVtLnNlbGVjdGVkLCBpdGVtLmNoaWxkcmVuKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQYXJlbnRzQW5kUXVpY2tTZWxlY3QoKTtcbiAgICB0aGlzLnVwZGF0ZUNsZWFyQWxsKGl0ZW0uc2VsZWN0ZWQpO1xuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpbml0aWFsaXplRGVzY2VuZGFudFNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAoJ2NoaWxkVHlwZU5hbWUnIGluIHRhYiAmJiB0YWIuZGF0YSAmJiB0YWIuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGFiLmRhdGEuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmVudC5zZWxlY3RlZCAmJiBwYXJlbnQuY2hpbGRyZW4gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEZXNjZW5kYW50cyhwYXJlbnRJc1NlbGVjdGVkOiBib29sZWFuLCBjaGlsZHJlbjogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW47IGNoaWxkcmVuPzogQXJyYXk8eyBzZWxlY3RlZD86IGJvb2xlYW4gfT4gfT4pOiB2b2lkIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBwYXJlbnRJc1NlbGVjdGVkID8gKGl0ZW0uc2VsZWN0ZWQgPSB0cnVlKSA6IGRlbGV0ZSBpdGVtLnNlbGVjdGVkO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgdGhpcy51cGRhdGVEZXNjZW5kYW50cyhpdGVtLnNlbGVjdGVkLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNsZWFyQWxsKGl0ZW1XYXNKdXN0U2VsZWN0ZWQ/OiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93Q2xlYXJBbGwgPSBpdGVtV2FzSnVzdFNlbGVjdGVkXG4gICAgICA/IHRydWVcbiAgICAgIDogdGhpcy50YWJzLnNvbWUoKHRhYikgPT4ge1xuICAgICAgICAgIGlmICgodGFiIGFzIFBhcmVudFRhYikuY2hpbGRUeXBlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYi5kYXRhLnNvbWUoKHsgc2VsZWN0ZWQsIGluZGV0ZXJtaW5hdGUgfSkgPT4gc2VsZWN0ZWQgfHwgaW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0YWIuZGF0YS5zb21lKCh7IHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUGFyZW50c0FuZFF1aWNrU2VsZWN0KCk6IHZvaWQge1xuICAgIC8vIG11dGF0ZSBoZXJlIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgdGhlIG9iamVjdHMgaW4gZGlzcGxheVRhYnNcbiAgICB0aGlzLnRhYnNcbiAgICAgIC5maWx0ZXIoKHRhYikgPT4gJ2NoaWxkVHlwZU5hbWUnIGluIHRhYiAmJiAhIXRhYi5jaGlsZFR5cGVOYW1lKVxuICAgICAgLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnRzID0gdGFiLmRhdGEuZmlsdGVyKCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW4/OiBhbnlbXSB9KSA9PiBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpO1xuXG4gICAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiB7IGNoaWxkcmVuPzogeyBzZWxlY3RlZD86IGJvb2xlYW4gfVtdIH0pID0+IHtcbiAgICAgICAgICBbJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXS5mb3JFYWNoKChzZWxlY3RlZFN0YXRlT3B0aW9uKSA9PiBkZWxldGUgcGFyZW50W3NlbGVjdGVkU3RhdGVPcHRpb25dKTtcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPSB0aGlzLmdldFNlbGVjdGVkU3RhdGUocGFyZW50LmNoaWxkcmVuKTtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRTdGF0ZSkge1xuICAgICAgICAgICAgcGFyZW50W3NlbGVjdGVkU3RhdGVdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5xdWlja1NlbGVjdENvbmZpZykge1xuICAgICAgdGhpcy5xdWlja1NlbGVjdENvbmZpZy5pdGVtcy5mb3JFYWNoKChxdWlja1NlbGVjdCkgPT4ge1xuICAgICAgICBkZWxldGUgcXVpY2tTZWxlY3Quc2VsZWN0ZWQ7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhdGUgPSB0aGlzLmdldFNlbGVjdGVkU3RhdGUocXVpY2tTZWxlY3QuY2hpbGRyZW4gYXMgKHsgc2VsZWN0ZWQ/OiBib29sZWFuIH0gJiB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtdKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkU3RhdGUpIHtcbiAgICAgICAgICBxdWlja1NlbGVjdFtzZWxlY3RlZFN0YXRlXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdGVkU3RhdGUgPSAoY2hpbGRBcnJheTogeyBzZWxlY3RlZD86IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU/OiBib29sZWFuIH1bXSk6ICdzZWxlY3RlZCcgfCAnaW5kZXRlcm1pbmF0ZScgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IG51bWJlck9mU2VsZWN0ZWRJdGVtcyA9IGNoaWxkQXJyYXkuZmlsdGVyKCh7IHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkKS5sZW5ndGg7XG4gICAgaWYgKCFudW1iZXJPZlNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBudW1iZXJPZlNlbGVjdGVkSXRlbXMgPT09IGNoaWxkQXJyYXkubGVuZ3RoID8gJ3NlbGVjdGVkJyA6ICdpbmRldGVybWluYXRlJztcbiAgfTtcblxuICBlbWl0U2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXM6IFRhYmJlZEdyb3VwUGlja2VyVGFiW10gPSB0aGlzLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICAuLi50YWIsXG4gICAgICBkYXRhOiB0YWIuZGF0YS5maWx0ZXIoKHsgc2VsZWN0ZWQgfSkgPT4gc2VsZWN0ZWQpLFxuICAgIH0pKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkVmFsdWVzKTtcbiAgfVxuXG4gIGRlc2VsZWN0RXZlcnl0aGluZyhldmVudCkge1xuICAgIEhlbHBlcnMuc3dhbGxvd0V2ZW50KGV2ZW50KTtcbiAgICB0aGlzLnNob3dDbGVhckFsbCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnF1aWNrU2VsZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLnF1aWNrU2VsZWN0Q29uZmlnLml0ZW1zLmZvckVhY2goKHF1aWNrU2VsZWN0KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBxdWlja1NlbGVjdC5zZWxlY3RlZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAoKHRhYiBhcyBQYXJlbnRUYWIpLmNoaWxkVHlwZU5hbWUpIHtcbiAgICAgICAgdGFiLmRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBpdGVtLnNlbGVjdGVkO1xuICAgICAgICAgIGRlbGV0ZSBpdGVtLmluZGV0ZXJtaW5hdGU7XG4gICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gZGVsZXRlIGNoaWxkLnNlbGVjdGVkKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAodGFiIGFzIENoaWxkVGFiKS5kYXRhLmZvckVhY2goKGl0ZW0pID0+IGRlbGV0ZSBpdGVtLnNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcygpO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DbGVhckZpbHRlcihldmVudCkge1xuICAgIEhlbHBlcnMuc3dhbGxvd0V2ZW50KGV2ZW50KTtcbiAgICB0aGlzLmZpbHRlclRleHQubmV4dCgnJyk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudDogeyB0YXJnZXQ6IHsgdmFsdWU6IHN0cmluZyB9IH0pIHtcbiAgICB0aGlzLmZpbHRlclRleHQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyID0gKHNlYXJjaFRlcm06IHN0cmluZykgPT4ge1xuICAgIHRoaXMuZGlzcGxheVRhYnMuZm9yRWFjaChcbiAgICAgIChkaXNwbGF5VGFiLCBpKSA9PlxuICAgICAgICAoZGlzcGxheVRhYi5kYXRhID0gdGhpcy50YWJzW2ldLmRhdGEuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgIGl0ZW1bZGlzcGxheVRhYi5sYWJlbEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSksXG4gICAgICAgICkpLFxuICAgICk7XG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG59XG4iLCI8bm92by1kcm9wZG93biAodG9nZ2xlZCk9XCJvbkRyb3Bkb3duVG9nZ2xlKCRldmVudClcIiBtdWx0aXBsZT5cbiAgPG5vdm8tYnV0dG9uXG4gICAgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLWJ1dHRvblwiXG4gICAgW3RoZW1lXT1cImJ1dHRvbkNvbmZpZy50aGVtZVwiXG4gICAgW3NpZGVdPVwiYnV0dG9uQ29uZmlnLnNpZGVcIlxuICAgIFtpY29uXT1cImJ1dHRvbkNvbmZpZy5pY29uXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmJlZC1ncm91cC1waWNrZXItYnV0dG9uLWxhYmVsXCI+e3sgYnV0dG9uQ29uZmlnLmxhYmVsIH19PC9kaXY+XG4gIDwvbm92by1idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLXNlYXJjaFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInRhYmJlZC1ncm91cC1waWNrZXItc2VhcmNoXCI+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsU2VydmljZS5zZWFyY2hcIiBbdmFsdWVdPVwiZmlsdGVyVGV4dCB8IGFzeW5jXCIgKGlucHV0KT1cIm9uRmlsdGVyKCRldmVudClcIiAvPlxuICAgIDxpIGNsYXNzPVwiYmhpLXNlYXJjaFwiICpuZ0lmPVwiIShmaWx0ZXJUZXh0IHwgYXN5bmMpXCI+PC9pPlxuICAgIDxpIGNsYXNzPVwiYmhpLXRpbWVzXCIgKm5nSWY9XCIoZmlsdGVyVGV4dCB8IGFzeW5jKVwiIChjbGljayk9XCJvbkNsZWFyRmlsdGVyKCRldmVudClcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGFiYmVkLWdyb3VwLXBpY2tlci1jb2x1bW4tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmJlZC1ncm91cC1waWNrZXItY29sdW1uIGxlZnRcIj5cbiAgICAgIDxub3ZvLW5hdiB0aGVtZT1cIndoaXRlXCIgZGlyZWN0aW9uPVwidmVydGljYWxcIj5cbiAgICAgICAgPG5vdm8tdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgZGlzcGxheVRhYnNcIiBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwidGFiLnR5cGVOYW1lXCJcbiAgICAgICAgICAoYWN0aXZlQ2hhbmdlKT1cImNoYW5nZVRhYih0YWIpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdGFiLnR5cGVMYWJlbCB9fSAoe3sgdGFiLmRhdGEubGVuZ3RoIH19KTwvc3Bhbj48aSBjbGFzcz1cImJoaS1uZXh0XCI+PC9pPlxuICAgICAgICA8L25vdm8tdGFiPlxuICAgICAgPC9ub3ZvLW5hdj5cbiAgICAgIDxub3ZvLWJ1dHRvbiAqbmdJZj1cInNob3dDbGVhckFsbFwiIGNsYXNzPVwiY2xlYXItYWxsLWJ1dHRvblwiIHRoZW1lPVwiZGlhbG9ndWVcIiBpY29uPVwidGltZXNcIiBzaWRlPVwicmlnaHRcIlxuICAgICAgICBjb2xvcj1cImdyYXBlZnJ1aXRcIiAoY2xpY2spPVwiZGVzZWxlY3RFdmVyeXRoaW5nKCRldmVudClcIj57eyBsYWJlbFNlcnZpY2UuY2xlYXIgfX08L25vdm8tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0YWJiZWQtZ3JvdXAtcGlja2VyLWNvbHVtbiByaWdodFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdFwiICpuZ0lmPVwicXVpY2tTZWxlY3RDb25maWcgJiYgIShmaWx0ZXJUZXh0IHwgYXN5bmMpXCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInF1aWNrLXNlbGVjdC1sYWJlbFwiPnt7IHF1aWNrU2VsZWN0Q29uZmlnLmxhYmVsIH19PC9kaXY+IC0tPlxuICAgICAgICA8bm92by1vcHRncm91cCBjbGFzcz1cInF1aWNrLXNlbGVjdC1saXN0XCIgW2xhYmVsXT1cInF1aWNrU2VsZWN0Q29uZmlnLmxhYmVsXCI+XG4gICAgICAgICAgPG5vdm8tb3B0aW9uXG4gICAgICAgICAgICBjbGFzcz1cInF1aWNrLXNlbGVjdC1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBxdWlja1NlbGVjdCBvZiBxdWlja1NlbGVjdENvbmZpZy5pdGVtc1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwicXVpY2tTZWxlY3QubGFiZWxcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInF1aWNrU2VsZWN0LnNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJxdWlja1NlbGVjdC5zZWxlY3RlZCA9ICFxdWlja1NlbGVjdC5zZWxlY3RlZDsgb25JdGVtVG9nZ2xlZChxdWlja1NlbGVjdClcIlxuICAgICAgICAgICAgbm92b0luZXJ0PlxuICAgICAgICAgICAge3txdWlja1NlbGVjdC5sYWJlbH19XG4gICAgICAgICAgICA8IS0tIDxub3ZvLWNoZWNrYm94XG4gICAgICAgICAgICAgIFtsYWJlbF09XCJxdWlja1NlbGVjdC5sYWJlbFwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidzZWxlY3RlZCdcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1aWNrU2VsZWN0LnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JdGVtVG9nZ2xlZChxdWlja1NlbGVjdClcIj48L25vdm8tY2hlY2tib3g+IC0tPlxuICAgICAgICAgIDwvbm92by1vcHRpb24+XG4gICAgICAgIDwvbm92by1vcHRncm91cD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5vdm8tb3B0Z3JvdXAgKm5nSWY9XCJkaXNwbGF5VGFiLmRhdGEubGVuZ3RoXCI+XG4gICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgICAgICBbaXRlbVNpemVdPVwidmlydHVhbFNjcm9sbEl0ZW1TaXplXCJcbiAgICAgICAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxuICAgICAgICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXG4gICAgICAgICAgI3RhYmJlZEdyb3VwUGlja2VyVmlydHVhbFNjcm9sbFZpZXdwb3J0PlxuICAgICAgICAgIDxub3ZvLW9wdGlvblxuICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5VGFiLmRhdGFcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIml0ZW1bZGlzcGxheVRhYi5sYWJlbEZpZWxkXVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkOyBvbkl0ZW1Ub2dnbGVkKGl0ZW0pXCJcbiAgICAgICAgICAgIG5vdm9JbmVydD5cbiAgICAgICAgICAgIHt7aXRlbVtkaXNwbGF5VGFiLmxhYmVsRmllbGRdfX1cblxuICAgICAgICAgICAgPCEtLSA8bm92by1jaGVja2JveFxuICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbVtkaXNwbGF5VGFiLmxhYmVsRmllbGRdXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ3NlbGVjdGVkJ1wiXG4gICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSXRlbVRvZ2dsZWQoaXRlbSlcIj5cbiAgICAgICAgICAgIDwvbm92by1jaGVja2JveD4gLS0+XG4gICAgICAgICAgPC9ub3ZvLW9wdGlvbj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICA8L25vdm8tb3B0Z3JvdXA+XG4gICAgICA8ZGl2IGNsYXNzPVwidGFiYmVkLWdyb3VwLXBpY2tlci1lbXB0eS1pdGVtXCIgKm5nSWY9XCIhZGlzcGxheVRhYi5kYXRhLmxlbmd0aCAmJiAoZmlsdGVyVGV4dCB8IGFzeW5jKVwiPlxuICAgICAgICA8aSBjbGFzcz1cInt7IGRpc3BsYXlUYWIuaWNvbiB8fCAnYmhpLXNlYXJjaCcgfX1cIj48L2k+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pdGVtLW1haW4tbWVzc2FnZVwiPnt7IGxhYmVsU2VydmljZS50YWJiZWRHcm91cFBpY2tlckVtcHR5IH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pdGVtLXN1Yi1tZXNzYWdlXCI+e3sgbGFiZWxTZXJ2aWNlLnRhYmJlZEdyb3VwQ2xlYXJTdWdnZXN0aW9uKGRpc3BsYXlUYWIudHlwZUxhYmVsKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbm92by1kcm9wZG93bj4iXX0=