@ethlete/cdk 4.46.1 → 4.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +3 -3
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +3 -3
  9. package/esm2022/lib/components/bracket/components/new-bracket/bracket-new.mjs +284 -124
  10. package/esm2022/lib/components/bracket/components/new-bracket/draw-man.mjs +172 -41
  11. package/esm2022/lib/components/bracket/components/new-bracket/grid-placements.mjs +11 -3
  12. package/esm2022/lib/components/bracket/components/new-bracket/journey-highlight.mjs +18 -0
  13. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-match.component.mjs +3 -3
  14. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket-default-round-header.component.mjs +3 -3
  15. package/esm2022/lib/components/bracket/components/new-bracket/new-bracket.component.mjs +65 -12
  16. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
  17. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
  18. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +3 -3
  19. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +3 -3
  20. package/esm2022/lib/components/button/components/button/button.component.mjs +3 -3
  21. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +3 -3
  22. package/esm2022/lib/components/button/directives/button/button.directive.mjs +3 -3
  23. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
  24. package/esm2022/lib/components/carousel/carousel.component.mjs +3 -3
  25. package/esm2022/lib/components/carousel/carousel.directive.mjs +3 -3
  26. package/esm2022/lib/components/carousel/controls/carousel-item-nav.component.mjs +3 -3
  27. package/esm2022/lib/components/carousel/controls/carousel-item-nav.directive.mjs +3 -3
  28. package/esm2022/lib/components/carousel/controls/carousel-next-button.directive.mjs +3 -3
  29. package/esm2022/lib/components/carousel/controls/carousel-previous-button.directive.mjs +3 -3
  30. package/esm2022/lib/components/carousel/controls/carousel-toggle-auto-play-button.directive.mjs +3 -3
  31. package/esm2022/lib/components/carousel/et-carousel-item.component.mjs +3 -3
  32. package/esm2022/lib/components/carousel/et-carousel-item.directive.mjs +3 -3
  33. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +3 -3
  34. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +3 -3
  35. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +3 -3
  36. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +3 -3
  37. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +3 -3
  38. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
  39. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
  40. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
  41. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
  42. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
  43. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  44. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
  45. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +3 -3
  46. package/esm2022/lib/components/forms/components/input/components/color-input/color-input.component.mjs +3 -3
  47. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +3 -3
  48. package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +3 -3
  49. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
  50. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +3 -3
  51. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
  52. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
  53. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
  54. package/esm2022/lib/components/forms/components/input/components/tel-input/tel-input.component.mjs +3 -3
  55. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
  56. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +3 -3
  57. package/esm2022/lib/components/forms/components/input/components/time-input/time-input.component.mjs +3 -3
  58. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
  59. package/esm2022/lib/components/forms/components/input/directives/color-input/color-input.directive.mjs +3 -3
  60. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +3 -3
  61. package/esm2022/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.mjs +3 -3
  62. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
  63. package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.mjs +3 -3
  64. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
  65. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
  66. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
  67. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.mjs +3 -3
  68. package/esm2022/lib/components/forms/components/input/directives/tel-input/tel-input.directive.mjs +3 -3
  69. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
  70. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
  71. package/esm2022/lib/components/forms/components/input/directives/time-input/time-input.directive.mjs +3 -3
  72. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
  73. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
  74. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  75. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
  76. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
  77. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
  78. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
  79. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -3
  80. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  81. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  82. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
  83. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +3 -3
  84. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
  85. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -3
  86. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  87. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
  88. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +3 -3
  89. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +3 -3
  90. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +3 -3
  91. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +3 -3
  92. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +3 -3
  93. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +3 -3
  94. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
  95. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
  96. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
  97. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -3
  98. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +3 -3
  99. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
  100. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
  101. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
  102. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
  103. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +3 -3
  104. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  105. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
  106. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +3 -3
  107. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
  108. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +3 -3
  109. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  110. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +3 -3
  111. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +3 -3
  112. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
  115. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
  116. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
  117. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
  118. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  126. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  127. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  128. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
  129. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  130. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  131. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  132. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  133. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  134. package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
  135. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  136. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
  137. package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
  138. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  139. package/esm2022/lib/components/icons/times-icon/times-icon.component.mjs +3 -3
  140. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +3 -3
  141. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  142. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
  143. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  144. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  145. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  146. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
  147. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
  148. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +3 -3
  149. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
  150. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  151. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  152. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  153. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  154. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +3 -3
  155. package/esm2022/lib/components/overlay/components/menu/components/menu/menu.component.mjs +3 -3
  156. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.mjs +3 -3
  157. package/esm2022/lib/components/overlay/components/menu/components/menu-container/menu-container.component.mjs +3 -3
  158. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.mjs +3 -3
  159. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.mjs +3 -3
  160. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.mjs +3 -3
  161. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.mjs +3 -3
  162. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.mjs +3 -3
  163. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.mjs +3 -3
  164. package/esm2022/lib/components/overlay/components/menu/directives/menu-search-template/menu-search-template.directive.mjs +3 -3
  165. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.mjs +3 -3
  166. package/esm2022/lib/components/overlay/components/menu-deprecated/context-menu-trigger.mjs +6 -6
  167. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-aim.mjs +6 -6
  168. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-bar.mjs +3 -3
  169. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-base.mjs +3 -3
  170. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-group.mjs +3 -3
  171. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.mjs +3 -3
  172. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-radio.mjs +3 -3
  173. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-selectable.mjs +3 -3
  174. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item.mjs +3 -3
  175. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-module.mjs +4 -4
  176. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-stack.mjs +3 -3
  177. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger-base.mjs +3 -3
  178. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger.mjs +3 -3
  179. package/esm2022/lib/components/overlay/components/menu-deprecated/menu.mjs +3 -3
  180. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +3 -3
  181. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-back-or-close/overlay-back-or-close.directive.mjs +3 -3
  182. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.mjs +3 -3
  183. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +3 -3
  184. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.mjs +3 -3
  185. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.mjs +3 -3
  186. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header-template/overlay-header-template.directive.mjs +3 -3
  187. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-main/overlay-main.directive.mjs +3 -3
  188. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-route-header-template-outlet/overlay-route-header-template-outlet.component.mjs +3 -3
  189. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-link/overlay-router-link.directive.mjs +3 -3
  190. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet/overlay-router-outlet.component.mjs +3 -3
  191. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-router-outlet-disabled-template/overlay-router-outlet-disabled-template.directive.mjs +3 -3
  192. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template/overlay-shared-route-template.directive.mjs +3 -3
  193. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-shared-route-template-outlet/overlay-shared-route-template-outlet.component.mjs +3 -3
  194. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar/overlay-sidebar.component.mjs +3 -3
  195. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-sidebar-page/overlay-sidebar-page.component.mjs +3 -3
  196. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +3 -3
  197. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +3 -3
  198. package/esm2022/lib/components/overlay/components/overlay/utils/filter-overlay.mjs +3 -3
  199. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-handler-link.directive.mjs +3 -3
  200. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +3 -3
  201. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +3 -3
  202. package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.mjs +3 -3
  203. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +3 -3
  204. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +3 -3
  205. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +3 -3
  206. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +3 -3
  207. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +3 -3
  208. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +3 -3
  209. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  210. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  211. package/esm2022/lib/components/picture/components/picture/picture.component.mjs +3 -3
  212. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +3 -3
  213. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
  214. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +3 -3
  215. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +3 -3
  216. package/esm2022/lib/components/scrollable/components/scrollable-placeholder/scrollable-placeholder.component.mjs +3 -3
  217. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.mjs +3 -3
  218. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.mjs +3 -3
  219. package/esm2022/lib/components/scrollable/directives/scrollable-loading-template/scrollable-loading-template.directive.mjs +3 -3
  220. package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-item-template/scrollable-placeholder-item-template.directive.mjs +3 -3
  221. package/esm2022/lib/components/scrollable/directives/scrollable-placeholder-overlay-template/scrollable-placeholder-overlay-template.directive.mjs +3 -3
  222. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
  223. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  224. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +3 -3
  225. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
  226. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  227. package/esm2022/lib/components/table/components/table/table.component.mjs +3 -3
  228. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  229. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  230. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  231. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  232. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  233. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  234. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  235. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  236. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  237. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  238. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  239. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  240. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  241. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  242. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  243. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  244. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
  245. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
  246. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +3 -3
  247. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +3 -3
  248. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
  249. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
  250. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  251. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
  252. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +3 -3
  253. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  254. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
  255. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
  256. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  257. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
  258. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +3 -3
  259. package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
  260. package/fesm2022/ethlete-cdk.mjs +1314 -941
  261. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  262. package/lib/components/bracket/components/new-bracket/bracket-new.d.ts +64 -4
  263. package/lib/components/bracket/components/new-bracket/draw-man.d.ts +16 -2
  264. package/lib/components/bracket/components/new-bracket/grid-placements.d.ts +7 -0
  265. package/lib/components/bracket/components/new-bracket/journey-highlight.d.ts +2 -0
  266. package/lib/components/bracket/components/new-bracket/new-bracket.component.d.ts +15 -3
  267. package/package.json +1 -1
@@ -1,66 +1,197 @@
1
- const LINE_WIDTH = 1;
2
- const path = (d) => `<path d="${d}" stroke="red" fill="none" stroke-width="${LINE_WIDTH}" />`;
3
- export const drawMan = (items, roundRelations, dimensions) => {
4
- const { columnWidth, matchHeight, rowGap, columnGap, roundHeaderHeight, gridDefinitions } = dimensions;
1
+ import { BRACKET_ROUND_MIRROR_TYPE, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, FIRST_ROUNDS_TYPE, } from './bracket-new';
2
+ const path = (d, options) => `<path d="${d.replace(/\s+/g, ' ').trim()}" stroke="currentColor" fill="none" stroke-width="${options.width}" stroke-dasharray="${options.dashArray}" stroke-dashoffset="${options.dashOffset}" class="${options.className}" />`;
3
+ const curve = (from, to, direction, options) => {
4
+ const fromInline = from.inline.end;
5
+ const toInline = to.inline.start;
6
+ const toBlock = to.block.center;
7
+ const fromBlock = from.block.center;
8
+ const startingCurveAmount = options.lineStartingCurveAmount;
9
+ const endingCurveAmount = options.lineEndingCurveAmount;
10
+ const totalSpace = toInline - fromInline;
11
+ const totalSpaceMinusCurve = totalSpace - startingCurveAmount - endingCurveAmount;
12
+ const lineLength = totalSpaceMinusCurve / 2;
13
+ const straightLeftEnd = fromInline + lineLength;
14
+ const straightRightStart = toInline - lineLength;
15
+ // first 90 degree curve down
16
+ const firstCurveStartX = straightLeftEnd;
17
+ const firstCurveEndX = straightLeftEnd + startingCurveAmount;
18
+ const firstCurveEndY = direction === 'down' ? fromBlock + startingCurveAmount : fromBlock - startingCurveAmount;
19
+ const firstCurveBezierX = straightLeftEnd + startingCurveAmount;
20
+ const firstCurveBezierY = fromBlock;
21
+ // second 90 degree curve to the right
22
+ const secondCurveStartY = direction === 'down' ? toBlock - endingCurveAmount : toBlock + endingCurveAmount;
23
+ const secondCurveEndX = straightRightStart;
24
+ const secondCurveEndY = toBlock;
25
+ const secondCurveBezierX = straightRightStart - endingCurveAmount;
26
+ const secondCurveBezierY = toBlock;
27
+ const pathStr = `
28
+ M ${fromInline} ${fromBlock}
29
+ H ${firstCurveStartX}
30
+ Q ${firstCurveBezierX} ${firstCurveBezierY}, ${firstCurveEndX} ${firstCurveEndY}
31
+ V ${secondCurveStartY}
32
+ Q ${secondCurveBezierX} ${secondCurveBezierY}, ${secondCurveEndX} ${secondCurveEndY}
33
+ H ${toInline}
34
+ `;
35
+ return path(pathStr, options.path);
36
+ };
37
+ const curveInverted = (from, to, direction, options) => {
38
+ const fromInline = from.inline.start;
39
+ const fromBlock = from.block.center;
40
+ const toInline = to.inline.end;
41
+ const toBlock = to.block.center;
42
+ const startingCurveAmount = options.lineStartingCurveAmount;
43
+ const endingCurveAmount = options.lineEndingCurveAmount;
44
+ const totalSpace = fromInline - toInline;
45
+ const totalSpaceMinusCurve = totalSpace - startingCurveAmount - endingCurveAmount;
46
+ const lineLength = totalSpaceMinusCurve / 2;
47
+ const straightRightEnd = fromInline - lineLength;
48
+ const straightLeftStart = toInline + lineLength;
49
+ const firstCurveStartX = straightRightEnd;
50
+ const firstCurveEndX = straightRightEnd - startingCurveAmount;
51
+ const firstCurveEndY = direction === 'down' ? fromBlock + startingCurveAmount : fromBlock - startingCurveAmount;
52
+ const firstCurveBezierX = straightRightEnd - startingCurveAmount;
53
+ const firstCurveBezierY = fromBlock;
54
+ // second 90 degree curve to the right
55
+ const secondCurveStartY = direction === 'down' ? toBlock - endingCurveAmount : toBlock + endingCurveAmount;
56
+ const secondCurveEndX = straightLeftStart;
57
+ const secondCurveEndY = toBlock;
58
+ const secondCurveBezierX = straightLeftStart + endingCurveAmount;
59
+ const secondCurveBezierY = toBlock;
60
+ const pathStr = `
61
+ M ${fromInline} ${fromBlock}
62
+ H ${firstCurveStartX}
63
+ Q ${firstCurveBezierX} ${firstCurveBezierY}, ${firstCurveEndX} ${firstCurveEndY}
64
+ V ${secondCurveStartY}
65
+ Q ${secondCurveBezierX} ${secondCurveBezierY}, ${secondCurveEndX} ${secondCurveEndY}
66
+ H ${toInline}
67
+ `;
68
+ return path(pathStr, options.path);
69
+ };
70
+ const line = (from, to, options) => {
71
+ return path(`M ${from.inline.end} ${from.block.center} L ${to.inline.start} ${to.block.center}`, options.path);
72
+ };
73
+ const getMatchPosition = (roundItem, matchId, staticMeasurements) => {
74
+ if (!roundItem)
75
+ throw new Error('Item is missing');
76
+ if (!matchId)
77
+ throw new Error('Match is missing');
78
+ const match = roundItem.items.get(matchId);
79
+ if (!match || match.type !== 'match')
80
+ throw new Error('Match is missing');
81
+ const matchHalf = staticMeasurements.matchHeight / 2;
82
+ const roundFactor = staticMeasurements.baseRoundMatchCount / roundItem.roundRelation.currentRound.matchCount;
83
+ const remainingRowGapCount = roundItem.roundRelation.currentRound.matchCount - 1;
84
+ const matchIncludedRowGapTotal = staticMeasurements.baseRoundMatchCount - 1 - remainingRowGapCount;
85
+ const matchIncludedRowGapPerMatch = matchIncludedRowGapTotal / roundItem.roundRelation.currentRound.matchCount;
86
+ const matchRoundItemHeight = staticMeasurements.matchHeight * roundFactor + matchIncludedRowGapPerMatch * staticMeasurements.rowGap;
87
+ const matchesAbove = match.matchRelation.currentMatch.indexInRound;
88
+ const rowOffset = matchesAbove * staticMeasurements.rowGap + matchesAbove * matchRoundItemHeight;
89
+ const matchRowOffset = (matchRoundItemHeight - staticMeasurements.matchHeight) / 2;
90
+ const blockStart = rowOffset + matchRowOffset + staticMeasurements.baseOffsetY + staticMeasurements.doubleEliminationMergeOffset;
91
+ const block = {
92
+ start: blockStart,
93
+ end: blockStart + staticMeasurements.matchHeight,
94
+ center: blockStart + matchHalf,
95
+ };
96
+ const inlineStart = (roundItem.columnStart - 1) * staticMeasurements.columnWidth +
97
+ (roundItem.columnStart - 1) * staticMeasurements.columnGap;
98
+ const inline = {
99
+ start: inlineStart,
100
+ end: inlineStart + staticMeasurements.columnWidth,
101
+ center: inlineStart + staticMeasurements.columnWidth / 2,
102
+ };
103
+ return { inline, block };
104
+ };
105
+ export const drawMan = (items, firstRounds, dimensions) => {
106
+ const { columnWidth, matchHeight, rowGap, columnGap, roundHeaderHeight } = dimensions;
5
107
  const roundHeaderRowGap = roundHeaderHeight ? rowGap : 0;
6
108
  const baseOffsetY = roundHeaderHeight + roundHeaderRowGap;
7
- const columnGapCenter = columnGap / 2;
8
- const totalHeight = (gridDefinitions.rowCount - 1) * matchHeight + (gridDefinitions.rowCount - 1) * rowGap + roundHeaderHeight; // TODO: This is not correct in double elimination
9
109
  const svgParts = [];
10
- // a nothing to one draws nothing
11
- // a one to nothing draws nothing
12
- // a one to one draws a line
13
- // a one to two draws a line that splits into in the middle
14
- // a two to one draws two lines that merge into one in the middle
15
- // WE ONLY EVER DRAW THE LEFT SIDE (on-to, nothing-to, two-to)
16
110
  for (const round of items.values()) {
17
- const rows = round.roundRelation.currentRound.matchCount;
18
- const rowGaps = rows - 1;
19
- const rowHeight = (totalHeight - baseOffsetY) / rows - rowGaps * rowGap;
20
- const rowWhitespace = (rowHeight - matchHeight) / 2;
21
- const matchHeightOffset = rowWhitespace + matchHeight / 2; // the vertical middle of a match in this row
22
111
  for (const item of round.items.values()) {
23
112
  if (item.type === 'round')
24
113
  continue; // we don't draw lines for round headers
114
+ let baseRoundMatchCount = null;
115
+ let doubleEliminationMergeOffset = 0;
116
+ if (firstRounds.type === FIRST_ROUNDS_TYPE.SINGLE) {
117
+ baseRoundMatchCount = firstRounds.first.matchCount;
118
+ }
119
+ else {
120
+ if (item.roundRelation.currentRound.type === DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.UPPER_BRACKET) {
121
+ baseRoundMatchCount = firstRounds.upper.matchCount;
122
+ }
123
+ else if (item.roundRelation.currentRound.type === DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.LOWER_BRACKET) {
124
+ baseRoundMatchCount = firstRounds.lower.matchCount;
125
+ }
126
+ else {
127
+ baseRoundMatchCount = firstRounds.upper.matchCount + firstRounds.lower.matchCount;
128
+ }
129
+ }
130
+ if (item.roundRelation.currentRound.type === DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE.LOWER_BRACKET) {
131
+ doubleEliminationMergeOffset = roundHeaderHeight + roundHeaderRowGap;
132
+ // TODO:
133
+ // baseOffsetY = baseOffsetY * 2 (2 round headers and gaps) + (firstRounds.upper.matchCount * matchHeight) + (firstRounds.upper.matchCount - 1 * rowGap)
134
+ // baseOffsetY
135
+ }
136
+ const staticMeasurements = {
137
+ baseOffsetY,
138
+ baseRoundMatchCount,
139
+ columnGap,
140
+ columnWidth,
141
+ doubleEliminationMergeOffset,
142
+ matchHeight,
143
+ rowGap,
144
+ };
145
+ const currentMatchParticipantsShortIds = [
146
+ item.matchRelation.currentMatch.home?.shortId,
147
+ item.matchRelation.currentMatch.away?.shortId,
148
+ ]
149
+ .filter((id) => !!id)
150
+ .join(' ');
151
+ const pathOptions = { ...dimensions.path, className: currentMatchParticipantsShortIds };
152
+ const currentMatchPosition = getMatchPosition(round, item.matchRelation.currentMatch.id, staticMeasurements);
153
+ // We only draw the left side of the match relation
25
154
  switch (item.matchRelation.type) {
26
155
  case 'nothing-to-one': {
27
156
  continue;
28
157
  }
29
158
  case 'one-to-nothing':
30
159
  case 'one-to-one': {
160
+ const previousMatchPosition = getMatchPosition(items.get(item.matchRelation.previousRound.id), item.matchRelation.previousMatch.id, staticMeasurements);
31
161
  // draw a straight line
32
- const previousRound = items.get(item.matchRelation.previousRound.id);
33
- if (!previousRound)
34
- throw new Error('Previous round or match is missing');
35
- const previousMatch = previousRound.items.get(item.matchRelation.previousMatch.id);
36
- if (!previousMatch || previousMatch.type !== 'match')
37
- throw new Error('Previous round or match is missing');
38
- const previousRoundRows = previousRound.roundRelation.currentRound.matchCount;
39
- const previousRoundRowGaps = previousRoundRows - 1;
40
- const previousRoundRowHeight = (totalHeight - baseOffsetY) / previousRoundRows - previousRoundRowGaps * rowGap;
41
- const previousRoundRowWhitespace = (previousRoundRowHeight - matchHeight) / 2;
42
- const previousRoundMatchHeightOffset = previousRoundRowWhitespace + matchHeight / 2;
43
- const fromX = previousRound.columnStart * columnWidth + (round.columnStart - 2) * columnGap;
44
- const toX = (round.columnStart - 1) * columnWidth + (round.columnStart - 1) * columnGap;
45
- const fromY = previousMatch.matchRelation.currentMatch.indexInRound * previousRoundRowWhitespace +
46
- previousMatch.matchRelation.currentMatch.indexInRound * rowGap +
47
- baseOffsetY +
48
- previousRoundMatchHeightOffset;
49
- const toY = item.matchRelation.currentMatch.indexInRound * rowWhitespace +
50
- item.matchRelation.currentMatch.indexInRound * rowGap +
51
- baseOffsetY +
52
- matchHeightOffset;
53
- svgParts.push(path(`M ${fromX} ${fromY} L ${toX} ${toY}`));
162
+ svgParts.push(line(previousMatchPosition, currentMatchPosition, { path: pathOptions }));
54
163
  break;
55
164
  }
56
165
  case 'two-to-nothing':
57
166
  case 'two-to-one': {
167
+ const previousUpper = getMatchPosition(items.get(item.matchRelation.previousUpperRound.id), item.matchRelation.previousUpperMatch.id, staticMeasurements);
168
+ const previousLower = getMatchPosition(items.get(item.matchRelation.previousLowerRound.id), item.matchRelation.previousLowerMatch.id, staticMeasurements);
169
+ const curveOptions = {
170
+ ...dimensions.curve,
171
+ path: { ...dimensions.path, className: '' },
172
+ };
173
+ const curveFn = item.roundRelation.currentRound.mirrorRoundType === BRACKET_ROUND_MIRROR_TYPE.RIGHT ? curveInverted : curve;
58
174
  // draw two lines that merge into one in the middle
175
+ svgParts.push(curveFn(previousUpper, currentMatchPosition, 'down', {
176
+ ...curveOptions,
177
+ path: { ...curveOptions.path, className: item.matchRelation.previousUpperMatch.winner?.shortId || '' },
178
+ }));
179
+ svgParts.push(curveFn(previousLower, currentMatchPosition, 'up', {
180
+ ...curveOptions,
181
+ path: { ...curveOptions.path, className: item.matchRelation.previousLowerMatch.winner?.shortId || '' },
182
+ }));
183
+ if (item.matchRelation.currentRound.mirrorRoundType === BRACKET_ROUND_MIRROR_TYPE.RIGHT &&
184
+ item.matchRelation.type === 'two-to-one' &&
185
+ item.matchRelation.nextRound.mirrorRoundType === null) {
186
+ // draw a straight line for the special case of connecting the final match to the mirrored semi final match
187
+ const next = getMatchPosition(items.get(item.matchRelation.nextRound.id), item.matchRelation.nextMatch.id, staticMeasurements);
188
+ svgParts.push(line(next, currentMatchPosition, { path: pathOptions }));
189
+ }
59
190
  break;
60
191
  }
61
192
  }
62
193
  }
63
194
  }
64
- return svgParts.join(' /n');
195
+ return svgParts.join('');
65
196
  };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1tYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L2RyYXctbWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLElBQUksR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLDRDQUE0QyxVQUFVLE1BQU0sQ0FBQztBQUV0RyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FDckIsS0FBd0UsRUFDeEUsY0FBNkQsRUFDN0QsVUFBNkIsRUFDN0IsRUFBRTtJQUNGLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3ZHLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBRTFELE1BQU0sZUFBZSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsa0RBQWtEO0lBQ2hLLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUU5QixpQ0FBaUM7SUFDakMsaUNBQWlDO0lBQ2pDLDRCQUE0QjtJQUM1QiwyREFBMkQ7SUFDM0QsaUVBQWlFO0lBRWpFLDhEQUE4RDtJQUU5RCxLQUFLLE1BQU0sS0FBSyxJ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QkFDckQsV0FBVzt3QkFDWCxpQkFBaUIsQ0FBQztvQkFFcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRTNELE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLGdCQUFnQixDQUFDO2dCQUN0QixLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ2xCLG1EQUFtRDtvQkFFbkQsTUFBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXRSb3VuZElkLCBCcmFja2V0Um91bmRSZWxhdGlvbnMgfSBmcm9tICcuL2JyYWNrZXQtbmV3JztcbmltcG9ydCB7IEJyYWNrZXRHcmlkRGVmaW5pdGlvbnMgfSBmcm9tICcuL2dyaWQtZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgQnJhY2tldEdyaWRSb3VuZEl0ZW0gfSBmcm9tICcuL2dyaWQtcGxhY2VtZW50cyc7XG5cbmV4cG9ydCB0eXBlIERyYXdNYW5EaW1lbnNpb25zID0ge1xuICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICBtYXRjaEhlaWdodDogbnVtYmVyO1xuICByb3VuZEhlYWRlckhlaWdodDogbnVtYmVyO1xuICBjb2x1bW5HYXA6IG51bWJlcjtcbiAgcm93R2FwOiBudW1iZXI7XG4gIGdyaWREZWZpbml0aW9uczogQnJhY2tldEdyaWREZWZpbml0aW9ucztcbn07XG5cbmNvbnN0IExJTkVfV0lEVEggPSAxO1xuXG5jb25zdCBwYXRoID0gKGQ6IHN0cmluZykgPT4gYDxwYXRoIGQ9XCIke2R9XCIgc3Ryb2tlPVwicmVkXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIke0xJTkVfV0lEVEh9XCIgLz5gO1xuXG5leHBvcnQgY29uc3QgZHJhd01hbiA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgaXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+LFxuICByb3VuZFJlbGF0aW9uczogQnJhY2tldFJvdW5kUmVsYXRpb25zPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBkaW1lbnNpb25zOiBEcmF3TWFuRGltZW5zaW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbHVtbldpZHRoLCBtYXRjaEhlaWdodCwgcm93R2FwLCBjb2x1bW5HYXAsIHJvdW5kSGVhZGVySGVpZ2h0LCBncmlkRGVmaW5pdGlvbnMgfSA9IGRpbWVuc2lvbnM7XG4gIGNvbnN0IHJvdW5kSGVhZGVyUm93R2FwID0gcm91bmRIZWFkZXJIZWlnaHQgPyByb3dHYXAgOiAwO1xuICBjb25zdCBiYXNlT2Zmc2V0WSA9IHJvdW5kSGVhZGVySGVpZ2h0ICsgcm91bmRIZWFkZXJSb3dHYXA7XG5cbiAgY29uc3QgY29sdW1uR2FwQ2VudGVyID0gY29sdW1uR2FwIC8gMjtcbiAgY29uc3QgdG90YWxIZWlnaHQgPVxuICAgIChncmlkRGVmaW5pdGlvbnMucm93Q291bnQgLSAxKSAqIG1hdGNoSGVpZ2h0ICsgKGdyaWREZWZpbml0aW9ucy5yb3dDb3VudCAtIDEpICogcm93R2FwICsgcm91bmRIZWFkZXJIZWlnaHQ7IC8vIFRPRE86IFRoaXMgaXMgbm90IGNvcnJlY3QgaW4gZG91YmxlIGVsaW1pbmF0aW9uXG4gIGNvbnN0IHN2Z1BhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIGEgbm90aGluZyB0byBvbmUgZHJhd3Mgbm90aGluZ1xuICAvLyBhIG9uZSB0byBub3RoaW5nIGRyYXdzIG5vdGhpbmdcbiAgLy8gYSBvbmUgdG8gb25lIGRyYXdzIGEgbGluZVxuICAvLyBhIG9uZSB0byB0d28gZHJhd3MgYSBsaW5lIHRoYXQgc3BsaXRzIGludG8gaW4gdGhlIG1pZGRsZVxuICAvLyBhIHR3byB0byBvbmUgZHJhd3MgdHdvIGxpbmVzIHRoYXQgbWVyZ2UgaW50byBvbmUgaW4gdGhlIG1pZGRsZVxuXG4gIC8vIFdFIE9OTFkgRVZFUiBEUkFXIFRIRSBMRUZUIFNJREUgKG9uLXRvLCBub3RoaW5nLXRvLCB0d28tdG8pXG5cbiAgZm9yIChjb25zdCByb3VuZCBvZiBpdGVtcy52YWx1ZXMoKSkge1xuICAgIGNvbnN0IHJvd3MgPSByb3VuZC5yb3VuZFJlbGF0aW9uLmN1cnJlbnRSb3VuZC5tYXRjaENvdW50O1xuICAgIGNvbnN0IHJvd0dhcHMgPSByb3dzIC0gMTtcbiAgICBjb25zdCByb3dIZWlnaHQgPSAodG90YWxIZWlnaHQgLSBiYXNlT2Zmc2V0WSkgLyByb3dzIC0gcm93R2FwcyAqIHJvd0dhcDtcbiAgICBjb25zdCByb3dXaGl0ZXNwYWNlID0gKHJvd0hlaWdodCAtIG1hdGNoSGVpZ2h0KSAvIDI7XG4gICAgY29uc3QgbWF0Y2hIZWlnaHRPZmZzZXQgPSByb3dXaGl0ZXNwYWNlICsgbWF0Y2hIZWlnaHQgLyAyOyAvLyB0aGUgdmVydGljYWwgbWlkZGxlIG9mIGEgbWF0Y2ggaW4gdGhpcyByb3dcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiByb3VuZC5pdGVtcy52YWx1ZXMoKSkge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3JvdW5kJykgY29udGludWU7IC8vIHdlIGRvbid0IGRyYXcgbGluZXMgZm9yIHJvdW5kIGhlYWRlcnNcblxuICAgICAgc3dpdGNoIChpdGVtLm1hdGNoUmVsYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdub3RoaW5nLXRvLW9uZSc6IHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvbmUtdG8tbm90aGluZyc6XG4gICAgICAgIGNhc2UgJ29uZS10by1vbmUnOiB7XG4gICAgICAgICAgLy8gZHJhdyBhIHN0cmFpZ2h0IGxpbmVcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kID0gaXRlbXMuZ2V0KGl0ZW0ubWF0Y2hSZWxhdGlvbi5wcmV2aW91c1JvdW5kLmlkKTtcbiAgICAgICAgICBpZiAoIXByZXZpb3VzUm91bmQpIHRocm93IG5ldyBFcnJvcignUHJldmlvdXMgcm91bmQgb3IgbWF0Y2ggaXMgbWlzc2luZycpO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzTWF0Y2ggPSBwcmV2aW91c1JvdW5kLml0ZW1zLmdldChpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNNYXRjaC5pZCk7XG4gICAgICAgICAgaWYgKCFwcmV2aW91c01hdGNoIHx8IHByZXZpb3VzTWF0Y2gudHlwZSAhPT0gJ21hdGNoJykgdGhyb3cgbmV3IEVycm9yKCdQcmV2aW91cyByb3VuZCBvciBtYXRjaCBpcyBtaXNzaW5nJyk7XG5cbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kUm93cyA9IHByZXZpb3VzUm91bmQucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQubWF0Y2hDb3VudDtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1JvdW5kUm93R2FwcyA9IHByZXZpb3VzUm91bmRSb3dzIC0gMTtcblxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRSb3dIZWlnaHQgPVxuICAgICAgICAgICAgKHRvdGFsSGVpZ2h0IC0gYmFzZU9mZnNldFkpIC8gcHJldmlvdXNSb3VuZFJvd3MgLSBwcmV2aW91c1JvdW5kUm93R2FwcyAqIHJvd0dhcDtcblxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlID0gKHByZXZpb3VzUm91bmRSb3dIZWlnaHQgLSBtYXRjaEhlaWdodCkgLyAyO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzUm91bmRNYXRjaEhlaWdodE9mZnNldCA9IHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlICsgbWF0Y2hIZWlnaHQgLyAyO1xuXG4gICAgICAgICAgY29uc3QgZnJvbVggPSBwcmV2aW91c1JvdW5kLmNvbHVtblN0YXJ0ICogY29sdW1uV2lkdGggKyAocm91bmQuY29sdW1uU3RhcnQgLSAyKSAqIGNvbHVtbkdhcDtcbiAgICAgICAgICBjb25zdCB0b1ggPSAocm91bmQuY29sdW1uU3RhcnQgLSAxKSAqIGNvbHVtbldpZHRoICsgKHJvdW5kLmNvbHVtblN0YXJ0IC0gMSkgKiBjb2x1bW5HYXA7XG5cbiAgICAgICAgICBjb25zdCBmcm9tWSA9XG4gICAgICAgICAgICBwcmV2aW91c01hdGNoLm1hdGNoUmVsYXRpb24uY3VycmVudE1hdGNoLmluZGV4SW5Sb3VuZCAqIHByZXZpb3VzUm91bmRSb3dXaGl0ZXNwYWNlICtcbiAgICAgICAgICAgIHByZXZpb3VzTWF0Y2gubWF0Y2hSZWxhdGlvbi5jdXJyZW50TWF0Y2guaW5kZXhJblJvdW5kICogcm93R2FwICtcbiAgICAgICAgICAgIGJhc2VPZmZzZXRZICtcbiAgICAgICAgICAgIHByZXZpb3VzUm91bmRNYXRjaEhlaWdodE9mZnNldDtcbiAgICAgICAgICBjb25zdCB0b1kgPVxuICAgICAgICAgICAgaXRlbS5tYXRjaFJlbGF0aW9uLmN1cnJlbnRNYXRjaC5pbmRleEluUm91bmQgKiByb3dXaGl0ZXNwYWNlICtcbiAgICAgICAgICAgIGl0ZW0ubWF0Y2hSZWxhdGlvbi5jdXJyZW50TWF0Y2guaW5kZXhJblJvdW5kICogcm93R2FwICtcbiAgICAgICAgICAgIGJhc2VPZmZzZXRZICtcbiAgICAgICAgICAgIG1hdGNoSGVpZ2h0T2Zmc2V0O1xuXG4gICAgICAgICAgc3ZnUGFydHMucHVzaChwYXRoKGBNICR7ZnJvbVh9ICR7ZnJvbVl9IEwgJHt0b1h9ICR7dG9ZfWApKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3R3by10by1ub3RoaW5nJzpcbiAgICAgICAgY2FzZSAndHdvLXRvLW9uZSc6IHtcbiAgICAgICAgICAvLyBkcmF3IHR3byBsaW5lcyB0aGF0IG1lcmdlIGludG8gb25lIGluIHRoZSBtaWRkbGVcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN2Z1BhcnRzLmpvaW4oJyAvbicpO1xufTtcbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1tYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L2RyYXctbWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx5QkFBeUIsRUFHekIscUNBQXFDLEVBQ3JDLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQXNCdkIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFTLEVBQUUsT0FBb0IsRUFBRSxFQUFFLENBQy9DLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLHFEQUFxRCxPQUFPLENBQUMsS0FBSyx1QkFBdUIsT0FBTyxDQUFDLFNBQVMsd0JBQXdCLE9BQU8sQ0FBQyxVQUFVLFlBQVksT0FBTyxDQUFDLFNBQVMsTUFBTSxDQUFDO0FBUW5PLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBcUIsRUFBRSxFQUFtQixFQUFFLFNBQXdCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQzVHLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ25DLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBRWpDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRXBDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDO0lBQzVELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDO0lBRXhELE1BQU0sVUFBVSxHQUFHLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDekMsTUFBTSxvQkFBb0IsR0FB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SVJST1JfVFlQRSxcbiAgQnJhY2tldE1hdGNoSWQsXG4gIEJyYWNrZXRSb3VuZElkLFxuICBET1VCTEVfRUxJTUlOQVRJT05fQlJBQ0tFVF9ST1VORF9UWVBFLFxuICBGSVJTVF9ST1VORFNfVFlQRSxcbiAgRmlyc3RSb3VuZHMsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgQnJhY2tldEdyaWREZWZpbml0aW9ucyB9IGZyb20gJy4vZ3JpZC1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBCcmFja2V0R3JpZFJvdW5kSXRlbSB9IGZyb20gJy4vZ3JpZC1wbGFjZW1lbnRzJztcblxuZXhwb3J0IHR5cGUgRHJhd01hbkRpbWVuc2lvbnMgPSB7XG4gIGNvbHVtbldpZHRoOiBudW1iZXI7XG4gIG1hdGNoSGVpZ2h0OiBudW1iZXI7XG4gIHJvdW5kSGVhZGVySGVpZ2h0OiBudW1iZXI7XG4gIGNvbHVtbkdhcDogbnVtYmVyO1xuICByb3dHYXA6IG51bWJlcjtcbiAgZ3JpZERlZmluaXRpb25zOiBCcmFja2V0R3JpZERlZmluaXRpb25zO1xuICBwYXRoOiBPbWl0PFBhdGhPcHRpb25zLCAnY2xhc3NOYW1lJz47XG4gIGN1cnZlOiBPbWl0PEN1cnZlT3B0aW9ucywgJ3BhdGgnIHwgJ2ludmVydGVkJz47XG59O1xuXG50eXBlIFBhdGhPcHRpb25zID0ge1xuICB3aWR0aDogbnVtYmVyO1xuICBkYXNoQXJyYXk6IG51bWJlcjtcbiAgZGFzaE9mZnNldDogbnVtYmVyO1xuICBjbGFzc05hbWU6IHN0cmluZztcbn07XG5cbmNvbnN0IHBhdGggPSAoZDogc3RyaW5nLCBvcHRpb25zOiBQYXRoT3B0aW9ucykgPT5cbiAgYDxwYXRoIGQ9XCIke2QucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKX1cIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIiR7b3B0aW9ucy53aWR0aH1cIiBzdHJva2UtZGFzaGFycmF5PVwiJHtvcHRpb25zLmRhc2hBcnJheX1cIiBzdHJva2UtZGFzaG9mZnNldD1cIiR7b3B0aW9ucy5kYXNoT2Zmc2V0fVwiIGNsYXNzPVwiJHtvcHRpb25zLmNsYXNzTmFtZX1cIiAvPmA7XG5cbnR5cGUgQ3VydmVPcHRpb25zID0ge1xuICBsaW5lU3RhcnRpbmdDdXJ2ZUFtb3VudDogbnVtYmVyO1xuICBsaW5lRW5kaW5nQ3VydmVBbW91bnQ6IG51bWJlcjtcbiAgcGF0aDogUGF0aE9wdGlvbnM7XG59O1xuXG5jb25zdCBjdXJ2ZSA9IChmcm9tOiBCcmFja2V0UG9zaXRpb24sIHRvOiBCcmFja2V0UG9zaXRpb24sIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJywgb3B0aW9uczogQ3VydmVPcHRpb25zKSA9PiB7XG4gIGNvbnN0IGZyb21JbmxpbmUgPSBmcm9tLmlubGluZS5lbmQ7XG4gIGNvbnN0IHRvSW5saW5lID0gdG8uaW5saW5lLnN0YXJ0O1xuXG4gIGNvbnN0IHRvQmxvY2sgPSB0by5ibG9jay5jZW50ZXI7XG4gIGNvbnN0IGZyb21CbG9jayA9IGZyb20uYmxvY2suY2VudGVyO1xuXG4gIGNvbnN0IHN0YXJ0aW5nQ3VydmVBbW91bnQgPSBvcHRpb25zLmxpbmVTdGFydGluZ0N1cnZlQW1vdW50O1xuICBjb25zdCBlbmRpbmdDdXJ2ZUFtb3VudCA9IG9wdGlvbnMubGluZUVuZGluZ0N1cnZlQW1vdW50O1xuXG4gIGNvbnN0IHRvdGFsU3BhY2UgPSB0b0lubGluZSAtIGZyb21JbmxpbmU7XG4gIGNvbnN0IHRvdGFsU3BhY2VNaW51c0N1cnZlID0gdG90YWxTcGFjZSAtIHN0YXJ0aW5nQ3VydmVBbW91bnQgLSBlbmRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3QgbGluZUxlbmd0aCA9IHRvdGFsU3BhY2VNaW51c0N1cnZlIC8gMjtcblxuICBjb25zdCBzdHJhaWdodExlZnRFbmQgPSBmcm9tSW5saW5lICsgbGluZUxlbmd0aDtcbiAgY29uc3Qgc3RyYWlnaHRSaWdodFN0YXJ0ID0gdG9JbmxpbmUgLSBsaW5lTGVuZ3RoO1xuICAvLyBmaXJzdCA5MCBkZWdyZWUgY3VydmUgZG93blxuICBjb25zdCBmaXJzdEN1cnZlU3RhcnRYID0gc3RyYWlnaHRMZWZ0RW5kO1xuICBjb25zdCBmaXJzdEN1cnZlRW5kWCA9IHN0cmFpZ2h0TGVmdEVuZCArIHN0YXJ0aW5nQ3VydmVBbW91bnQ7XG4gIGNvbnN0IGZpcnN0Q3VydmVFbmRZID0gZGlyZWN0aW9uID09PSAnZG93bicgPyBmcm9tQmxvY2sgKyBzdGFydGluZ0N1cnZlQW1vdW50IDogZnJvbUJsb2NrIC0gc3RhcnRpbmdDdXJ2ZUFtb3VudDtcblxuICBjb25zdCBmaXJzdEN1cnZlQmV6aWVyWCA9IHN0cmFpZ2h0TGVmdEVuZCArIHN0YXJ0aW5nQ3VydmVBbW91bnQ7XG4gIGNvbnN0IGZpcnN0Q3VydmVCZXppZXJZID0gZnJvbUJsb2NrO1xuXG4gIC8vIHNlY29uZCA5MCBkZWdyZWUgY3VydmUgdG8gdGhlIHJpZ2h0XG4gIGNvbnN0IHNlY29uZEN1cnZlU3RhcnRZID0gZGlyZWN0aW9uID09PSAnZG93bicgPyB0b0Jsb2NrIC0gZW5kaW5nQ3VydmVBbW91bnQgOiB0b0Jsb2NrICsgZW5kaW5nQ3VydmVBbW91bnQ7XG4gIGNvbnN0IHNlY29uZEN1cnZlRW5kWCA9IHN0cmFpZ2h0UmlnaHRTdGFydDtcbiAgY29uc3Qgc2Vjb25kQ3VydmVFbmRZID0gdG9CbG9jaztcblxuICBjb25zdCBzZWNvbmRDdXJ2ZUJlemllclggPSBzdHJhaWdodFJpZ2h0U3RhcnQgLSBlbmRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3Qgc2Vjb25kQ3VydmVCZXppZXJZID0gdG9CbG9jaztcblxuICBjb25zdCBwYXRoU3RyID0gYFxuICAgIE0gJHtmcm9tSW5saW5lfSAke2Zyb21CbG9ja30gXG4gICAgSCAke2ZpcnN0Q3VydmVTdGFydFh9IFxuICAgIFEgJHtmaXJzdEN1cnZlQmV6aWVyWH0gJHtmaXJzdEN1cnZlQmV6aWVyWX0sICR7Zmlyc3RDdXJ2ZUVuZFh9ICR7Zmlyc3RDdXJ2ZUVuZFl9IFxuICAgIFYgJHtzZWNvbmRDdXJ2ZVN0YXJ0WX0gXG4gICAgUSAke3NlY29uZEN1cnZlQmV6aWVyWH0gJHtzZWNvbmRDdXJ2ZUJlemllcll9LCAke3NlY29uZEN1cnZlRW5kWH0gJHtzZWNvbmRDdXJ2ZUVuZFl9IFxuICAgIEggJHt0b0lubGluZX1cbiAgYDtcblxuICByZXR1cm4gcGF0aChwYXRoU3RyLCBvcHRpb25zLnBhdGgpO1xufTtcblxuY29uc3QgY3VydmVJbnZlcnRlZCA9IChmcm9tOiBCcmFja2V0UG9zaXRpb24sIHRvOiBCcmFja2V0UG9zaXRpb24sIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJywgb3B0aW9uczogQ3VydmVPcHRpb25zKSA9PiB7XG4gIGNvbnN0IGZyb21JbmxpbmUgPSBmcm9tLmlubGluZS5zdGFydDtcbiAgY29uc3QgZnJvbUJsb2NrID0gZnJvbS5ibG9jay5jZW50ZXI7XG5cbiAgY29uc3QgdG9JbmxpbmUgPSB0by5pbmxpbmUuZW5kO1xuICBjb25zdCB0b0Jsb2NrID0gdG8uYmxvY2suY2VudGVyO1xuXG4gIGNvbnN0IHN0YXJ0aW5nQ3VydmVBbW91bnQgPSBvcHRpb25zLmxpbmVTdGFydGluZ0N1cnZlQW1vdW50O1xuICBjb25zdCBlbmRpbmdDdXJ2ZUFtb3VudCA9IG9wdGlvbnMubGluZUVuZGluZ0N1cnZlQW1vdW50O1xuXG4gIGNvbnN0IHRvdGFsU3BhY2UgPSBmcm9tSW5saW5lIC0gdG9JbmxpbmU7XG4gIGNvbnN0IHRvdGFsU3BhY2VNaW51c0N1cnZlID0gdG90YWxTcGFjZSAtIHN0YXJ0aW5nQ3VydmVBbW91bnQgLSBlbmRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3QgbGluZUxlbmd0aCA9IHRvdGFsU3BhY2VNaW51c0N1cnZlIC8gMjtcblxuICBjb25zdCBzdHJhaWdodFJpZ2h0RW5kID0gZnJvbUlubGluZSAtIGxpbmVMZW5ndGg7XG4gIGNvbnN0IHN0cmFpZ2h0TGVmdFN0YXJ0ID0gdG9JbmxpbmUgKyBsaW5lTGVuZ3RoO1xuXG4gIGNvbnN0IGZpcnN0Q3VydmVTdGFydFggPSBzdHJhaWdodFJpZ2h0RW5kO1xuICBjb25zdCBmaXJzdEN1cnZlRW5kWCA9IHN0cmFpZ2h0UmlnaHRFbmQgLSBzdGFydGluZ0N1cnZlQW1vdW50O1xuICBjb25zdCBmaXJzdEN1cnZlRW5kWSA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nID8gZnJvbUJsb2NrICsgc3RhcnRpbmdDdXJ2ZUFtb3VudCA6IGZyb21CbG9jayAtIHN0YXJ0aW5nQ3VydmVBbW91bnQ7XG5cbiAgY29uc3QgZmlyc3RDdXJ2ZUJlemllclggPSBzdHJhaWdodFJpZ2h0RW5kIC0gc3RhcnRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3QgZmlyc3RDdXJ2ZUJlemllclkgPSBmcm9tQmxvY2s7XG5cbiAgLy8gc2Vjb25kIDkwIGRlZ3JlZSBjdXJ2ZSB0byB0aGUgcmlnaHRcbiAgY29uc3Qgc2Vjb25kQ3VydmVTdGFydFkgPSBkaXJlY3Rpb24gPT09ICdkb3duJyA/IHRvQmxvY2sgLSBlbmRpbmdDdXJ2ZUFtb3VudCA6IHRvQmxvY2sgKyBlbmRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3Qgc2Vjb25kQ3VydmVFbmRYID0gc3RyYWlnaHRMZWZ0U3RhcnQ7XG4gIGNvbnN0IHNlY29uZEN1cnZlRW5kWSA9IHRvQmxvY2s7XG5cbiAgY29uc3Qgc2Vjb25kQ3VydmVCZXppZXJYID0gc3RyYWlnaHRMZWZ0U3RhcnQgKyBlbmRpbmdDdXJ2ZUFtb3VudDtcbiAgY29uc3Qgc2Vjb25kQ3VydmVCZXppZXJZID0gdG9CbG9jaztcblxuICBjb25zdCBwYXRoU3RyID0gYFxuICAgIE0gJHtmcm9tSW5saW5lfSAke2Zyb21CbG9ja30gXG4gICAgSCAke2ZpcnN0Q3VydmVTdGFydFh9IFxuICAgIFEgJHtmaXJzdEN1cnZlQmV6aWVyWH0gJHtmaXJzdEN1cnZlQmV6aWVyWX0sICR7Zmlyc3RDdXJ2ZUVuZFh9ICR7Zmlyc3RDdXJ2ZUVuZFl9IFxuICAgIFYgJHtzZWNvbmRDdXJ2ZVN0YXJ0WX1cbiAgICBRICR7c2Vjb25kQ3VydmVCZXppZXJYfSAke3NlY29uZEN1cnZlQmV6aWVyWX0sICR7c2Vjb25kQ3VydmVFbmRYfSAke3NlY29uZEN1cnZlRW5kWX0gXG4gICAgSCAke3RvSW5saW5lfVxuICBgO1xuXG4gIHJldHVybiBwYXRoKHBhdGhTdHIsIG9wdGlvbnMucGF0aCk7XG59O1xuXG50eXBlIExpbmVPcHRpb25zID0ge1xuICBwYXRoOiBQYXRoT3B0aW9ucztcbn07XG5cbmNvbnN0IGxpbmUgPSAoZnJvbTogQnJhY2tldFBvc2l0aW9uLCB0bzogQnJhY2tldFBvc2l0aW9uLCBvcHRpb25zOiBMaW5lT3B0aW9ucykgPT4ge1xuICByZXR1cm4gcGF0aChgTSAke2Zyb20uaW5saW5lLmVuZH0gJHtmcm9tLmJsb2NrLmNlbnRlcn0gTCAke3RvLmlubGluZS5zdGFydH0gJHt0by5ibG9jay5jZW50ZXJ9YCwgb3B0aW9ucy5wYXRoKTtcbn07XG5cbnR5cGUgU3RhdGljTWVhc3VyZW1lbnRzID0ge1xuICAvKiogV2lkdGggb2Ygb25lIGNvbHVtbiAqL1xuICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuXG4gIC8qKiBIZWlnaHQgb2Ygb25lIG1hdGNoICovXG4gIG1hdGNoSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIEdhcCBiZXR3ZWVuIHJvd3MgKi9cbiAgcm93R2FwOiBudW1iZXI7XG5cbiAgLyoqIEdhcCBiZXR3ZWVuIGNvbHVtbnMgKi9cbiAgY29sdW1uR2FwOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9mZnNldCBmcm9tIHRoZSB0b3AuXG4gICAqIFdpbGwgYmUgMCBpZiBlLmcuIHRoZXJlIGlzIG5vIHJvdW5kIGhlYWRlciBhbmQgd2UgYXJlIGRpc3BsYXlpbmcgYSBzaW5nbGUgZWxpbWluYXRpb24gYnJhY2tldC5cbiAgICogV2lsbCBiZSBzb21lIHZhbHVlIGlmIHRoZXJlIGlzIGEgcm91bmQgaGVhZGVyIG9yIGlmIHdlIHdhbnQgdG8gZGlzcGxheSB0aGUgbG93ZXIgYnJhY2tldCBvZiBhIGRvdWJsZSBlbGltaW5hdGlvbiBicmFja2V0LlxuICAgKi9cbiAgYmFzZU9mZnNldFk6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtYXRjaGVzIGluIHRoZSBmaXJzdCByb3VuZC5cbiAgICogRm9yIGRvdWJsZSBlbGltaW5hdGlvbiBicmFja2V0cywgdGhpcyBpcyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW4gdGhlIHVwcGVyIGJyYWNrZXQgb3IgdGhlIGxvd2VyIGJyYWNrZXQuXG4gICAqIEZvciBkb3VibGUgZWxpbWluYXRpb24gbWF0Y2hlcyBhZnRlciB0aGUgdXBwZXIgYW5kIGxvd2VyIGJyYWNrZXQgaGF2ZSBiZWVuIG1lcmdlZCwgdGhpcyBpcyB0aGUgc3VtIG9mIG1hdGNoZXMgaW4gdGhlIGZpcnN0IHJvdW5kIG9mIHRoZSB1cHBlciBhbmQgbG93ZXIgYnJhY2tldC5cbiAgICovXG4gIGJhc2VSb3VuZE1hdGNoQ291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogV2lsbCBiZSByb3VuZCBoZWFkZXIgaGVpZ2h0ICsgcm93IGdhcCBpZiB3ZSBhcmUgbWVyZ2luZyB0aGUgdXBwZXIgYW5kIGxvd2VyIGJyYWNrZXQgb2YgYSBkb3VibGUgZWxpbWluYXRpb24gYnJhY2tldCwgMCBvdGhlcndpc2UuXG4gICAqIFRoaXMgdmFsdWUgd2lsbCBiZSBhZGRlZCB0byB0aGUgYXZhaWxhYmxlIHdoaXRlc3BhY2UgZm9yIHRoZSBtYXRjaCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1pZGRsZSBvZi5cbiAgICovXG4gIGRvdWJsZUVsaW1pbmF0aW9uTWVyZ2VPZmZzZXQ6IG51bWJlcjtcbn07XG5cbnR5cGUgQnJhY2tldFBvc2l0aW9uID0ge1xuICBpbmxpbmU6IHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXI7IGNlbnRlcjogbnVtYmVyIH07IC8vIHRoZSBsZWZ0LCByaWdodCBhbmQgY2VudGVyIG9mIHRoZSBtYXRjaFxuICBibG9jazogeyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlcjsgY2VudGVyOiBudW1iZXIgfTsgLy8gdGhlIHRvcCwgYm90dG9tIGFuZCBjZW50ZXIgb2YgdGhlIG1hdGNoXG59O1xuXG5jb25zdCBnZXRNYXRjaFBvc2l0aW9uID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICByb3VuZEl0ZW06IEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+IHwgdW5kZWZpbmVkLFxuICBtYXRjaElkOiBCcmFja2V0TWF0Y2hJZCB8IHVuZGVmaW5lZCxcbiAgc3RhdGljTWVhc3VyZW1lbnRzOiBTdGF0aWNNZWFzdXJlbWVudHMsXG4pOiBCcmFja2V0UG9zaXRpb24gPT4ge1xuICBpZiAoIXJvdW5kSXRlbSkgdGhyb3cgbmV3IEVycm9yKCdJdGVtIGlzIG1pc3NpbmcnKTtcbiAgaWYgKCFtYXRjaElkKSB0aHJvdyBuZXcgRXJyb3IoJ01hdGNoIGlzIG1pc3NpbmcnKTtcblxuICBjb25zdCBtYXRjaCA9IHJvdW5kSXRlbS5pdGVtcy5nZXQobWF0Y2hJZCk7XG5cbiAgaWYgKCFtYXRjaCB8fCBtYXRjaC50eXBlICE9PSAnbWF0Y2gnKSB0aHJvdyBuZXcgRXJyb3IoJ01hdGNoIGlzIG1pc3NpbmcnKTtcblxuICBjb25zdCBtYXRjaEhhbGYgPSBzdGF0aWNNZWFzdXJlbWVudHMubWF0Y2hIZWlnaHQgLyAyO1xuXG4gIGNvbnN0IHJvdW5kRmFjdG9yID0gc3RhdGljTWVhc3VyZW1lbnRzLmJhc2VSb3VuZE1hdGNoQ291bnQgLyByb3VuZEl0ZW0ucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQubWF0Y2hDb3VudDtcbiAgY29uc3QgcmVtYWluaW5nUm93R2FwQ291bnQgPSByb3VuZEl0ZW0ucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQubWF0Y2hDb3VudCAtIDE7XG4gIGNvbnN0IG1hdGNoSW5jbHVkZWRSb3dHYXBUb3RhbCA9IHN0YXRpY01lYXN1cmVtZW50cy5iYXNlUm91bmRNYXRjaENvdW50IC0gMSAtIHJlbWFpbmluZ1Jvd0dhcENvdW50O1xuICBjb25zdCBtYXRjaEluY2x1ZGVkUm93R2FwUGVyTWF0Y2ggPSBtYXRjaEluY2x1ZGVkUm93R2FwVG90YWwgLyByb3VuZEl0ZW0ucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQubWF0Y2hDb3VudDtcbiAgY29uc3QgbWF0Y2hSb3VuZEl0ZW1IZWlnaHQgPVxuICAgIHN0YXRpY01lYXN1cmVtZW50cy5tYXRjaEhlaWdodCAqIHJvdW5kRmFjdG9yICsgbWF0Y2hJbmNsdWRlZFJvd0dhcFBlck1hdGNoICogc3RhdGljTWVhc3VyZW1lbnRzLnJvd0dhcDtcblxuICBjb25zdCBtYXRjaGVzQWJvdmUgPSBtYXRjaC5tYXRjaFJlbGF0aW9uLmN1cnJlbnRNYXRjaC5pbmRleEluUm91bmQ7XG4gIGNvbnN0IHJvd09mZnNldCA9IG1hdGNoZXNBYm92ZSAqIHN0YXRpY01lYXN1cmVtZW50cy5yb3dHYXAgKyBtYXRjaGVzQWJvdmUgKiBtYXRjaFJvdW5kSXRlbUhlaWdodDtcblxuICBjb25zdCBtYXRjaFJvd09mZnNldCA9IChtYXRjaFJvdW5kSXRlbUhlaWdodCAtIHN0YXRpY01lYXN1cmVtZW50cy5tYXRjaEhlaWdodCkgLyAyO1xuXG4gIGNvbnN0IGJsb2NrU3RhcnQgPVxuICAgIHJvd09mZnNldCArIG1hdGNoUm93T2Zmc2V0ICsgc3RhdGljTWVhc3VyZW1lbnRzLmJhc2VPZmZzZXRZICsgc3RhdGljTWVhc3VyZW1lbnRzLmRvdWJsZUVsaW1pbmF0aW9uTWVyZ2VPZmZzZXQ7XG5cbiAgY29uc3QgYmxvY2sgPSB7XG4gICAgc3RhcnQ6IGJsb2NrU3RhcnQsXG4gICAgZW5kOiBibG9ja1N0YXJ0ICsgc3RhdGljTWVhc3VyZW1lbnRzLm1hdGNoSGVpZ2h0LFxuICAgIGNlbnRlcjogYmxvY2tTdGFydCArIG1hdGNoSGFsZixcbiAgfTtcblxuICBjb25zdCBpbmxpbmVTdGFydCA9XG4gICAgKHJvdW5kSXRlbS5jb2x1bW5TdGFydCAtIDEpICogc3RhdGljTWVhc3VyZW1lbnRzLmNvbHVtbldpZHRoICtcbiAgICAocm91bmRJdGVtLmNvbHVtblN0YXJ0IC0gMSkgKiBzdGF0aWNNZWFzdXJlbWVudHMuY29sdW1uR2FwO1xuXG4gIGNvbnN0IGlubGluZSA9IHtcbiAgICBzdGFydDogaW5saW5lU3RhcnQsXG4gICAgZW5kOiBpbmxpbmVTdGFydCArIHN0YXRpY01lYXN1cmVtZW50cy5jb2x1bW5XaWR0aCxcbiAgICBjZW50ZXI6IGlubGluZVN0YXJ0ICsgc3RhdGljTWVhc3VyZW1lbnRzLmNvbHVtbldpZHRoIC8gMixcbiAgfTtcblxuICByZXR1cm4geyBpbmxpbmUsIGJsb2NrIH07XG59O1xuXG5leHBvcnQgY29uc3QgZHJhd01hbiA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgaXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+LFxuICBmaXJzdFJvdW5kczogRmlyc3RSb3VuZHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIGRpbWVuc2lvbnM6IERyYXdNYW5EaW1lbnNpb25zLFxuKSA9PiB7XG4gIGNvbnN0IHsgY29sdW1uV2lkdGgsIG1hdGNoSGVpZ2h0LCByb3dHYXAsIGNvbHVtbkdhcCwgcm91bmRIZWFkZXJIZWlnaHQgfSA9IGRpbWVuc2lvbnM7XG4gIGNvbnN0IHJvdW5kSGVhZGVyUm93R2FwID0gcm91bmRIZWFkZXJIZWlnaHQgPyByb3dHYXAgOiAwO1xuICBjb25zdCBiYXNlT2Zmc2V0WSA9IHJvdW5kSGVhZGVySGVpZ2h0ICsgcm91bmRIZWFkZXJSb3dHYXA7XG5cbiAgY29uc3Qgc3ZnUGFydHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCByb3VuZCBvZiBpdGVtcy52YWx1ZXMoKSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiByb3VuZC5pdGVtcy52YWx1ZXMoKSkge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3JvdW5kJykgY29udGludWU7IC8vIHdlIGRvbid0IGRyYXcgbGluZXMgZm9yIHJvdW5kIGhlYWRlcnNcblxuICAgICAgbGV0IGJhc2VSb3VuZE1hdGNoQ291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgICAgbGV0IGRvdWJsZUVsaW1pbmF0aW9uTWVyZ2VPZmZzZXQgPSAwO1xuXG4gICAgICBpZiAoZmlyc3RSb3VuZHMudHlwZSA9PT0gRklSU1RfUk9VTkRTX1RZUEUuU0lOR0xFKSB7XG4gICAgICAgIGJhc2VSb3VuZE1hdGNoQ291bnQgPSBmaXJzdFJvdW5kcy5maXJzdC5tYXRjaENvdW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGl0ZW0ucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQudHlwZSA9PT0gRE9VQkxFX0VMSU1JTkFUSU9OX0JSQUNLRVRfUk9VTkRfVFlQRS5VUFBFUl9CUkFDS0VUKSB7XG4gICAgICAgICAgYmFzZVJvdW5kTWF0Y2hDb3VudCA9IGZpcnN0Um91bmRzLnVwcGVyLm1hdGNoQ291bnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5yb3VuZFJlbGF0aW9uLmN1cnJlbnRSb3VuZC50eXBlID09PSBET1VCTEVfRUxJTUlOQVRJT05fQlJBQ0tFVF9ST1VORF9UWVBFLkxPV0VSX0JSQUNLRVQpIHtcbiAgICAgICAgICBiYXNlUm91bmRNYXRjaENvdW50ID0gZmlyc3RSb3VuZHMubG93ZXIubWF0Y2hDb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBiYXNlUm91bmRNYXRjaENvdW50ID0gZmlyc3RSb3VuZHMudXBwZXIubWF0Y2hDb3VudCArIGZpcnN0Um91bmRzLmxvd2VyLm1hdGNoQ291bnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0ucm91bmRSZWxhdGlvbi5jdXJyZW50Um91bmQudHlwZSA9PT0gRE9VQkxFX0VMSU1JTkFUSU9OX0JSQUNLRVRfUk9VTkRfVFlQRS5MT1dFUl9CUkFDS0VUKSB7XG4gICAgICAgIGRvdWJsZUVsaW1pbmF0aW9uTWVyZ2VPZmZzZXQgPSByb3VuZEhlYWRlckhlaWdodCArIHJvdW5kSGVhZGVyUm93R2FwO1xuICAgICAgICAvLyBUT0RPOlxuICAgICAgICAvLyBiYXNlT2Zmc2V0WSA9IGJhc2VPZmZzZXRZICogMiAoMiByb3VuZCBoZWFkZXJzIGFuZCBnYXBzKSArIChmaXJzdFJvdW5kcy51cHBlci5tYXRjaENvdW50ICogbWF0Y2hIZWlnaHQpICsgKGZpcnN0Um91bmRzLnVwcGVyLm1hdGNoQ291bnQgLSAxICogcm93R2FwKVxuICAgICAgICAvLyBiYXNlT2Zmc2V0WVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGF0aWNNZWFzdXJlbWVudHM6IFN0YXRpY01lYXN1cmVtZW50cyA9IHtcbiAgICAgICAgYmFzZU9mZnNldFksXG4gICAgICAgIGJhc2VSb3VuZE1hdGNoQ291bnQsXG4gICAgICAgIGNvbHVtbkdhcCxcbiAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgIGRvdWJsZUVsaW1pbmF0aW9uTWVyZ2VPZmZzZXQsXG4gICAgICAgIG1hdGNoSGVpZ2h0LFxuICAgICAgICByb3dHYXAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjdXJyZW50TWF0Y2hQYXJ0aWNpcGFudHNTaG9ydElkcyA9IFtcbiAgICAgICAgaXRlbS5tYXRjaFJlbGF0aW9uLmN1cnJlbnRNYXRjaC5ob21lPy5zaG9ydElkLFxuICAgICAgICBpdGVtLm1hdGNoUmVsYXRpb24uY3VycmVudE1hdGNoLmF3YXk/LnNob3J0SWQsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoKGlkKSA9PiAhIWlkKVxuICAgICAgICAuam9pbignICcpO1xuXG4gICAgICBjb25zdCBwYXRoT3B0aW9uczogUGF0aE9wdGlvbnMgPSB7IC4uLmRpbWVuc2lvbnMucGF0aCwgY2xhc3NOYW1lOiBjdXJyZW50TWF0Y2hQYXJ0aWNpcGFudHNTaG9ydElkcyB9O1xuXG4gICAgICBjb25zdCBjdXJyZW50TWF0Y2hQb3NpdGlvbiA9IGdldE1hdGNoUG9zaXRpb24ocm91bmQsIGl0ZW0ubWF0Y2hSZWxhdGlvbi5jdXJyZW50TWF0Y2guaWQsIHN0YXRpY01lYXN1cmVtZW50cyk7XG5cbiAgICAgIC8vIFdlIG9ubHkgZHJhdyB0aGUgbGVmdCBzaWRlIG9mIHRoZSBtYXRjaCByZWxhdGlvblxuICAgICAgc3dpdGNoIChpdGVtLm1hdGNoUmVsYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdub3RoaW5nLXRvLW9uZSc6IHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvbmUtdG8tbm90aGluZyc6XG4gICAgICAgIGNhc2UgJ29uZS10by1vbmUnOiB7XG4gICAgICAgICAgY29uc3QgcHJldmlvdXNNYXRjaFBvc2l0aW9uID0gZ2V0TWF0Y2hQb3NpdGlvbihcbiAgICAgICAgICAgIGl0ZW1zLmdldChpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNSb3VuZC5pZCksXG4gICAgICAgICAgICBpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNNYXRjaC5pZCxcbiAgICAgICAgICAgIHN0YXRpY01lYXN1cmVtZW50cyxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gZHJhdyBhIHN0cmFpZ2h0IGxpbmVcbiAgICAgICAgICBzdmdQYXJ0cy5wdXNoKGxpbmUocHJldmlvdXNNYXRjaFBvc2l0aW9uLCBjdXJyZW50TWF0Y2hQb3NpdGlvbiwgeyBwYXRoOiBwYXRoT3B0aW9ucyB9KSk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3R3by10by1ub3RoaW5nJzpcbiAgICAgICAgY2FzZSAndHdvLXRvLW9uZSc6IHtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1VwcGVyID0gZ2V0TWF0Y2hQb3NpdGlvbihcbiAgICAgICAgICAgIGl0ZW1zLmdldChpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNVcHBlclJvdW5kLmlkKSxcbiAgICAgICAgICAgIGl0ZW0ubWF0Y2hSZWxhdGlvbi5wcmV2aW91c1VwcGVyTWF0Y2guaWQsXG4gICAgICAgICAgICBzdGF0aWNNZWFzdXJlbWVudHMsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IHByZXZpb3VzTG93ZXIgPSBnZXRNYXRjaFBvc2l0aW9uKFxuICAgICAgICAgICAgaXRlbXMuZ2V0KGl0ZW0ubWF0Y2hSZWxhdGlvbi5wcmV2aW91c0xvd2VyUm91bmQuaWQpLFxuICAgICAgICAgICAgaXRlbS5tYXRjaFJlbGF0aW9uLnByZXZpb3VzTG93ZXJNYXRjaC5pZCxcbiAgICAgICAgICAgIHN0YXRpY01lYXN1cmVtZW50cyxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgY3VydmVPcHRpb25zOiBDdXJ2ZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kaW1lbnNpb25zLmN1cnZlLFxuICAgICAgICAgICAgcGF0aDogeyAuLi5kaW1lbnNpb25zLnBhdGgsIGNsYXNzTmFtZTogJycgfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY3VydmVGbiA9XG4gICAgICAgICAgICBpdGVtLnJvdW5kUmVsYXRpb24uY3VycmVudFJvdW5kLm1pcnJvclJvdW5kVHlwZSA9PT0gQlJBQ0tFVF9ST1VORF9NSVJST1JfVFlQRS5SSUdIVCA/IGN1cnZlSW52ZXJ0ZWQgOiBjdXJ2ZTtcblxuICAgICAgICAgIC8vIGRyYXcgdHdvIGxpbmVzIHRoYXQgbWVyZ2UgaW50byBvbmUgaW4gdGhlIG1pZGRsZVxuICAgICAgICAgIHN2Z1BhcnRzLnB1c2goXG4gICAgICAgICAgICBjdXJ2ZUZuKHByZXZpb3VzVXBwZXIsIGN1cnJlbnRNYXRjaFBvc2l0aW9uLCAnZG93bicsIHtcbiAgICAgICAgICAgICAgLi4uY3VydmVPcHRpb25zLFxuICAgICAgICAgICAgICBwYXRoOiB7IC4uLmN1cnZlT3B0aW9ucy5wYXRoLCBjbGFzc05hbWU6IGl0ZW0ubWF0Y2hSZWxhdGlvbi5wcmV2aW91c1VwcGVyTWF0Y2gud2lubmVyPy5zaG9ydElkIHx8ICcnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHN2Z1BhcnRzLnB1c2goXG4gICAgICAgICAgICBjdXJ2ZUZuKHByZXZpb3VzTG93ZXIsIGN1cnJlbnRNYXRjaFBvc2l0aW9uLCAndXAnLCB7XG4gICAgICAgICAgICAgIC4uLmN1cnZlT3B0aW9ucyxcbiAgICAgICAgICAgICAgcGF0aDogeyAuLi5jdXJ2ZU9wdGlvbnMucGF0aCwgY2xhc3NOYW1lOiBpdGVtLm1hdGNoUmVsYXRpb24ucHJldmlvdXNMb3dlck1hdGNoLndpbm5lcj8uc2hvcnRJZCB8fCAnJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGl0ZW0ubWF0Y2hSZWxhdGlvbi5jdXJyZW50Um91bmQubWlycm9yUm91bmRUeXBlID09PSBCUkFDS0VUX1JPVU5EX01JUlJPUl9UWVBFLlJJR0hUICYmXG4gICAgICAgICAgICBpdGVtLm1hdGNoUmVsYXRpb24udHlwZSA9PT0gJ3R3by10by1vbmUnICYmXG4gICAgICAgICAgICBpdGVtLm1hdGNoUmVsYXRpb24ubmV4dFJvdW5kLm1pcnJvclJvdW5kVHlwZSA9PT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gZHJhdyBhIHN0cmFpZ2h0IGxpbmUgZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgY29ubmVjdGluZyB0aGUgZmluYWwgbWF0Y2ggdG8gdGhlIG1pcnJvcmVkIHNlbWkgZmluYWwgbWF0Y2hcblxuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGdldE1hdGNoUG9zaXRpb24oXG4gICAgICAgICAgICAgIGl0ZW1zLmdldChpdGVtLm1hdGNoUmVsYXRpb24ubmV4dFJvdW5kLmlkKSxcbiAgICAgICAgICAgICAgaXRlbS5tYXRjaFJlbGF0aW9uLm5leHRNYXRjaC5pZCxcbiAgICAgICAgICAgICAgc3RhdGljTWVhc3VyZW1lbnRzLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgc3ZnUGFydHMucHVzaChsaW5lKG5leHQsIGN1cnJlbnRNYXRjaFBvc2l0aW9uLCB7IHBhdGg6IHBhdGhPcHRpb25zIH0pKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdmdQYXJ0cy5qb2luKCcnKTtcbn07XG4iXX0=
@@ -1,13 +1,15 @@
1
- import { TOURNAMENT_MODE, } from './bracket-new';
1
+ import { COMMON_BRACKET_ROUND_TYPE, TOURNAMENT_MODE, } from './bracket-new';
2
2
  import { NewBracketDefaultMatchComponent } from './new-bracket-default-match.component';
3
3
  import { NewBracketDefaultRoundHeaderComponent } from './new-bracket-default-round-header.component';
4
4
  export const generateBracketGridItems = (bracketData, roundTypeMap, swissGroups, roundRelations, matchRelations, options) => {
5
5
  const roundHeaderComponent = options.headerComponent ?? NewBracketDefaultRoundHeaderComponent;
6
6
  const matchComponent = options.matchComponent ?? NewBracketDefaultMatchComponent;
7
+ const finalMatchComponent = options.finalMatchComponent ?? matchComponent;
7
8
  const optionsWithDefaults = {
8
9
  ...options,
9
10
  headerComponent: roundHeaderComponent,
10
11
  matchComponent: matchComponent,
12
+ finalMatchComponent: finalMatchComponent,
11
13
  };
12
14
  switch (bracketData.mode) {
13
15
  case TOURNAMENT_MODE.DOUBLE_ELIMINATION:
@@ -40,6 +42,7 @@ const generateGenericGridPlacements = (bracketData, roundTypeMap, roundRelations
40
42
  }
41
43
  const roundItem = {
42
44
  id: round.id,
45
+ layoutId: `${round.id}-layout`,
43
46
  columnStart,
44
47
  columnEnd,
45
48
  roundRelation,
@@ -49,9 +52,11 @@ const generateGenericGridPlacements = (bracketData, roundTypeMap, roundRelations
49
52
  const roundHeaderItem = {
50
53
  type: 'round',
51
54
  id: round.id,
55
+ layoutId: `${round.id}-layout`,
52
56
  rowStart: currentMatchRow,
53
57
  rowEnd: ++currentMatchRow,
54
58
  component: options.headerComponent,
59
+ className: 'et-bracket-new-item et-bracket-round-header-container',
55
60
  roundRelation,
56
61
  data: {
57
62
  bracketRound: round,
@@ -67,14 +72,17 @@ const generateGenericGridPlacements = (bracketData, roundTypeMap, roundRelations
67
72
  throw new Error('Match relation is missing');
68
73
  }
69
74
  const baseRow = match.indexInRound * matchHeight;
75
+ const participantShortIds = [match.home?.shortId, match.away?.shortId].filter((id) => !!id).join(' ');
70
76
  const matchItem = {
71
77
  type: 'match',
72
78
  id: match.id,
79
+ layoutId: `${match.id}-layout`,
73
80
  rowStart: baseRow + currentMatchRow,
74
81
  rowEnd: baseRow + currentMatchRow + matchHeight,
75
- component: options.matchComponent,
82
+ component: round.type === COMMON_BRACKET_ROUND_TYPE.FINAL ? options.finalMatchComponent : options.matchComponent,
76
83
  matchRelation,
77
84
  roundRelation,
85
+ className: `et-bracket-new-item et-bracket-match-container ${participantShortIds}`,
78
86
  data: {
79
87
  bracketRound: round,
80
88
  bracketMatch: match,
@@ -94,4 +102,4 @@ const generateSwissWithEliminationGridPlacements = (bracketData, roundTypeMap, s
94
102
  const gridItems = new Map();
95
103
  return gridItems;
96
104
  };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wbGFjZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9ncmlkLXBsYWNlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQVlMLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFpRXJHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFdBQWdELEVBQ2hELFlBQXlELEVBQ3pELFdBQXdFLEVBQ3hFLGNBQTZELEVBQzdELGNBQWdFLEVBQ2hFLE9BQWdFLEVBQ2hFLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUkscUNBQXFDLENBQUM7SUFDOUYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSwrQkFBK0IsQ0FBQztJQUVqRixNQUFNLG1CQUFtQixHQUF3RTtRQUMvRixHQUFHLE9BQU87UUFDVixlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLGNBQWMsRUFBRSxjQUFjO0tBQy9CLENBQUM7SUFFRixRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixLQUFLLGVBQWUsQ0FBQyxrQkFBa0I7WUFDckMsT0FBTyx1Q0FBdUMsQ0FDNUMsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO1FBQ0osS0FBSyxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztZ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L0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5wdXRTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYWNrZXREYXRhLFxuICBCcmFja2V0TWF0Y2gsXG4gIEJyYWNrZXRNYXRjaElkLFxuICBCcmFja2V0TWF0Y2hSZWxhdGlvbixcbiAgQnJhY2tldE1hdGNoUmVsYXRpb25zTWFwLFxuICBCcmFja2V0Um91bmQsXG4gIEJyYWNrZXRSb3VuZElkLFxuICBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhLFxuICBCcmFja2V0Um91bmRSZWxhdGlvbixcbiAgQnJhY2tldFJvdW5kUmVsYXRpb25zLFxuICBCcmFja2V0Um91bmRUeXBlTWFwLFxuICBUT1VSTkFNRU5UX01PREUsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRNYXRjaENvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1tYXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRSb3VuZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1yb3VuZC1oZWFkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn0+O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRJbnB1dFZhbHVlPFQ+ID0gKCkgPT4ge1xuICBbUCBpbiBrZXlvZiBUXTogVFtQXSBleHRlbmRzIElucHV0U2lnbmFsPGluZmVyIFU+ID8gVSA6IG5ldmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PjtcbiAgYnJhY2tldE1hdGNoOiBJbnB1dFNpZ25hbDxCcmFja2V0TWF0Y2g8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+O1xufT47XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICBpZDogc3RyaW5nO1xuICBjb2x1bW5TdGFydDogbnVtYmVyO1xuICBjb2x1bW5FbmQ6IG51bWJlcjtcbiAgcm91bmRSZWxhdGlvbjogQnJhY2tldFJvdW5kUmVsYXRpb248VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQgfCBCcmFja2V0TWF0Y2hJZCwgQnJhY2tldEdyaWRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRIZWFkZXJJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICB0eXBlOiAncm91bmQnO1xuICBpZDogc3RyaW5nO1xuICByb3dTdGFydDogbnVtYmVyO1xuICByb3dFbmQ6IG51bWJlcjtcbiAgY29tcG9uZW50OiBCcmFja2V0Um91bmRIZWFkZXJDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIHJvdW5kUmVsYXRpb246IEJyYWNrZXRSb3VuZFJlbGF0aW9uPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBkYXRhOiB7XG4gICAgYnJhY2tldFJvdW5kOiBCcmFja2V0Um91bmQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBCcmFja2V0R3JpZE1hdGNoSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgdHlwZTogJ21hdGNoJztcbiAgaWQ6IHN0cmluZztcbiAgcm93U3RhcnQ6IG51bWJlcjtcbiAgcm93RW5kOiBudW1iZXI7XG4gIGNvbXBvbmVudDogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaFJlbGF0aW9uOiBCcmFja2V0TWF0Y2hSZWxhdGlvbjxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgcm91bmRSZWxhdGlvbjogQnJhY2tldFJvdW5kUmVsYXRpb248VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGRhdGE6IHtcbiAgICBicmFja2V0Um91bmQ6IEJyYWNrZXRSb3VuZDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgICBicmFja2V0TWF0Y2g6IEJyYWNrZXRNYXRjaDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9XG4gIHwgQnJhY2tldEdyaWRSb3VuZEhlYWRlckl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT5cbiAgfCBCcmFja2V0R3JpZE1hdGNoSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgaW5jbHVkZVJvdW5kSGVhZGVyczogYm9vbGVhbjtcbiAgaGVhZGVyQ29tcG9uZW50PzogQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaENvbXBvbmVudD86IEJyYWNrZXRNYXRjaENvbXBvbmVudDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbn07XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gIGluY2x1ZGVSb3VuZEhlYWRlcnM6IGJvb2xlYW47XG4gIGhlYWRlckNvbXBvbmVudDogQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBtYXRjaENvbXBvbmVudDogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQnJhY2tldEdyaWRJdGVtcyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHN3aXNzR3JvdXBzOiBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+IHwgbnVsbCxcbiAgcm91bmRSZWxhdGlvbnM6IEJyYWNrZXRSb3VuZFJlbGF0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgbWF0Y2hSZWxhdGlvbnM6IEJyYWNrZXRNYXRjaFJlbGF0aW9uc01hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCByb3VuZEhlYWRlckNvbXBvbmVudCA9IG9wdGlvbnMuaGVhZGVyQ29tcG9uZW50ID8/IE5ld0JyYWNrZXREZWZhdWx0Um91bmRIZWFkZXJDb21wb25lbnQ7XG4gIGNvbnN0IG1hdGNoQ29tcG9uZW50ID0gb3B0aW9ucy5tYXRjaENvbXBvbmVudCA/PyBOZXdCcmFja2V0RGVmYXVsdE1hdGNoQ29tcG9uZW50O1xuXG4gIGNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBoZWFkZXJDb21wb25lbnQ6IHJvdW5kSGVhZGVyQ29tcG9uZW50LFxuICAgIG1hdGNoQ29tcG9uZW50OiBtYXRjaENvbXBvbmVudCxcbiAgfTtcblxuICBzd2l0Y2ggKGJyYWNrZXREYXRhLm1vZGUpIHtcbiAgICBjYXNlIFRPVVJOQU1FTlRfTU9ERS5ET1VCTEVfRUxJTUlOQVRJT046XG4gICAgICByZXR1cm4gZ2VuZXJhdGVEb3VibGVFbGltaW5hdGlvbkdyaWRQbGFjZW1lbnRzKFxuICAgICAgICBicmFja2V0RGF0YSxcbiAgICAgICAgcm91bmRUeXBlTWFwLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIGNhc2UgVE9VUk5BTUVOVF9NT0RFLlNXSVNTX1dJVEhfRUxJTUlOQVRJT046IHtcbiAgICAgIGlmICghc3dpc3NHcm91cHMpIHRocm93IG5ldyBFcnJvcignU3dpc3MgZ3JvdXBzIGFyZSByZXF1aXJlZCBmb3Igc3dpc3Mgd2l0aCBlbGltaW5hdGlvbiBtb2RlJyk7XG5cbiAgICAgIHJldHVybiBnZW5lcmF0ZVN3aXNzV2l0aEVsaW1pbmF0aW9uR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHN3aXNzR3JvdXBzLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZ2VuZXJhdGVHZW5lcmljR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHJvdW5kUmVsYXRpb25zLFxuICAgICAgICBtYXRjaFJlbGF0aW9ucyxcbiAgICAgICAgb3B0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICk7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlR2VuZXJpY0dyaWRQbGFjZW1lbnRzID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgcm91bmRSZWxhdGlvbnM6IEJyYWNrZXRSb3VuZFJlbGF0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgbWF0Y2hSZWxhdGlvbnM6IEJyYWNrZXRNYXRjaFJlbGF0aW9uc01hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uc1dpdGhEZWZhdWx0czxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCBncmlkSXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+ID0gbmV3IE1hcCgpO1xuICBjb25zdCBmaXJzdFJvdW5kID0gYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICBpZiAoIWZpcnN0Um91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcnN0IHJvdW5kIGlzIG1pc3NpbmcnKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgcm91bmQgb2YgYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpKSB7XG4gICAgY29uc3Qgcm91bmRSZWxhdGlvbiA9IHJvdW5kUmVsYXRpb25zLmdldChyb3VuZC5pZCk7XG5cbiAgICBsZXQgY3VycmVudE1hdGNoUm93ID0gMTtcblxuICAgIGNvbnN0IGNvbHVtblN0YXJ0ID0gcm91bmQuaW5kZXggKyAxO1xuICAgIGNvbnN0IGNvbHVtbkVuZCA9IGNvbHVtblN0YXJ0ICsgMTtcblxuICAgIGlmICghcm91bmRSZWxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3VuZCByZWxhdGlvbiBpcyBtaXNzaW5nJyk7XG4gICAgfVxuXG4gICAgaWYgKHJvdW5kUmVsYXRpb24udHlwZSA9PT0gJ3R3by10by1ub3RoaW5nJyB8fCByb3VuZFJlbGF0aW9uLnR5cGUgPT09ICd0d28tdG8tb25lJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlbGF0aW9uIHR5cGUgJHtyb3VuZFJlbGF0aW9uLnR5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91bmRJdGVtOiBCcmFja2V0R3JpZFJvdW5kSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgIGNvbHVtblN0YXJ0LFxuICAgICAgY29sdW1uRW5kLFxuICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgIGl0ZW1zOiBuZXcgTWFwKCksXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVSb3VuZEhlYWRlcnMpIHtcbiAgICAgIGNvbnN0IHJvdW5kSGVhZGVySXRlbTogQnJhY2tldEdyaWRSb3VuZEhlYWRlckl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgICAgIHR5cGU6ICdyb3VuZCcsXG4gICAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgICAgcm93U3RhcnQ6IGN1cnJlbnRNYXRjaFJvdyxcbiAgICAgICAgcm93RW5kOiArK2N1cnJlbnRNYXRjaFJvdyxcbiAgICAgICAgY29tcG9uZW50OiBvcHRpb25zLmhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGJyYWNrZXRSb3VuZDogcm91bmQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICByb3VuZEl0ZW0uaXRlbXMuc2V0KHJvdW5kLmlkLCByb3VuZEhlYWRlckl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3RSb3VuZE1hdGNoRmFjdG9yID0gcm91bmRSZWxhdGlvbi50eXBlICE9PSAnbm90aGluZy10by1vbmUnID8gcm91bmRSZWxhdGlvbi5yb290Um91bmRNYXRjaEZhY3RvciA6IG51bGw7XG4gICAgY29uc3QgbWF0Y2hIZWlnaHQgPSByb290Um91bmRNYXRjaEZhY3RvciA/IHJvb3RSb3VuZE1hdGNoRmFjdG9yIDogMTtcblxuICAgIGZvciAoY29uc3QgbWF0Y2ggb2Ygcm91bmQubWF0Y2hlcy52YWx1ZXMoKSkge1xuICAgICAgY29uc3QgbWF0Y2hSZWxhdGlvbiA9IG1hdGNoUmVsYXRpb25zLmdldChtYXRjaC5pZCk7XG5cbiAgICAgIGlmICghbWF0Y2hSZWxhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hdGNoIHJlbGF0aW9uIGlzIG1pc3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZVJvdyA9IG1hdGNoLmluZGV4SW5Sb3VuZCAqIG1hdGNoSGVpZ2h0O1xuXG4gICAgICBjb25zdCBtYXRjaEl0ZW06IEJyYWNrZXRHcmlkTWF0Y2hJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICAgICAgICB0eXBlOiAnbWF0Y2gnLFxuICAgICAgICBpZDogbWF0Y2guaWQsXG4gICAgICAgIHJvd1N0YXJ0OiBiYXNlUm93ICsgY3VycmVudE1hdGNoUm93LFxuICAgICAgICByb3dFbmQ6IGJhc2VSb3cgKyBjdXJyZW50TWF0Y2hSb3cgKyBtYXRjaEhlaWdodCxcbiAgICAgICAgY29tcG9uZW50OiBvcHRpb25zLm1hdGNoQ29tcG9uZW50LFxuICAgICAgICBtYXRjaFJlbGF0aW9uLFxuICAgICAgICByb3VuZFJlbGF0aW9uLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgYnJhY2tldFJvdW5kOiByb3VuZCxcbiAgICAgICAgICBicmFja2V0TWF0Y2g6IG1hdGNoLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcm91bmRJdGVtLml0ZW1zLnNldChtYXRjaC5pZCwgbWF0Y2hJdGVtKTtcbiAgICB9XG5cbiAgICBncmlkSXRlbXMuc2V0KHJvdW5kLmlkLCByb3VuZEl0ZW0pO1xuICB9XG5cbiAgcmV0dXJuIGdyaWRJdGVtcztcbn07XG5cbmNvbnN0IGdlbmVyYXRlRG91YmxlRWxpbWluYXRpb25HcmlkUGxhY2VtZW50cyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kUmVsYXRpb25zOiBCcmFja2V0Um91bmRSZWxhdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG1hdGNoUmVsYXRpb25zOiBCcmFja2V0TWF0Y2hSZWxhdGlvbnNNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZ3JpZEl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQsIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PiA9IG5ldyBNYXAoKTtcblxuICByZXR1cm4gZ3JpZEl0ZW1zO1xufTtcblxuY29uc3QgZ2VuZXJhdGVTd2lzc1dpdGhFbGltaW5hdGlvbkdyaWRQbGFjZW1lbnRzID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgc3dpc3NHcm91cHM6IEJyYWNrZXRSb3VuZE1hcFdpdGhTd2lzc0RhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kUmVsYXRpb25zOiBCcmFja2V0Um91bmRSZWxhdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG1hdGNoUmVsYXRpb25zOiBCcmFja2V0TWF0Y2hSZWxhdGlvbnNNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnNXaXRoRGVmYXVsdHM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4pID0+IHtcbiAgY29uc3QgZ3JpZEl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQsIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PiA9IG5ldyBNYXAoKTtcblxuICByZXR1cm4gZ3JpZEl0ZW1zO1xufTtcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wbGFjZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2JyYWNrZXQvY29tcG9uZW50cy9uZXctYnJhY2tldC9ncmlkLXBsYWNlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQVlMLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBd0VyRyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxXQUFnRCxFQUNoRCxZQUF5RCxFQUN6RCxXQUF3RSxFQUN4RSxjQUE2RCxFQUM3RCxjQUFnRSxFQUNoRSxPQUFnRSxFQUNoRSxFQUFFO0lBQ0YsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLHFDQUFxQyxDQUFDO0lBQzlGLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLElBQUksK0JBQStCLENBQUM7SUFDakYsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLElBQUksY0FBYyxDQUFDO0lBRTFFLE1BQU0sbUJBQW1CLEdBQXdFO1FBQy9GLEdBQUcsT0FBTztRQUNWLGVBQWUsRUFBRSxvQkFBb0I7UUFDckMsY0FBYyxFQUFFLGNBQWM7UUFDOUIsbUJBQW1CLEVBQUUsbUJBQW1CO0tBQ3pDLENBQUM7SUFFRixRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixLQUFLLGVBQWUsQ0FBQyxrQkFBa0I7WUFDckMsT0FBTyx1Q0FBdUMsQ0FDNUMsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO1FBQ0osS0FBSyxlQUFl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WUFBWSxFQUFFLEtBQUs7aUJBQ3BCO2FBQ0YsQ0FBQztZQUVGLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSx1Q0FBdUMsR0FBRyxDQUM5QyxXQUFnRCxFQUNoRCxZQUF5RCxFQUN6RCxjQUE2RCxFQUM3RCxjQUFnRSxFQUNoRSxPQUE0RSxFQUM1RSxFQUFFO0lBQ0YsTUFBTSxTQUFTLEdBQXNFLElBQUksR0FBRyxFQUFFLENBQUM7SUFFL0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQ0FBMEMsR0FBRyxDQUNqRCxXQUFnRCxFQUNoRCxZQUF5RCxFQUN6RCxXQUFpRSxFQUNqRSxjQUE2RCxFQUM3RCxjQUFnRSxFQUNoRSxPQUE0RSxFQUM1RSxFQUFFO0lBQ0YsTUFBTSxTQUFTLEdBQXNFLElBQUksR0FBRyxFQUFFLENBQUM7SUFFL0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5wdXRTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJyYWNrZXREYXRhLFxuICBCcmFja2V0TWF0Y2gsXG4gIEJyYWNrZXRNYXRjaElkLFxuICBCcmFja2V0TWF0Y2hSZWxhdGlvbixcbiAgQnJhY2tldE1hdGNoUmVsYXRpb25zTWFwLFxuICBCcmFja2V0Um91bmQsXG4gIEJyYWNrZXRSb3VuZElkLFxuICBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhLFxuICBCcmFja2V0Um91bmRSZWxhdGlvbixcbiAgQnJhY2tldFJvdW5kUmVsYXRpb25zLFxuICBCcmFja2V0Um91bmRUeXBlTWFwLFxuICBDT01NT05fQlJBQ0tFVF9ST1VORF9UWVBFLFxuICBUT1VSTkFNRU5UX01PREUsXG59IGZyb20gJy4vYnJhY2tldC1uZXcnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRNYXRjaENvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1tYXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmV3QnJhY2tldERlZmF1bHRSb3VuZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmV3LWJyYWNrZXQtZGVmYXVsdC1yb3VuZC1oZWFkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn0+O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRJbnB1dFZhbHVlPFQ+ID0gKCkgPT4ge1xuICBbUCBpbiBrZXlvZiBUXTogVFtQXSBleHRlbmRzIElucHV0U2lnbmFsPGluZmVyIFU+ID8gVSA6IG5ldmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0gQ29tcG9uZW50VHlwZTx7XG4gIGJyYWNrZXRSb3VuZDogSW5wdXRTaWduYWw8QnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+PjtcbiAgYnJhY2tldE1hdGNoOiBJbnB1dFNpZ25hbDxCcmFja2V0TWF0Y2g8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+O1xufT47XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICBpZDogc3RyaW5nO1xuICBsYXlvdXRJZDogc3RyaW5nO1xuICBjb2x1bW5TdGFydDogbnVtYmVyO1xuICBjb2x1bW5FbmQ6IG51bWJlcjtcbiAgcm91bmRSZWxhdGlvbjogQnJhY2tldFJvdW5kUmVsYXRpb248VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGl0ZW1zOiBNYXA8QnJhY2tldFJvdW5kSWQgfCBCcmFja2V0TWF0Y2hJZCwgQnJhY2tldEdyaWRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEJyYWNrZXRHcmlkUm91bmRIZWFkZXJJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICB0eXBlOiAncm91bmQnO1xuICBpZDogc3RyaW5nO1xuICBsYXlvdXRJZDogc3RyaW5nO1xuICByb3dTdGFydDogbnVtYmVyO1xuICByb3dFbmQ6IG51bWJlcjtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGNvbXBvbmVudDogQnJhY2tldFJvdW5kSGVhZGVyQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICByb3VuZFJlbGF0aW9uOiBCcmFja2V0Um91bmRSZWxhdGlvbjxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgZGF0YToge1xuICAgIGJyYWNrZXRSb3VuZDogQnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgQnJhY2tldEdyaWRNYXRjaEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gIHR5cGU6ICdtYXRjaCc7XG4gIGlkOiBzdHJpbmc7XG4gIGxheW91dElkOiBzdHJpbmc7XG4gIHJvd1N0YXJ0OiBudW1iZXI7XG4gIHJvd0VuZDogbnVtYmVyO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgY29tcG9uZW50OiBCcmFja2V0TWF0Y2hDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIG1hdGNoUmVsYXRpb246IEJyYWNrZXRNYXRjaFJlbGF0aW9uPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICByb3VuZFJlbGF0aW9uOiBCcmFja2V0Um91bmRSZWxhdGlvbjxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbiAgZGF0YToge1xuICAgIGJyYWNrZXRSb3VuZDogQnJhY2tldFJvdW5kPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICAgIGJyYWNrZXRNYXRjaDogQnJhY2tldE1hdGNoPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgQnJhY2tldEdyaWRJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID1cbiAgfCBCcmFja2V0R3JpZFJvdW5kSGVhZGVySXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPlxuICB8IEJyYWNrZXRHcmlkTWF0Y2hJdGVtPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXNPcHRpb25zPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICBpbmNsdWRlUm91bmRIZWFkZXJzOiBib29sZWFuO1xuICBoZWFkZXJDb21wb25lbnQ/OiBCcmFja2V0Um91bmRIZWFkZXJDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIG1hdGNoQ29tcG9uZW50PzogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xuICBmaW5hbE1hdGNoQ29tcG9uZW50PzogQnJhY2tldE1hdGNoQ29tcG9uZW50PFRSb3VuZERhdGEsIFRNYXRjaERhdGE+O1xufTtcblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uc1dpdGhEZWZhdWx0czxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgaW5jbHVkZVJvdW5kSGVhZGVyczogYm9vbGVhbjtcbiAgaGVhZGVyQ29tcG9uZW50OiBCcmFja2V0Um91bmRIZWFkZXJDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIG1hdGNoQ29tcG9uZW50OiBCcmFja2V0TWF0Y2hDb21wb25lbnQ8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT47XG4gIGZpbmFsTWF0Y2hDb21wb25lbnQ6IEJyYWNrZXRNYXRjaENvbXBvbmVudDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXMgPSA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4oXG4gIGJyYWNrZXREYXRhOiBCcmFja2V0RGF0YTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgcm91bmRUeXBlTWFwOiBCcmFja2V0Um91bmRUeXBlTWFwPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBzd2lzc0dyb3VwczogQnJhY2tldFJvdW5kTWFwV2l0aFN3aXNzRGF0YTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiB8IG51bGwsXG4gIHJvdW5kUmVsYXRpb25zOiBCcmFja2V0Um91bmRSZWxhdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG1hdGNoUmVsYXRpb25zOiBCcmFja2V0TWF0Y2hSZWxhdGlvbnNNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlQnJhY2tldEdyaWRJdGVtc09wdGlvbnM8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4pID0+IHtcbiAgY29uc3Qgcm91bmRIZWFkZXJDb21wb25lbnQgPSBvcHRpb25zLmhlYWRlckNvbXBvbmVudCA/PyBOZXdCcmFja2V0RGVmYXVsdFJvdW5kSGVhZGVyQ29tcG9uZW50O1xuICBjb25zdCBtYXRjaENvbXBvbmVudCA9IG9wdGlvbnMubWF0Y2hDb21wb25lbnQgPz8gTmV3QnJhY2tldERlZmF1bHRNYXRjaENvbXBvbmVudDtcbiAgY29uc3QgZmluYWxNYXRjaENvbXBvbmVudCA9IG9wdGlvbnMuZmluYWxNYXRjaENvbXBvbmVudCA/PyBtYXRjaENvbXBvbmVudDtcblxuICBjb25zdCBvcHRpb25zV2l0aERlZmF1bHRzOiBHZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXNPcHRpb25zV2l0aERlZmF1bHRzPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+ID0ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgaGVhZGVyQ29tcG9uZW50OiByb3VuZEhlYWRlckNvbXBvbmVudCxcbiAgICBtYXRjaENvbXBvbmVudDogbWF0Y2hDb21wb25lbnQsXG4gICAgZmluYWxNYXRjaENvbXBvbmVudDogZmluYWxNYXRjaENvbXBvbmVudCxcbiAgfTtcblxuICBzd2l0Y2ggKGJyYWNrZXREYXRhLm1vZGUpIHtcbiAgICBjYXNlIFRPVVJOQU1FTlRfTU9ERS5ET1VCTEVfRUxJTUlOQVRJT046XG4gICAgICByZXR1cm4gZ2VuZXJhdGVEb3VibGVFbGltaW5hdGlvbkdyaWRQbGFjZW1lbnRzKFxuICAgICAgICBicmFja2V0RGF0YSxcbiAgICAgICAgcm91bmRUeXBlTWFwLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIGNhc2UgVE9VUk5BTUVOVF9NT0RFLlNXSVNTX1dJVEhfRUxJTUlOQVRJT046IHtcbiAgICAgIGlmICghc3dpc3NHcm91cHMpIHRocm93IG5ldyBFcnJvcignU3dpc3MgZ3JvdXBzIGFyZSByZXF1aXJlZCBmb3Igc3dpc3Mgd2l0aCBlbGltaW5hdGlvbiBtb2RlJyk7XG5cbiAgICAgIHJldHVybiBnZW5lcmF0ZVN3aXNzV2l0aEVsaW1pbmF0aW9uR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHN3aXNzR3JvdXBzLFxuICAgICAgICByb3VuZFJlbGF0aW9ucyxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbnMsXG4gICAgICAgIG9wdGlvbnNXaXRoRGVmYXVsdHMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZ2VuZXJhdGVHZW5lcmljR3JpZFBsYWNlbWVudHMoXG4gICAgICAgIGJyYWNrZXREYXRhLFxuICAgICAgICByb3VuZFR5cGVNYXAsXG4gICAgICAgIHJvdW5kUmVsYXRpb25zLFxuICAgICAgICBtYXRjaFJlbGF0aW9ucyxcbiAgICAgICAgb3B0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICk7XG4gIH1cbn07XG5cbmNvbnN0IGdlbmVyYXRlR2VuZXJpY0dyaWRQbGFjZW1lbnRzID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KFxuICBicmFja2V0RGF0YTogQnJhY2tldERhdGE8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHJvdW5kVHlwZU1hcDogQnJhY2tldFJvdW5kVHlwZU1hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgcm91bmRSZWxhdGlvbnM6IEJyYWNrZXRSb3VuZFJlbGF0aW9uczxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgbWF0Y2hSZWxhdGlvbnM6IEJyYWNrZXRNYXRjaFJlbGF0aW9uc01hcDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgb3B0aW9uczogR2VuZXJhdGVCcmFja2V0R3JpZEl0ZW1zT3B0aW9uc1dpdGhEZWZhdWx0czxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbikgPT4ge1xuICBjb25zdCBncmlkSXRlbXM6IE1hcDxCcmFja2V0Um91bmRJZCwgQnJhY2tldEdyaWRSb3VuZEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4+ID0gbmV3IE1hcCgpO1xuICBjb25zdCBmaXJzdFJvdW5kID0gYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICBpZiAoIWZpcnN0Um91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcnN0IHJvdW5kIGlzIG1pc3NpbmcnKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgcm91bmQgb2YgYnJhY2tldERhdGEucm91bmRzLnZhbHVlcygpKSB7XG4gICAgY29uc3Qgcm91bmRSZWxhdGlvbiA9IHJvdW5kUmVsYXRpb25zLmdldChyb3VuZC5pZCk7XG5cbiAgICBsZXQgY3VycmVudE1hdGNoUm93ID0gMTtcblxuICAgIGNvbnN0IGNvbHVtblN0YXJ0ID0gcm91bmQuaW5kZXggKyAxO1xuICAgIGNvbnN0IGNvbHVtbkVuZCA9IGNvbHVtblN0YXJ0ICsgMTtcblxuICAgIGlmICghcm91bmRSZWxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3VuZCByZWxhdGlvbiBpcyBtaXNzaW5nJyk7XG4gICAgfVxuXG4gICAgaWYgKHJvdW5kUmVsYXRpb24udHlwZSA9PT0gJ3R3by10by1ub3RoaW5nJyB8fCByb3VuZFJlbGF0aW9uLnR5cGUgPT09ICd0d28tdG8tb25lJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlbGF0aW9uIHR5cGUgJHtyb3VuZFJlbGF0aW9uLnR5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91bmRJdGVtOiBCcmFja2V0R3JpZFJvdW5kSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPiA9IHtcbiAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgIGxheW91dElkOiBgJHtyb3VuZC5pZH0tbGF5b3V0YCxcbiAgICAgIGNvbHVtblN0YXJ0LFxuICAgICAgY29sdW1uRW5kLFxuICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgIGl0ZW1zOiBuZXcgTWFwKCksXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmluY2x1ZGVSb3VuZEhlYWRlcnMpIHtcbiAgICAgIGNvbnN0IHJvdW5kSGVhZGVySXRlbTogQnJhY2tldEdyaWRSb3VuZEhlYWRlckl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgICAgIHR5cGU6ICdyb3VuZCcsXG4gICAgICAgIGlkOiByb3VuZC5pZCxcbiAgICAgICAgbGF5b3V0SWQ6IGAke3JvdW5kLmlkfS1sYXlvdXRgLFxuICAgICAgICByb3dTdGFydDogY3VycmVudE1hdGNoUm93LFxuICAgICAgICByb3dFbmQ6ICsrY3VycmVudE1hdGNoUm93LFxuICAgICAgICBjb21wb25lbnQ6IG9wdGlvbnMuaGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBjbGFzc05hbWU6ICdldC1icmFja2V0LW5ldy1pdGVtIGV0LWJyYWNrZXQtcm91bmQtaGVhZGVyLWNvbnRhaW5lcicsXG4gICAgICAgIHJvdW5kUmVsYXRpb24sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBicmFja2V0Um91bmQ6IHJvdW5kLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcm91bmRJdGVtLml0ZW1zLnNldChyb3VuZC5pZCwgcm91bmRIZWFkZXJJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCByb290Um91bmRNYXRjaEZhY3RvciA9IHJvdW5kUmVsYXRpb24udHlwZSAhPT0gJ25vdGhpbmctdG8tb25lJyA/IHJvdW5kUmVsYXRpb24ucm9vdFJvdW5kTWF0Y2hGYWN0b3IgOiBudWxsO1xuICAgIGNvbnN0IG1hdGNoSGVpZ2h0ID0gcm9vdFJvdW5kTWF0Y2hGYWN0b3IgPyByb290Um91bmRNYXRjaEZhY3RvciA6IDE7XG5cbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHJvdW5kLm1hdGNoZXMudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IG1hdGNoUmVsYXRpb24gPSBtYXRjaFJlbGF0aW9ucy5nZXQobWF0Y2guaWQpO1xuXG4gICAgICBpZiAoIW1hdGNoUmVsYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXRjaCByZWxhdGlvbiBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VSb3cgPSBtYXRjaC5pbmRleEluUm91bmQgKiBtYXRjaEhlaWdodDtcblxuICAgICAgY29uc3QgcGFydGljaXBhbnRTaG9ydElkcyA9IFttYXRjaC5ob21lPy5zaG9ydElkLCBtYXRjaC5hd2F5Py5zaG9ydElkXS5maWx0ZXIoKGlkKSA9PiAhIWlkKS5qb2luKCcgJyk7XG5cbiAgICAgIGNvbnN0IG1hdGNoSXRlbTogQnJhY2tldEdyaWRNYXRjaEl0ZW08VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4gPSB7XG4gICAgICAgIHR5cGU6ICdtYXRjaCcsXG4gICAgICAgIGlkOiBtYXRjaC5pZCxcbiAgICAgICAgbGF5b3V0SWQ6IGAke21hdGNoLmlkfS1sYXlvdXRgLFxuICAgICAgICByb3dTdGFydDogYmFzZVJvdyArIGN1cnJlbnRNYXRjaFJvdyxcbiAgICAgICAgcm93RW5kOiBiYXNlUm93ICsgY3VycmVudE1hdGNoUm93ICsgbWF0Y2hIZWlnaHQsXG4gICAgICAgIGNvbXBvbmVudDpcbiAgICAgICAgICByb3VuZC50eXBlID09PSBDT01NT05fQlJBQ0tFVF9ST1VORF9UWVBFLkZJTkFMID8gb3B0aW9ucy5maW5hbE1hdGNoQ29tcG9uZW50IDogb3B0aW9ucy5tYXRjaENvbXBvbmVudCxcbiAgICAgICAgbWF0Y2hSZWxhdGlvbixcbiAgICAgICAgcm91bmRSZWxhdGlvbixcbiAgICAgICAgY2xhc3NOYW1lOiBgZXQtYnJhY2tldC1uZXctaXRlbSBldC1icmFja2V0LW1hdGNoLWNvbnRhaW5lciAke3BhcnRpY2lwYW50U2hvcnRJZHN9YCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGJyYWNrZXRSb3VuZDogcm91bmQsXG4gICAgICAgICAgYnJhY2tldE1hdGNoOiBtYXRjaCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIHJvdW5kSXRlbS5pdGVtcy5zZXQobWF0Y2guaWQsIG1hdGNoSXRlbSk7XG4gICAgfVxuXG4gICAgZ3JpZEl0ZW1zLnNldChyb3VuZC5pZCwgcm91bmRJdGVtKTtcbiAgfVxuXG4gIHJldHVybiBncmlkSXRlbXM7XG59O1xuXG5jb25zdCBnZW5lcmF0ZURvdWJsZUVsaW1pbmF0aW9uR3JpZFBsYWNlbWVudHMgPSA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4oXG4gIGJyYWNrZXREYXRhOiBCcmFja2V0RGF0YTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPixcbiAgcm91bmRUeXBlTWFwOiBCcmFja2V0Um91bmRUeXBlTWFwPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFJlbGF0aW9uczogQnJhY2tldFJvdW5kUmVsYXRpb25zPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBtYXRjaFJlbGF0aW9uczogQnJhY2tldE1hdGNoUmVsYXRpb25zTWFwPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBvcHRpb25zOiBHZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXNPcHRpb25zV2l0aERlZmF1bHRzPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuKSA9PiB7XG4gIGNvbnN0IGdyaWRJdGVtczogTWFwPEJyYWNrZXRSb3VuZElkLCBCcmFja2V0R3JpZFJvdW5kSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPj4gPSBuZXcgTWFwKCk7XG5cbiAgcmV0dXJuIGdyaWRJdGVtcztcbn07XG5cbmNvbnN0IGdlbmVyYXRlU3dpc3NXaXRoRWxpbWluYXRpb25HcmlkUGxhY2VtZW50cyA9IDxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPihcbiAgYnJhY2tldERhdGE6IEJyYWNrZXREYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFR5cGVNYXA6IEJyYWNrZXRSb3VuZFR5cGVNYXA8VFJvdW5kRGF0YSwgVE1hdGNoRGF0YT4sXG4gIHN3aXNzR3JvdXBzOiBCcmFja2V0Um91bmRNYXBXaXRoU3dpc3NEYXRhPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICByb3VuZFJlbGF0aW9uczogQnJhY2tldFJvdW5kUmVsYXRpb25zPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBtYXRjaFJlbGF0aW9uczogQnJhY2tldE1hdGNoUmVsYXRpb25zTWFwPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuICBvcHRpb25zOiBHZW5lcmF0ZUJyYWNrZXRHcmlkSXRlbXNPcHRpb25zV2l0aERlZmF1bHRzPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+LFxuKSA9PiB7XG4gIGNvbnN0IGdyaWRJdGVtczogTWFwPEJyYWNrZXRSb3VuZElkLCBCcmFja2V0R3JpZFJvdW5kSXRlbTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPj4gPSBuZXcgTWFwKCk7XG5cbiAgcmV0dXJuIGdyaWRJdGVtcztcbn07XG4iXX0=
@@ -0,0 +1,18 @@
1
+ export const createJourneyHighlight = (bracketData) => {
2
+ let styles = '';
3
+ for (const participant of bracketData.participants.values()) {
4
+ styles += `
5
+ .et-new-bracket-host:has(.${participant.shortId}:hover) {
6
+ path, .et-bracket-match-container {
7
+ opacity: 0.5;
8
+ }
9
+
10
+ .${participant.shortId} {
11
+ opacity: 1 !important;
12
+ }
13
+ }
14
+ `;
15
+ }
16
+ return styles.replace(/\s+/g, ' ').trim();
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS1oaWdobGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvYnJhY2tldC9jb21wb25lbnRzL25ldy1icmFja2V0L2pvdXJuZXktaGlnaGxpZ2h0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQXlCLFdBQWdELEVBQUUsRUFBRTtJQUNqSCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJO3NDQUN3QixXQUFXLENBQUMsT0FBTzs7Ozs7ZUFLMUMsV0FBVyxDQUFDLE9BQU87Ozs7U0FJekIsQ0FBQztJQUNSLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyYWNrZXREYXRhIH0gZnJvbSAnLi9icmFja2V0LW5ldyc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVKb3VybmV5SGlnaGxpZ2h0ID0gPFRSb3VuZERhdGEsIFRNYXRjaERhdGE+KGJyYWNrZXREYXRhOiBCcmFja2V0RGF0YTxUUm91bmREYXRhLCBUTWF0Y2hEYXRhPikgPT4ge1xuICBsZXQgc3R5bGVzID0gJyc7XG5cbiAgZm9yIChjb25zdCBwYXJ0aWNpcGFudCBvZiBicmFja2V0RGF0YS5wYXJ0aWNpcGFudHMudmFsdWVzKCkpIHtcbiAgICBzdHlsZXMgKz0gYFxuICAgICAgICAgIC5ldC1uZXctYnJhY2tldC1ob3N0OmhhcyguJHtwYXJ0aWNpcGFudC5zaG9ydElkfTpob3Zlcikge1xuICAgICAgICAgICAgcGF0aCwgLmV0LWJyYWNrZXQtbWF0Y2gtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4ke3BhcnRpY2lwYW50LnNob3J0SWR9IHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBgO1xuICB9XG5cbiAgcmV0dXJuIHN0eWxlcy5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xufTtcbiJdfQ==
@@ -5,10 +5,10 @@ export class NewBracketDefaultMatchComponent {
5
5
  this.bracketRound = input.required();
6
6
  this.bracketMatch = input.required();
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultMatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NewBracketDefaultMatchComponent, isStandalone: true, selector: "et-new-bracket-default-match", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null }, bracketMatch: { classPropertyName: "bracketMatch", publicName: "bracketMatch", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-match-host" }, ngImport: i0, template: ` {{ bracketMatch().id }} `, isInline: true, styles: [".et-new-bracket-default-match-host{display:block;padding:8px;border:1px solid yellow;inline-size:250px;block-size:75px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:12px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketDefaultMatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.12", type: NewBracketDefaultMatchComponent, isStandalone: true, selector: "et-new-bracket-default-match", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null }, bracketMatch: { classPropertyName: "bracketMatch", publicName: "bracketMatch", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-match-host" }, ngImport: i0, template: ` {{ bracketMatch().id }} `, isInline: true, styles: [".et-new-bracket-default-match-host{display:block;padding:8px;border:1px solid yellow;inline-size:250px;block-size:75px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:12px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultMatchComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketDefaultMatchComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'et-new-bracket-default-match', template: ` {{ bracketMatch().id }} `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
14
14
  class: 'et-new-bracket-default-match-host',
@@ -4,10 +4,10 @@ export class NewBracketDefaultRoundHeaderComponent {
4
4
  constructor() {
5
5
  this.bracketRound = input.required();
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NewBracketDefaultRoundHeaderComponent, isStandalone: true, selector: "et-new-bracket-default-round-header", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-round-header-host" }, ngImport: i0, template: ` {{ bracketRound().name }} `, isInline: true, styles: [".et-new-bracket-default-round-header-host{display:block;padding:8px;border:1px solid green;inline-size:250px;block-size:50px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.12", type: NewBracketDefaultRoundHeaderComponent, isStandalone: true, selector: "et-new-bracket-default-round-header", inputs: { bracketRound: { classPropertyName: "bracketRound", publicName: "bracketRound", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-new-bracket-default-round-header-host" }, ngImport: i0, template: ` {{ bracketRound().name }} `, isInline: true, styles: [".et-new-bracket-default-round-header-host{display:block;padding:8px;border:1px solid green;inline-size:250px;block-size:50px;display:flex;justify-content:center;align-items:center;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NewBracketDefaultRoundHeaderComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'et-new-bracket-default-round-header', template: ` {{ bracketRound().name }} `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
13
13
  class: 'et-new-bracket-default-round-header-host',