@sbb-esta/lyne-elements 1.0.0 → 1.2.1

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 (234) hide show
  1. package/accordion/accordion.d.ts +1 -1
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/alert/alert/alert.d.ts +1 -1
  4. package/alert/alert/alert.d.ts.map +1 -1
  5. package/button/common/button-common.d.ts.map +1 -1
  6. package/button/mini-button.js +5 -5
  7. package/calendar/calendar.d.ts +3 -1
  8. package/calendar/calendar.d.ts.map +1 -1
  9. package/calendar.js +62 -52
  10. package/card/common/card-action-common.d.ts.map +1 -1
  11. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  12. package/clock/clock.d.ts +19 -13
  13. package/clock/clock.d.ts.map +1 -1
  14. package/clock.js +93 -87
  15. package/core/decorators/host-attributes.d.ts.map +1 -1
  16. package/core/eventing/throttle.d.ts.map +1 -1
  17. package/core/i18n/i18n.d.ts +1 -3
  18. package/core/i18n/i18n.d.ts.map +1 -1
  19. package/core/i18n.js +91 -127
  20. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  21. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  22. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  23. package/core/mixins/hydration-mixin.d.ts +2 -8
  24. package/core/mixins/hydration-mixin.d.ts.map +1 -1
  25. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  26. package/core/mixins/negative-mixin.d.ts.map +1 -1
  27. package/core/mixins/panel-mixin.d.ts.map +1 -1
  28. package/core/mixins/required-mixin.d.ts.map +1 -1
  29. package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  30. package/core/mixins.js +133 -148
  31. package/core/observers/intersection-observer.d.ts +1 -1
  32. package/core/styles/_index.scss +1 -0
  33. package/core/styles/mixins/buttons.scss +1 -1
  34. package/core/styles/mixins/table.scss +148 -0
  35. package/core/styles/standard-theme.scss +1 -0
  36. package/core/styles/table.scss +56 -0
  37. package/core/testing/private.d.ts +0 -1
  38. package/core/testing/private.d.ts.map +1 -1
  39. package/core/testing/wait-for-render.d.ts +1 -1
  40. package/core/testing/wait-for-render.d.ts.map +1 -1
  41. package/core/testing.js +40 -37
  42. package/custom-elements.json +498 -997
  43. package/datepicker/datepicker-next-day.js +5 -5
  44. package/datepicker/datepicker-previous-day.js +1 -1
  45. package/datepicker/datepicker-toggle.js +7 -7
  46. package/development/accordion/accordion.d.ts +1 -1
  47. package/development/accordion/accordion.d.ts.map +1 -1
  48. package/development/accordion.js +7 -1
  49. package/development/action-group.js +7 -1
  50. package/development/alert/alert/alert.d.ts +1 -1
  51. package/development/alert/alert/alert.d.ts.map +1 -1
  52. package/development/alert/alert-group.js +7 -1
  53. package/development/alert/alert.js +7 -1
  54. package/development/autocomplete.js +7 -1
  55. package/development/breadcrumb/breadcrumb-group.js +7 -1
  56. package/development/breadcrumb/breadcrumb.js +7 -1
  57. package/development/button/common/button-common.d.ts.map +1 -1
  58. package/development/button/common.js +7 -1
  59. package/development/button/mini-button.js +8 -2
  60. package/development/calendar/calendar.d.ts +3 -1
  61. package/development/calendar/calendar.d.ts.map +1 -1
  62. package/development/calendar.js +18 -2
  63. package/development/card/card-badge.js +7 -1
  64. package/development/card/card.js +7 -1
  65. package/development/card/common/card-action-common.d.ts.map +1 -1
  66. package/development/card/common.js +7 -1
  67. package/development/checkbox/checkbox-group.js +7 -1
  68. package/development/checkbox/checkbox.js +7 -1
  69. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  70. package/development/checkbox/common.js +7 -1
  71. package/development/chip.js +7 -1
  72. package/development/clock/clock.d.ts +19 -13
  73. package/development/clock/clock.d.ts.map +1 -1
  74. package/development/clock.js +103 -94
  75. package/development/container/container.js +7 -1
  76. package/development/container/sticky-bar.js +7 -1
  77. package/development/core/decorators/host-attributes.d.ts.map +1 -1
  78. package/development/core/eventing/throttle.d.ts.map +1 -1
  79. package/development/core/i18n/i18n.d.ts +1 -3
  80. package/development/core/i18n/i18n.d.ts.map +1 -1
  81. package/development/core/i18n.js +5 -43
  82. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  83. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  84. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  85. package/development/core/mixins/hydration-mixin.d.ts +2 -8
  86. package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
  87. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  88. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  89. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  90. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  91. package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  92. package/development/core/mixins.js +39 -50
  93. package/development/core/observers/intersection-observer.d.ts +1 -1
  94. package/development/core/testing/private.d.ts +0 -1
  95. package/development/core/testing/private.d.ts.map +1 -1
  96. package/development/core/testing/wait-for-render.d.ts +1 -1
  97. package/development/core/testing/wait-for-render.d.ts.map +1 -1
  98. package/development/core/testing.js +6 -2
  99. package/development/datepicker/datepicker-next-day.js +8 -2
  100. package/development/datepicker/datepicker-previous-day.js +8 -2
  101. package/development/datepicker/datepicker-toggle.js +7 -2
  102. package/development/datepicker/datepicker.js +7 -1
  103. package/development/dialog/dialog-actions.js +7 -1
  104. package/development/dialog/dialog-content.js +7 -1
  105. package/development/dialog/dialog-title.js +7 -1
  106. package/development/dialog/dialog.js +7 -1
  107. package/development/divider.js +7 -1
  108. package/development/expansion-panel/expansion-panel-content.js +7 -1
  109. package/development/expansion-panel/expansion-panel-header.js +7 -1
  110. package/development/expansion-panel/expansion-panel.js +7 -1
  111. package/development/file-selector.js +7 -1
  112. package/development/footer.js +7 -1
  113. package/development/form-error.js +7 -1
  114. package/development/form-field/form-field-clear.js +8 -2
  115. package/development/form-field/form-field.js +7 -1
  116. package/development/header/common/header-action-common.d.ts.map +1 -1
  117. package/development/header/common.js +7 -1
  118. package/development/header/header.js +7 -1
  119. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  120. package/development/icon/icon-request.d.ts.map +1 -1
  121. package/development/icon.js +14 -13
  122. package/development/image.js +7 -1
  123. package/development/journey-header.js +7 -1
  124. package/development/lead-container.js +7 -1
  125. package/development/link/common/block-link-common.d.ts.map +1 -1
  126. package/development/link/common/inline-link-common.d.ts.map +1 -1
  127. package/development/link/common/link-common.d.ts.map +1 -1
  128. package/development/link/common.js +19 -1
  129. package/development/link-list.js +7 -1
  130. package/development/loading-indicator.js +7 -1
  131. package/development/logo.js +7 -1
  132. package/development/map-container.js +7 -1
  133. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  134. package/development/menu/common.js +7 -1
  135. package/development/menu/menu.js +7 -1
  136. package/development/message.js +7 -1
  137. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  138. package/development/navigation/common.js +7 -1
  139. package/development/navigation/navigation-list.js +7 -1
  140. package/development/navigation/navigation-marker.js +7 -1
  141. package/development/navigation/navigation-section.js +7 -1
  142. package/development/navigation/navigation.js +7 -1
  143. package/development/notification.js +8 -1
  144. package/development/option/optgroup/optgroup.d.ts +2 -0
  145. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  146. package/development/option/optgroup.js +21 -4
  147. package/development/option/option/option.d.ts +6 -5
  148. package/development/option/option/option.d.ts.map +1 -1
  149. package/development/option/option.js +53 -29
  150. package/development/overlay.js +7 -1
  151. package/development/popover/popover-trigger.js +8 -2
  152. package/development/popover/popover.js +7 -1
  153. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  154. package/development/radio-button/common.js +7 -1
  155. package/development/radio-button/radio-button-group.js +7 -1
  156. package/development/radio-button/radio-button.js +7 -1
  157. package/development/screen-reader-only.js +7 -1
  158. package/development/select.js +7 -1
  159. package/development/selection-expansion-panel.js +7 -1
  160. package/development/signet.js +7 -1
  161. package/development/skiplink-list.js +7 -1
  162. package/development/slider.js +7 -1
  163. package/development/status.js +7 -1
  164. package/development/stepper/step-label.js +7 -1
  165. package/development/stepper/step.js +7 -1
  166. package/development/stepper/stepper.js +7 -1
  167. package/development/table/table-wrapper/table-wrapper.d.ts +24 -0
  168. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  169. package/development/table/table-wrapper.d.ts +2 -0
  170. package/development/table/table-wrapper.d.ts.map +1 -0
  171. package/development/table/table-wrapper.js +130 -0
  172. package/development/table.d.ts +2 -0
  173. package/development/table.d.ts.map +1 -0
  174. package/development/table.js +2 -0
  175. package/development/tabs/tab-group/tab-group.d.ts +4 -7
  176. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  177. package/development/tabs/tab-group.js +69 -73
  178. package/development/tabs/tab-label.js +7 -1
  179. package/development/tabs/tab.js +7 -1
  180. package/development/tag/tag-group.js +7 -1
  181. package/development/tag/tag.js +7 -1
  182. package/development/teaser.js +7 -1
  183. package/development/time-input.js +7 -1
  184. package/development/timetable-occupancy-icon.js +7 -1
  185. package/development/timetable-occupancy.js +7 -1
  186. package/development/title.js +13 -1
  187. package/development/toast.js +7 -1
  188. package/development/toggle/toggle-option.js +7 -1
  189. package/development/toggle/toggle.js +7 -1
  190. package/development/toggle-check/toggle-check.d.ts +2 -2
  191. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  192. package/development/toggle-check.js +7 -1
  193. package/development/train/train-blocked-passage.js +7 -1
  194. package/development/train/train-formation.js +7 -1
  195. package/development/train/train-wagon.js +7 -1
  196. package/development/train/train.js +7 -1
  197. package/development/visual-checkbox.js +9 -3
  198. package/form-field/form-field-clear.js +1 -1
  199. package/header/common/header-action-common.d.ts.map +1 -1
  200. package/icon/icon-name-mixin.d.ts.map +1 -1
  201. package/icon/icon-request.d.ts.map +1 -1
  202. package/icon.js +86 -86
  203. package/index.d.ts +2 -0
  204. package/index.js +2 -0
  205. package/link/common/block-link-common.d.ts.map +1 -1
  206. package/link/common/inline-link-common.d.ts.map +1 -1
  207. package/link/common/link-common.d.ts.map +1 -1
  208. package/menu/common/menu-action-common.d.ts.map +1 -1
  209. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  210. package/notification.js +1 -1
  211. package/option/optgroup/optgroup.d.ts +2 -0
  212. package/option/optgroup/optgroup.d.ts.map +1 -1
  213. package/option/optgroup.js +24 -21
  214. package/option/option/option.d.ts +6 -5
  215. package/option/option/option.d.ts.map +1 -1
  216. package/option/option.js +72 -69
  217. package/package.json +11 -1
  218. package/popover/popover-trigger.js +1 -1
  219. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  220. package/standard-theme.css +196 -0
  221. package/table/table-wrapper/table-wrapper.d.ts +24 -0
  222. package/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  223. package/table/table-wrapper.d.ts +2 -0
  224. package/table/table-wrapper.d.ts.map +1 -0
  225. package/table/table-wrapper.js +39 -0
  226. package/table.d.ts +2 -0
  227. package/table.d.ts.map +1 -0
  228. package/table.js +1 -0
  229. package/tabs/tab-group/tab-group.d.ts +4 -7
  230. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  231. package/tabs/tab-group.js +80 -81
  232. package/toggle-check/toggle-check.d.ts +2 -2
  233. package/toggle-check/toggle-check.d.ts.map +1 -1
  234. package/visual-checkbox.js +4 -4
@@ -18,6 +18,12 @@ const style = css`/**
18
18
  * }
19
19
  */
20
20
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
21
+ /*
22
+ * SBB table mixin
23
+ * Notes:
24
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
25
+ * Therefore, we have to build the grid avoiding double borders.
26
+ */
21
27
  *,
22
28
  ::before,
23
29
  ::after {
@@ -115,7 +121,7 @@ const style = css`/**
115
121
  color: var(--sbb-button-color-default-text);
116
122
  cursor: pointer;
117
123
  user-select: none;
118
- display: var(--sbb-button-display);
124
+ display: flex;
119
125
  }
120
126
  :host([data-icon-small]) .sbb-popover-trigger::before {
121
127
  position: absolute;
@@ -262,4 +268,4 @@ SbbPopoverTriggerElement = __decorateClass([
262
268
  export {
263
269
  SbbPopoverTriggerElement
264
270
  };
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLXRyaWdnZXIvcG9wb3Zlci10cmlnZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgaG9zdENvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXItdHJpZ2dlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgdHJpZ2dlciBmb3IgdGhlIGBzYmItcG9wb3ZlcmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItcG9wb3Zlci10cmlnZ2VyYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1wb3BvdmVyLXRyaWdnZXInKVxuZXhwb3J0IGNsYXNzIFNiYlBvcG92ZXJUcmlnZ2VyRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbihcbiAgU2JiTmVnYXRpdmVNaXhpbihTYmJJY29uTmFtZU1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gaG9zdENvbnRleHQoJ3NiYi1mb3JtLWZpZWxkJywgdGhpcykgPz8gaG9zdENvbnRleHQoJ1tkYXRhLWZvcm0tZmllbGRdJywgdGhpcyk7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1pY29uLXNtYWxsJywgdHJ1ZSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gKGZvcm1GaWVsZCBhcyBIVE1MRWxlbWVudCkuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2xvdD5cbiAgICAgICAgPHNiYi1pY29uIG5hbWU9JHt0aGlzLmljb25OYW1lIHx8ICdjaXJjbGUtaW5mb3JtYXRpb24tc21hbGwnfT48L3NiYi1pY29uPlxuICAgICAgPC9zbG90PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wb3BvdmVyLXRyaWdnZXInOiBTYmJQb3BvdmVyVHJpZ2dlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JPLElBQU0sMkJBQU4sY0FBdUM7QUFBQSxFQUM1QyxpQkFBaUIsaUJBQWlCLG9CQUFvQixDQUFDO0FBQ3pELEVBQUU7QUFBQSxFQUdnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDeEIsVUFBTSxZQUFZLFlBQVksa0JBQWtCLElBQUksS0FBSyxZQUFZLHFCQUFxQixJQUFJO0FBRTlGLFFBQUksV0FBVztBQUNSLFdBQUEsZ0JBQWdCLG1CQUFtQixJQUFJO0FBQ3ZDLFdBQUEsV0FBWSxVQUEwQixhQUFhLFVBQVU7QUFBQSxJQUNwRTtBQUFBLEVBQ0Y7QUFBQSxFQUVtQixpQkFBaUM7QUFDM0MsV0FBQTtBQUFBO0FBQUEseUJBRWMsS0FBSyxZQUFZLDBCQUEwQjtBQUFBO0FBQUE7QUFBQSxFQUdsRTtBQUNGO0FBdEJhLHlCQUdZLFNBQXlCO0FBSHJDLDJCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLHFCQUFxQjtBQUFBLEdBQ3ZCLHdCQUFBOyJ9
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLXRyaWdnZXIvcG9wb3Zlci10cmlnZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgaG9zdENvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXItdHJpZ2dlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgdHJpZ2dlciBmb3IgdGhlIGBzYmItcG9wb3ZlcmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItcG9wb3Zlci10cmlnZ2VyYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1wb3BvdmVyLXRyaWdnZXInKVxuZXhwb3J0IGNsYXNzIFNiYlBvcG92ZXJUcmlnZ2VyRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbihcbiAgU2JiTmVnYXRpdmVNaXhpbihTYmJJY29uTmFtZU1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gaG9zdENvbnRleHQoJ3NiYi1mb3JtLWZpZWxkJywgdGhpcykgPz8gaG9zdENvbnRleHQoJ1tkYXRhLWZvcm0tZmllbGRdJywgdGhpcyk7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1pY29uLXNtYWxsJywgdHJ1ZSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gKGZvcm1GaWVsZCBhcyBIVE1MRWxlbWVudCkuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2xvdD5cbiAgICAgICAgPHNiYi1pY29uIG5hbWU9JHt0aGlzLmljb25OYW1lIHx8ICdjaXJjbGUtaW5mb3JtYXRpb24tc21hbGwnfT48L3NiYi1pY29uPlxuICAgICAgPC9zbG90PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wb3BvdmVyLXRyaWdnZXInOiBTYmJQb3BvdmVyVHJpZ2dlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JPLElBQU0sMkJBQU4sY0FBdUM7QUFBQSxFQUM1QyxpQkFBaUIsaUJBQWlCLG9CQUFvQixDQUFDO0FBQ3pELEVBQUU7QUFBQSxFQUdnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDeEIsVUFBTSxZQUFZLFlBQVksa0JBQWtCLElBQUksS0FBSyxZQUFZLHFCQUFxQixJQUFJO0FBRTlGLFFBQUksV0FBVztBQUNSLFdBQUEsZ0JBQWdCLG1CQUFtQixJQUFJO0FBQ3ZDLFdBQUEsV0FBWSxVQUEwQixhQUFhLFVBQVU7QUFBQSxJQUNwRTtBQUFBLEVBQ0Y7QUFBQSxFQUVtQixpQkFBaUM7QUFDM0MsV0FBQTtBQUFBO0FBQUEseUJBRWMsS0FBSyxZQUFZLDBCQUEwQjtBQUFBO0FBQUE7QUFBQSxFQUdsRTtBQUNGO0FBdEJhLHlCQUdZLFNBQXlCO0FBSHJDLDJCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLHFCQUFxQjtBQUFBLEdBQ3ZCLHdCQUFBOyJ9
@@ -23,6 +23,12 @@ const style = css`/**
23
23
  * }
24
24
  */
25
25
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
26
+ /*
27
+ * SBB table mixin
28
+ * Notes:
29
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
30
+ * Therefore, we have to build the grid avoiding double borders.
31
+ */
26
32
  *,
27
33
  ::before,
28
34
  ::after {
@@ -550,4 +556,4 @@ SbbPopoverElement = __decorateClass([
550
556
  export {
551
557
  SbbPopoverElement
552
558
  };
553
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHtcbiAgZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50LFxuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIFNiYkZvY3VzSGFuZGxlcixcbiAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyxcbn0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZVBvcG92ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQge1xuICBnZXRFbGVtZW50UG9zaXRpb24sXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5cbmNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDE2O1xuY29uc3QgSE9SSVpPTlRBTF9PRkZTRVQgPSAzMjtcblxubGV0IG5leHRJZCA9IDA7XG5cbmNvbnN0IHBvcG92ZXJzUmVmID0gbmV3IFNldDxTYmJQb3BvdmVyRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHdpdGhpbiBhIHBvcG92ZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBwb3BvdmVyLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfT59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGJlZ2lucyB0aGUgY2xvc2luZ1xuICogdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB9Pn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItcG9wb3Zlci16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItcG9wb3ZlcicpXG5leHBvcnQgY2xhc3MgU2JiUG9wb3ZlckVsZW1lbnQgZXh0ZW5kcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgcG9wb3ZlciBvdmVybGF5LlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLWNsb3NlLWJ1dHRvbicsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGhpZGVDbG9zZUJ1dHRvbj86IGJvb2xlYW4gPVxuICAgIGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gaG92ZXIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvdmVyLXRyaWdnZXInLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBob3ZlclRyaWdnZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3BlbiB0aGUgcG9wb3ZlciBhZnRlciBhIGNlcnRhaW4gZGVsYXkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSkgcHVibGljIG9wZW5EZWxheT8gPSAwO1xuXG4gIC8qKiBDbG9zZSB0aGUgcG9wb3ZlciBhZnRlciBhIGNlcnRhaW4gZGVsYXkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Nsb3NlLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pIHB1YmxpYyBjbG9zZURlbGF5PyA9IDA7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMud2lsbENsb3NlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaWRDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF9wb3BvdmVyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9ob3ZlclRyaWdnZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2luZycpIHx8ICF0aGlzLl9vdmVybGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIHRoZSBvdGhlciBwb3BvdmVyc1xuICAgIGZvciAoY29uc3QgcG9wb3ZlciBvZiBBcnJheS5mcm9tKHBvcG92ZXJzUmVmKSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSBwb3BvdmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICAgICAgaWYgKHN0YXRlICYmIChzdGF0ZSA9PT0gJ29wZW5lZCcgfHwgc3RhdGUgPT09ICdvcGVuaW5nJykpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5fbmV4dEZvY3VzZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3NraXBDbG9zZUZvY3VzID0gZmFsc2U7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoeyBjbG9zZVRhcmdldDogdGFyZ2V0IH0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIHBvcG92ZXIgb24gXCJFc2NcIiBrZXkgcHJlc3NlZCBhbmQgdHJhcHMgZm9jdXMgd2l0aGluIHRoZSBwb3BvdmVyLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICAgIG9sZFZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX3BvcG92ZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgYHNiYi1wb3BvdmVyLSR7KytuZXh0SWR9YDtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgcG9wb3ZlcnNSZWYuYWRkKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJDbGlja0xpc3RlbmVyKHRoaXMudHJpZ2dlciwgY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCd0cmlnZ2VyJykpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2hvdmVyVHJpZ2dlcicpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUVudGVyKCkpO1xuICAgICAgdGhpcy5fb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VMZWF2ZSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgcG9wb3ZlcnNSZWYuZGVsZXRlKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSgpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICghdGhpcy50cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnZGlhbG9nJywgdGhpcy5pZCwgdGhpcy5zdGF0ZSk7XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSB0cmlnZ2VyIGNhbiBiZSBob3ZlcmVkLiBTb21lIGRldmljZXMgbWlnaHQgaW50ZXJwcmV0IHRoZSBtZWRpYSBxdWVyeSAoaG92ZXI6IGhvdmVyKSBkaWZmZXJlbnRseSxcbiAgICAvLyBhbmQgbm90IHJlc3BlY3QgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbSBvbiB0aGUgY2xpY2suIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBpcyBwcmVmZXJyZWQgdG8gaWRlbnRpZnlcbiAgICAvLyBhbGwgbm9uLXRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAgdGhpcy5faG92ZXJUcmlnZ2VyID0gdGhpcy5ob3ZlclRyaWdnZXIgJiYgIXdpbmRvdy5tYXRjaE1lZGlhKCcocG9pbnRlcjogY29hcnNlKScpLm1hdGNoZXM7XG5cbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5fb25UcmlnZ2VyTW91c2VFbnRlciwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3BvcG92ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fb25UcmlnZ2VyTW91c2VMZWF2ZSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3BvcG92ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZ0LmNvZGUgPT09ICdTcGFjZScgfHwgZXZ0LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5fcG9wb3ZlckNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnICYmIHRoaXMub3BlbigpO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9wb3BvdmVyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9vbktleWRvd25FdmVudChldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBwb3BvdmVyIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgcG9wb3ZlciBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgJ3NiYi1wb3BvdmVyLWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUVsZW1lbnQgPSBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoZXZlbnQsICdzYmItcG9wb3Zlci1jbG9zZScsIHRoaXMpO1xuXG4gICAgaWYgKGNsb3NlRWxlbWVudCAmJiAhY2xvc2VFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKGNsb3NlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIHBvcG92ZXIuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIHBvcG92ZXIgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciAmJiAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCkpIHtcbiAgICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5maW5kKChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlRW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vblRyaWdnZXJNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fb3BlblRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgcG9wb3ZlciBwb3NpdGlvbiAoeCwgeSkgdG8gJzAnIG9uY2UgdGhlIHBvcG92ZXIgaXMgY2xvc2VkIGFuZCB0aGUgdHJhbnNpdGlvbiBlbmRlZCB0byBwcmV2ZW50IHRoZVxuICAvLyB2aWV3cG9ydCBmcm9tIG92ZXJmbG93aW5nLiBBbmQgc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgb25jZSB0aGUgcG9wb3ZlciBpcyBvcGVuLlxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uUG9wb3ZlckFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgICAgdGhpcy5fc2V0UG9wb3ZlckZvY3VzKCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIudHJhcCh0aGlzLCB7XG4gICAgICAgIHBvc3RGaWx0ZXI6IChlbCkgPT4gZWwgIT09IHRoaXMuX292ZXJsYXksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLl9vdmVybGF5Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLl9vdmVybGF5Py5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICAgIGlmICghdGhpcy5fc2tpcENsb3NlRm9jdXMpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgfHwgdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG5cbiAgICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1cyk7XG4gICAgICAgIC8vIFRvIGVuYWJsZSBmb2N1c2luZyBvdGhlciBlbGVtZW50IHRoYW4gdGhlIHRyaWdnZXIsIHdlIG5lZWQgdG8gY2FsbCBmb2N1cygpIGEgc2Vjb25kIHRpbWUuXG4gICAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoeyBjbG9zZVRhcmdldDogdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCB9KTtcbiAgICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbc2JiLXBvcG92ZXItY2xvc2VdJykgfHxcbiAgICAgIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpLFxuICAgICAgKTtcbiAgICBpZiAoZmlyc3RGb2N1c2FibGUpIHtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXModGhpcy5fb3ZlcmxheSk7XG4gICAgICB0aGlzLl9vdmVybGF5LmZvY3VzKCk7XG5cbiAgICAgIC8vIFdoZW4gYSBibHVyIG9jY3Vycywgd2Uga25vdyB0aGF0IHRoZSBwb3BvdmVyIGhhcyB0byBiZSBjbG9zZWQsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHBvcG92ZXIuXG4gICAgICAvLyBXaGVuIGEgd2luZG93L3RhYiBjaGFuZ2Ugb2NjdXJzLCBhIGJsdXIgZXZlbnQgaXMgYWxzbyBmaXJlZC4gSG93ZXZlciwgd2hlbiB0aGUgY3VycmVudCB3aW5kb3cvdGFiXG4gICAgICAvLyBiZWNvbWVzIGFjdGl2ZSBhZ2FpbiwgaXQgZm9jdXNlcyBvbmNlIGFnYWluIHRoZSBwb3BvdmVyLlxuICAgICAgLy8gVGhlcmVmb3JlLCB3ZSBjYW5ub3QgbGlzdGVuIHRvIHRoZSBibHVyIGV2ZW50IG9ubHkgb25jZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgYWNjaWRlbnRhbGx5IGNsb3NpbmcgdGhlIHBvcG92ZXIsIHdlIG5lZWQgdG8gY2hlY2sgZm9yIHRoZSB3aW5kb3cvdGFiIHN0YXRlLlxuICAgICAgLy8gV2UgY2FuIGFjaGlldmUgdGhpcyBieSB1c2luZyB2aXNpYmlsaXR5U3RhdGUsIHdoaWNoIG9ubHkgd29ya3Mgd2l0aCBzZXRUaW1lb3V0KCkuXG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheT8ucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2tpcENsb3NlRm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXkgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXBvcG92ZXJfX2NvbnRhaW5lcicpISxcbiAgICAgIHtcbiAgICAgICAgdmVydGljYWxPZmZzZXQ6IFZFUlRJQ0FMX09GRlNFVCxcbiAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogSE9SSVpPTlRBTF9PRkZTRVQsXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlSGVpZ2h0OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgcG9wb3ZlclBvc2l0aW9uLmFsaWdubWVudC52ZXJ0aWNhbCk7XG5cbiAgICBjb25zdCBhcnJvd1hQb3NpdGlvbiA9XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgIHBvcG92ZXJQb3NpdGlvbi5sZWZ0ICtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAtXG4gICAgICA4OyAvLyBoYWxmIHRoZSBzaXplIG9mIHRoZSBwb3BvdmVyIGFycm93XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teScsIGAke3BvcG92ZXJQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgnLCBgJHthcnJvd1hQb3NpdGlvbn1weGApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcG9wb3Zlcl9fY2xvc2VcIj5cbiAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlUG9wb3Zlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgIHNiYi1wb3BvdmVyLWNsb3NlXG4gICAgICAgID48L3NiYi1zZWNvbmRhcnktYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcG9wb3Zlcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5fb25Qb3BvdmVyQW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1wb3BvdmVyXCJcbiAgICAgICAgICByb2xlPVwidG9vbHRpcFwiXG4gICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXkgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fY2xvc2VPblNiYlBvcG92ZXJDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7IXRoaXMuaGlkZUNsb3NlQnV0dG9uICYmICF0aGlzLl9ob3ZlclRyaWdnZXIgPyBjbG9zZUJ1dHRvbiA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHNsb3Q+Tm8gY29udGVudDwvc2xvdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcG9wb3Zlcic6IFNiYlBvcG92ZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sb0JBQW9CO0FBRTFCLElBQUksU0FBUztBQUViLE1BQU0sa0NBQWtCO0FBZ0JYLElBQUEsb0JBQU4sY0FBZ0Msd0JBQXdCO0FBQUEsRUFBeEQsY0FB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
559
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHtcbiAgZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50LFxuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIFNiYkZvY3VzSGFuZGxlcixcbiAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyxcbn0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZVBvcG92ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQge1xuICBnZXRFbGVtZW50UG9zaXRpb24sXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXMsXG59IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5cbmNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDE2O1xuY29uc3QgSE9SSVpPTlRBTF9PRkZTRVQgPSAzMjtcblxubGV0IG5leHRJZCA9IDA7XG5cbmNvbnN0IHBvcG92ZXJzUmVmID0gbmV3IFNldDxTYmJQb3BvdmVyRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHdpdGhpbiBhIHBvcG92ZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBwb3BvdmVyLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfT59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXBvcG92ZXJgIGJlZ2lucyB0aGUgY2xvc2luZ1xuICogdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB9Pn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItcG9wb3Zlci16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItcG9wb3ZlcicpXG5leHBvcnQgY2xhc3MgU2JiUG9wb3ZlckVsZW1lbnQgZXh0ZW5kcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgcG9wb3ZlciBvdmVybGF5LlxuICAgKiBBY2NlcHRzIGJvdGggYSBzdHJpbmcgKGlkIG9mIGFuIGVsZW1lbnQpIG9yIGFuIEhUTUwgZWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLWNsb3NlLWJ1dHRvbicsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGhpZGVDbG9zZUJ1dHRvbj86IGJvb2xlYW4gPVxuICAgIGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gaG92ZXIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvdmVyLXRyaWdnZXInLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBob3ZlclRyaWdnZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3BlbiB0aGUgcG9wb3ZlciBhZnRlciBhIGNlcnRhaW4gZGVsYXkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSkgcHVibGljIG9wZW5EZWxheT8gPSAwO1xuXG4gIC8qKiBDbG9zZSB0aGUgcG9wb3ZlciBhZnRlciBhIGNlcnRhaW4gZGVsYXkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Nsb3NlLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pIHB1YmxpYyBjbG9zZURlbGF5PyA9IDA7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMud2lsbENsb3NlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1wb3BvdmVyYCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaWRDbG9zZTogRXZlbnRFbWl0dGVyPHsgY2xvc2VUYXJnZXQ/OiBIVE1MRWxlbWVudCB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJQb3BvdmVyRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF9wb3BvdmVyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcml2YXRlIF9ob3ZlclRyaWdnZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2luZycpIHx8ICF0aGlzLl9vdmVybGF5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsb3NlIHRoZSBvdGhlciBwb3BvdmVyc1xuICAgIGZvciAoY29uc3QgcG9wb3ZlciBvZiBBcnJheS5mcm9tKHBvcG92ZXJzUmVmKSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSBwb3BvdmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICAgICAgaWYgKHN0YXRlICYmIChzdGF0ZSA9PT0gJ29wZW5lZCcgfHwgc3RhdGUgPT09ICdvcGVuaW5nJykpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5fbmV4dEZvY3VzZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3NraXBDbG9zZUZvY3VzID0gZmFsc2U7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBpZiAoIXRoaXMud2lsbENsb3NlLmVtaXQoeyBjbG9zZVRhcmdldDogdGFyZ2V0IH0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIHBvcG92ZXIgb24gXCJFc2NcIiBrZXkgcHJlc3NlZCBhbmQgdHJhcHMgZm9jdXMgd2l0aGluIHRoZSBwb3BvdmVyLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlcyB0cmlnZ2VyIGNsaWNrIGxpc3RlbmVyIG9uIHRyaWdnZXIgY2hhbmdlLlxuICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyQ2xpY2tMaXN0ZW5lcihcbiAgICBuZXdWYWx1ZT86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICAgIG9sZFZhbHVlPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4gICk6IHZvaWQge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX3BvcG92ZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgYHNiYi1wb3BvdmVyLSR7KytuZXh0SWR9YDtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSB0cmlnZ2VyIGVsZW1lbnQgYW5kIGF0dGFjaCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgcG9wb3ZlcnNSZWYuYWRkKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykpIHtcbiAgICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJDbGlja0xpc3RlbmVyKHRoaXMudHJpZ2dlciwgY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCd0cmlnZ2VyJykpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2hvdmVyVHJpZ2dlcicpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUVudGVyKCkpO1xuICAgICAgdGhpcy5fb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VMZWF2ZSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgcG9wb3ZlcnNSZWYuZGVsZXRlKHRoaXMgYXMgU2JiUG9wb3ZlckVsZW1lbnQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZSgpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcblxuICAgIGlmICghdGhpcy50cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnZGlhbG9nJywgdGhpcy5pZCwgdGhpcy5zdGF0ZSk7XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSB0cmlnZ2VyIGNhbiBiZSBob3ZlcmVkLiBTb21lIGRldmljZXMgbWlnaHQgaW50ZXJwcmV0IHRoZSBtZWRpYSBxdWVyeSAoaG92ZXI6IGhvdmVyKSBkaWZmZXJlbnRseSxcbiAgICAvLyBhbmQgbm90IHJlc3BlY3QgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbSBvbiB0aGUgY2xpY2suIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBpcyBwcmVmZXJyZWQgdG8gaWRlbnRpZnlcbiAgICAvLyBhbGwgbm9uLXRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAgdGhpcy5faG92ZXJUcmlnZ2VyID0gdGhpcy5ob3ZlclRyaWdnZXIgJiYgIXdpbmRvdy5tYXRjaE1lZGlhKCcocG9pbnRlcjogY29hcnNlKScpLm1hdGNoZXM7XG5cbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9wb3BvdmVyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5fb25UcmlnZ2VyTW91c2VFbnRlciwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3BvcG92ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fb25UcmlnZ2VyTW91c2VMZWF2ZSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX3BvcG92ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZ0LmNvZGUgPT09ICdTcGFjZScgfHwgZXZ0LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5fcG9wb3ZlckNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnICYmIHRoaXMub3BlbigpO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9wb3BvdmVyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9vbktleWRvd25FdmVudChldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBwb3BvdmVyIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgcG9wb3ZlciBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgJ3NiYi1wb3BvdmVyLWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUVsZW1lbnQgPSBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoZXZlbnQsICdzYmItcG9wb3Zlci1jbG9zZScsIHRoaXMpO1xuXG4gICAgaWYgKGNsb3NlRWxlbWVudCAmJiAhY2xvc2VFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKGNsb3NlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIHBvcG92ZXIuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIHBvcG92ZXIgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciAmJiAhaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCkpIHtcbiAgICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5maW5kKChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlRW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vblRyaWdnZXJNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fb3BlblRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgcG9wb3ZlciBwb3NpdGlvbiAoeCwgeSkgdG8gJzAnIG9uY2UgdGhlIHBvcG92ZXIgaXMgY2xvc2VkIGFuZCB0aGUgdHJhbnNpdGlvbiBlbmRlZCB0byBwcmV2ZW50IHRoZVxuICAvLyB2aWV3cG9ydCBmcm9tIG92ZXJmbG93aW5nLiBBbmQgc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgb25jZSB0aGUgcG9wb3ZlciBpcyBvcGVuLlxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uUG9wb3ZlckFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgICAgdGhpcy5fc2V0UG9wb3ZlckZvY3VzKCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIudHJhcCh0aGlzLCB7XG4gICAgICAgIHBvc3RGaWx0ZXI6IChlbCkgPT4gZWwgIT09IHRoaXMuX292ZXJsYXksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLl9vdmVybGF5Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLl9vdmVybGF5Py5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICAgIGlmICghdGhpcy5fc2tpcENsb3NlRm9jdXMpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgfHwgdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG5cbiAgICAgICAgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1cyk7XG4gICAgICAgIC8vIFRvIGVuYWJsZSBmb2N1c2luZyBvdGhlciBlbGVtZW50IHRoYW4gdGhlIHRyaWdnZXIsIHdlIG5lZWQgdG8gY2FsbCBmb2N1cygpIGEgc2Vjb25kIHRpbWUuXG4gICAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoeyBjbG9zZVRhcmdldDogdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCB9KTtcbiAgICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbc2JiLXBvcG92ZXItY2xvc2VdJykgfHxcbiAgICAgIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpLFxuICAgICAgKTtcbiAgICBpZiAoZmlyc3RGb2N1c2FibGUpIHtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXModGhpcy5fb3ZlcmxheSk7XG4gICAgICB0aGlzLl9vdmVybGF5LmZvY3VzKCk7XG5cbiAgICAgIC8vIFdoZW4gYSBibHVyIG9jY3Vycywgd2Uga25vdyB0aGF0IHRoZSBwb3BvdmVyIGhhcyB0byBiZSBjbG9zZWQsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHBvcG92ZXIuXG4gICAgICAvLyBXaGVuIGEgd2luZG93L3RhYiBjaGFuZ2Ugb2NjdXJzLCBhIGJsdXIgZXZlbnQgaXMgYWxzbyBmaXJlZC4gSG93ZXZlciwgd2hlbiB0aGUgY3VycmVudCB3aW5kb3cvdGFiXG4gICAgICAvLyBiZWNvbWVzIGFjdGl2ZSBhZ2FpbiwgaXQgZm9jdXNlcyBvbmNlIGFnYWluIHRoZSBwb3BvdmVyLlxuICAgICAgLy8gVGhlcmVmb3JlLCB3ZSBjYW5ub3QgbGlzdGVuIHRvIHRoZSBibHVyIGV2ZW50IG9ubHkgb25jZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgYWNjaWRlbnRhbGx5IGNsb3NpbmcgdGhlIHBvcG92ZXIsIHdlIG5lZWQgdG8gY2hlY2sgZm9yIHRoZSB3aW5kb3cvdGFiIHN0YXRlLlxuICAgICAgLy8gV2UgY2FuIGFjaGlldmUgdGhpcyBieSB1c2luZyB2aXNpYmlsaXR5U3RhdGUsIHdoaWNoIG9ubHkgd29ya3Mgd2l0aCBzZXRUaW1lb3V0KCkuXG4gICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheT8ucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2tpcENsb3NlRm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXkgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXBvcG92ZXJfX2NvbnRhaW5lcicpISxcbiAgICAgIHtcbiAgICAgICAgdmVydGljYWxPZmZzZXQ6IFZFUlRJQ0FMX09GRlNFVCxcbiAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogSE9SSVpPTlRBTF9PRkZTRVQsXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlSGVpZ2h0OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgcG9wb3ZlclBvc2l0aW9uLmFsaWdubWVudC52ZXJ0aWNhbCk7XG5cbiAgICBjb25zdCBhcnJvd1hQb3NpdGlvbiA9XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgIHBvcG92ZXJQb3NpdGlvbi5sZWZ0ICtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAtXG4gICAgICA4OyAvLyBoYWxmIHRoZSBzaXplIG9mIHRoZSBwb3BvdmVyIGFycm93XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teScsIGAke3BvcG92ZXJQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgnLCBgJHthcnJvd1hQb3NpdGlvbn1weGApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcG9wb3Zlcl9fY2xvc2VcIj5cbiAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlUG9wb3Zlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgIHNiYi1wb3BvdmVyLWNsb3NlXG4gICAgICAgID48L3NiYi1zZWNvbmRhcnktYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcG9wb3Zlcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7KGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4gdGhpcy5fb25Qb3BvdmVyQW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1wb3BvdmVyXCJcbiAgICAgICAgICByb2xlPVwidG9vbHRpcFwiXG4gICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXkgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fY2xvc2VPblNiYlBvcG92ZXJDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7IXRoaXMuaGlkZUNsb3NlQnV0dG9uICYmICF0aGlzLl9ob3ZlclRyaWdnZXIgPyBjbG9zZUJ1dHRvbiA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHNsb3Q+Tm8gY29udGVudDwvc2xvdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcG9wb3Zlcic6IFNiYlBvcG92ZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sb0JBQW9CO0FBRTFCLElBQUksU0FBUztBQUViLE1BQU0sa0NBQWtCO0FBZ0JYLElBQUEsb0JBQU4sY0FBZ0Msd0JBQXdCO0FBQUEsRUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAOtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAoC;IACvD,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IACtD,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,OAAO,EADJ,OACI,EAAE;IACrB,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,0DAC/B,CAAC,KACZ,oBAAoB,oCAAoC,CAAC,GAAG,CAmK9D,CAAC"}
1
+ {"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAOtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAoC;IACvD,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IACtD,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,OAAO,EADJ,OACI,EAAE;IACrB,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,cAC5E,CAAC,KACZ,mBAAmB,CAAC,oCAAoC,CAAC,GAAG,CAmK9D,CAAC"}
@@ -165,6 +165,12 @@ const radioButtonCommon = css`/**
165
165
  * }
166
166
  */
167
167
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
168
+ /*
169
+ * SBB table mixin
170
+ * Notes:
171
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
172
+ * Therefore, we have to build the grid avoiding double borders.
173
+ */
168
174
  *,
169
175
  ::before,
170
176
  ::after {
@@ -291,4 +297,4 @@ export {
291
297
  SbbRadioButtonCommonElementMixin,
292
298
  radioButtonCommon as radioButtonCommonStyle
293
299
  };
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL2NvbW1vbi9yYWRpby1idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc2V0T3JSZW1vdmVBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEhhbmRsZXJSZXBvc2l0b3J5LCBmb3JtRWxlbWVudEhhbmRsZXJBc3BlY3QgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiQ2hlY2tlZFN0YXRlQ2hhbmdlLFxuICBTYmJEaXNhYmxlZFN0YXRlQ2hhbmdlLFxuICBTYmJTdGF0ZUNoYW5nZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tZ3JvdXAuanMnO1xuXG5leHBvcnQgdHlwZSBTYmJSYWRpb0J1dHRvblNpemUgPSAncycgfCAnbSc7XG5cbmV4cG9ydCB0eXBlIFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2UgPSBFeHRyYWN0PFxuICBTYmJTdGF0ZUNoYW5nZSxcbiAgU2JiRGlzYWJsZWRTdGF0ZUNoYW5nZSB8IFNiYkNoZWNrZWRTdGF0ZUNoYW5nZVxuPjtcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBhbGxvd0VtcHR5U2VsZWN0aW9uKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgYWxsb3dFbXB0eVNlbGVjdGlvbihib29sZWFuKTtcbiAgcHVibGljIHZhbHVlPzogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldCByZXF1aXJlZChib29sZWFuKTtcbiAgcHVibGljIGdldCBncm91cCgpOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuO1xuICBwdWJsaWMgc2V0IGNoZWNrZWQoYm9vbGVhbik7XG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHJvbGU6ICdyYWRpbycsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICAgIHN0YXRlQ2hhbmdlOiAnc3RhdGVDaGFuZ2UnLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhbGxvdy1lbXB0eS1zZWxlY3Rpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBhbGxvd0VtcHR5U2VsZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9hbGxvd0VtcHR5U2VsZWN0aW9uID0gQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgYWxsb3dFbXB0eVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9hbGxvd0VtcHR5U2VsZWN0aW9uIHx8ICh0aGlzLmdyb3VwPy5hbGxvd0VtcHR5U2VsZWN0aW9uID8/IGZhbHNlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYWxsb3dFbXB0eVNlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgcmFkaW8gYnV0dG9uLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpIHB1YmxpYyB2YWx1ZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBkaXNhYmxlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCAodGhpcy5ncm91cD8uZGlzYWJsZWQgPz8gZmFsc2UpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9yZXF1aXJlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkIHx8ICh0aGlzLmdyb3VwPy5yZXF1aXJlZCA/PyBmYWxzZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3RlZCByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cCgpOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cbiAgICBwcml2YXRlIF9ncm91cDogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBjaGVja2VkLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIExhYmVsIHNpemUgdmFyaWFudCwgZWl0aGVyIG0gb3Igcy5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBzaXplKHZhbHVlOiBTYmJSYWRpb0J1dHRvblNpemUpIHtcbiAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHVibGljIGdldCBzaXplKCk6IFNiYlJhZGlvQnV0dG9uU2l6ZSB7XG4gICAgICByZXR1cm4gdGhpcy5ncm91cD8uc2l6ZSA/PyB0aGlzLl9zaXplO1xuICAgIH1cbiAgICBwcml2YXRlIF9zaXplOiBTYmJSYWRpb0J1dHRvblNpemUgPSAnbSc7XG5cbiAgICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBfaGFuZGxlclJlcG9zaXRvcnkgPSBuZXcgSGFuZGxlclJlcG9zaXRvcnkodGhpcywgZm9ybUVsZW1lbnRIYW5kbGVyQXNwZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIEludGVybmFsIGV2ZW50IHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSByYWRpbyBvcHRpb25cbiAgICAgKiBpbiByZWxhdGlvbiB0byB0aGUgcGFyZW50IHNlbGVjdGlvbiBwYW5lbCBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgICAgdGhpcyxcbiAgICAgIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudC5ldmVudHMuc3RhdGVDaGFuZ2UsXG4gICAgICB7IGJ1YmJsZXM6IHRydWUgfSxcbiAgICApO1xuXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWxsb3dFbXB0eVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2dyb3VwID0gdGhpcy5jbG9zZXN0KCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgYXMgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG5cbiAgICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4gdGhpcy5faGFuZGxlQ2xpY2soZSksIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy5faGFuZGxlclJlcG9zaXRvcnkuY29ubmVjdCgpO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFVwZGF0ZSB0byB1cGRhdGUgdGhlIHJlZmxlY3RlZCBhdHRyaWJ1dGVzXG4gICAgICBbJ2Rpc2FibGVkJywgJ3JlcXVpcmVkJywgJ3NpemUnXS5mb3JFYWNoKChwKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUocCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9oYW5kbGVyUmVwb3NpdG9yeS5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY2hlY2tlZCcpKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWNoZWNrZWQnLCBgJHt0aGlzLmNoZWNrZWR9YCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnY2hlY2tlZCcpISkge1xuICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlLmVtaXQoeyB0eXBlOiAnY2hlY2tlZCcsIGNoZWNrZWQ6IHRoaXMuY2hlY2tlZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAnYXJpYS1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnZGlzYWJsZWQnKSEpIHtcbiAgICAgICAgICB0aGlzLl9zdGF0ZUNoYW5nZS5lbWl0KHsgdHlwZTogJ2Rpc2FibGVkJywgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtcmVxdWlyZWQnLCBgJHt0aGlzLnJlcXVpcmVkfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZUNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmIChldnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQ2EsTUFBQSxtQ0FBbUMsQ0FDOUMsZUFDa0U7QUFJbkQsTUFBQSw4QkFBZixjQUNVLFdBRVY7QUFBQSxJQUhBLGNBQUE7QUFBQSxZQUFBLEdBQUEsU0FBQTtBQWtCRSxXQUFRLHVCQUF1QjtBQWlCL0IsV0FBUSxZQUFZO0FBWXBCLFdBQVEsWUFBWTtBQVFwQixXQUFRLFNBQTRDO0FBWXBELFdBQVEsV0FBVztBQVluQixXQUFRLFFBQTRCO0FBRTVCLFdBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQ3JELFdBQVEscUJBQXFCLElBQUksa0JBQWtCLE1BQU0sd0JBQXdCO0FBT2pGLFdBQVEsZUFBd0QsSUFBSTtBQUFBLFFBQ2xFO0FBQUEsUUFDQSw0QkFBNEIsT0FBTztBQUFBLFFBQ25DLEVBQUUsU0FBUyxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ2xCO0FBQUEsSUFqRkEsSUFBVyxvQkFBb0IsT0FBZ0I7QUFDeEMsV0FB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
300
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL2NvbW1vbi9yYWRpby1idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc2V0T3JSZW1vdmVBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEhhbmRsZXJSZXBvc2l0b3J5LCBmb3JtRWxlbWVudEhhbmRsZXJBc3BlY3QgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiQ2hlY2tlZFN0YXRlQ2hhbmdlLFxuICBTYmJEaXNhYmxlZFN0YXRlQ2hhbmdlLFxuICBTYmJTdGF0ZUNoYW5nZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tZ3JvdXAuanMnO1xuXG5leHBvcnQgdHlwZSBTYmJSYWRpb0J1dHRvblNpemUgPSAncycgfCAnbSc7XG5cbmV4cG9ydCB0eXBlIFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2UgPSBFeHRyYWN0PFxuICBTYmJTdGF0ZUNoYW5nZSxcbiAgU2JiRGlzYWJsZWRTdGF0ZUNoYW5nZSB8IFNiYkNoZWNrZWRTdGF0ZUNoYW5nZVxuPjtcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBhbGxvd0VtcHR5U2VsZWN0aW9uKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgYWxsb3dFbXB0eVNlbGVjdGlvbihib29sZWFuKTtcbiAgcHVibGljIHZhbHVlPzogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldCByZXF1aXJlZChib29sZWFuKTtcbiAgcHVibGljIGdldCBncm91cCgpOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuO1xuICBwdWJsaWMgc2V0IGNoZWNrZWQoYm9vbGVhbik7XG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHJvbGU6ICdyYWRpbycsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICAgIHN0YXRlQ2hhbmdlOiAnc3RhdGVDaGFuZ2UnLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhbGxvdy1lbXB0eS1zZWxlY3Rpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBhbGxvd0VtcHR5U2VsZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9hbGxvd0VtcHR5U2VsZWN0aW9uID0gQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgYWxsb3dFbXB0eVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9hbGxvd0VtcHR5U2VsZWN0aW9uIHx8ICh0aGlzLmdyb3VwPy5hbGxvd0VtcHR5U2VsZWN0aW9uID8/IGZhbHNlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYWxsb3dFbXB0eVNlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgcmFkaW8gYnV0dG9uLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpIHB1YmxpYyB2YWx1ZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBkaXNhYmxlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCAodGhpcy5ncm91cD8uZGlzYWJsZWQgPz8gZmFsc2UpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9yZXF1aXJlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkIHx8ICh0aGlzLmdyb3VwPy5yZXF1aXJlZCA/PyBmYWxzZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3RlZCByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cCgpOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cbiAgICBwcml2YXRlIF9ncm91cDogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBjaGVja2VkLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIExhYmVsIHNpemUgdmFyaWFudCwgZWl0aGVyIG0gb3Igcy5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBzaXplKHZhbHVlOiBTYmJSYWRpb0J1dHRvblNpemUpIHtcbiAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHVibGljIGdldCBzaXplKCk6IFNiYlJhZGlvQnV0dG9uU2l6ZSB7XG4gICAgICByZXR1cm4gdGhpcy5ncm91cD8uc2l6ZSA/PyB0aGlzLl9zaXplO1xuICAgIH1cbiAgICBwcml2YXRlIF9zaXplOiBTYmJSYWRpb0J1dHRvblNpemUgPSAnbSc7XG5cbiAgICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBfaGFuZGxlclJlcG9zaXRvcnkgPSBuZXcgSGFuZGxlclJlcG9zaXRvcnkodGhpcywgZm9ybUVsZW1lbnRIYW5kbGVyQXNwZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIEludGVybmFsIGV2ZW50IHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSByYWRpbyBvcHRpb25cbiAgICAgKiBpbiByZWxhdGlvbiB0byB0aGUgcGFyZW50IHNlbGVjdGlvbiBwYW5lbCBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgICAgdGhpcyxcbiAgICAgIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudC5ldmVudHMuc3RhdGVDaGFuZ2UsXG4gICAgICB7IGJ1YmJsZXM6IHRydWUgfSxcbiAgICApO1xuXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWxsb3dFbXB0eVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2dyb3VwID0gdGhpcy5jbG9zZXN0KCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgYXMgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG5cbiAgICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4gdGhpcy5faGFuZGxlQ2xpY2soZSksIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy5faGFuZGxlclJlcG9zaXRvcnkuY29ubmVjdCgpO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIGNhbGwgcmVxdWVzdFVwZGF0ZSB0byB1cGRhdGUgdGhlIHJlZmxlY3RlZCBhdHRyaWJ1dGVzXG4gICAgICBbJ2Rpc2FibGVkJywgJ3JlcXVpcmVkJywgJ3NpemUnXS5mb3JFYWNoKChwKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUocCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9oYW5kbGVyUmVwb3NpdG9yeS5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY2hlY2tlZCcpKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWNoZWNrZWQnLCBgJHt0aGlzLmNoZWNrZWR9YCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnY2hlY2tlZCcpISkge1xuICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlLmVtaXQoeyB0eXBlOiAnY2hlY2tlZCcsIGNoZWNrZWQ6IHRoaXMuY2hlY2tlZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAnYXJpYS1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnZGlzYWJsZWQnKSEpIHtcbiAgICAgICAgICB0aGlzLl9zdGF0ZUNoYW5nZS5lbWl0KHsgdHlwZTogJ2Rpc2FibGVkJywgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtcmVxdWlyZWQnLCBgJHt0aGlzLnJlcXVpcmVkfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZUNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmIChldnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQ2EsTUFBQSxtQ0FBbUMsQ0FDOUMsZUFDa0U7QUFJbkQsTUFBQSw4QkFBZixjQUNVLFdBRVY7QUFBQSxJQUhBLGNBQUE7QUFBQSxZQUFBLEdBQUEsU0FBQTtBQWtCRSxXQUFRLHVCQUF1QjtBQWlCL0IsV0FBUSxZQUFZO0FBWXBCLFdBQVEsWUFBWTtBQVFwQixXQUFRLFNBQTRDO0FBWXBELFdBQVEsV0FBVztBQVluQixXQUFRLFFBQTRCO0FBRTVCLFdBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQ3JELFdBQVEscUJBQXFCLElBQUksa0JBQWtCLE1BQU0sd0JBQXdCO0FBT2pGLFdBQVEsZUFBd0QsSUFBSTtBQUFBLFFBQ2xFO0FBQUEsUUFDQSw0QkFBNEIsT0FBTztBQUFBLFFBQ25DLEVBQUUsU0FBUyxLQUFLO0FBQUEsTUFBQTtBQUFBLElBQ2xCO0FBQUEsSUFqRkEsSUFBVyxvQkFBb0IsT0FBZ0I7QUFDeEMsV0FB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
@@ -19,6 +19,12 @@ const style = css`/**
19
19
  * }
20
20
  */
21
21
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
22
+ /*
23
+ * SBB table mixin
24
+ * Notes:
25
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
26
+ * Therefore, we have to build the grid avoiding double borders.
27
+ */
22
28
  *,
23
29
  ::before,
24
30
  ::after {
@@ -366,4 +372,4 @@ SbbRadioButtonGroupElement = __decorateClass([
366
372
  export {
367
373
  SbbRadioButtonGroupElement
368
374
  };
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiwgU2JiU3RhdGVDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25TaXplLCBTYmJSYWRpb0J1dHRvblN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9yYWRpby1idXR0b24tZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiUmFkaW9CdXR0b25Hcm91cEV2ZW50RGV0YWlsID0ge1xuICB2YWx1ZTogYW55IHwgbnVsbDtcbiAgcmFkaW9CdXR0b246IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xufTtcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1yYWRpby1idXR0b24tZ3JvdXBgLlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIE9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS4gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+fSBpbnB1dCAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCcpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW9ncm91cCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvcyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FsbG93LWVtcHR5LXNlbGVjdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFsbG93RW1wdHlTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHNpemU6IFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICdtJztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGhvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb207XG5cbiAgLyoqXG4gICAqIFJhZGlvIGdyb3VwJ3Mgb3JpZW50YXRpb24sIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbnRhaW5lZCByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgcHVibGljIGdldCByYWRpb0J1dHRvbnMoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXJhZGlvLWJ1dHRvbiwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCcpID8/IFtdKSBhcyAoXG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25FbGVtZW50XG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnRcbiAgICAgIClbXVxuICAgICkuZmlsdGVyKChlbCkgPT4gZWwuY2xvc2VzdD8uKCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgPT09IHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRSYWRpb3MoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJhZGlvQnV0dG9ucy5maWx0ZXIoKHIpID0+ICFyLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHZhbHVlO1xuICAgICAgcmFkaW8udGFiSW5kZXggPSB0aGlzLl9nZXRSYWRpb1RhYkluZGV4KHJhZGlvKTtcbiAgICB9XG4gICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD4oXG4gICAgdGhpcyxcbiAgICBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmNoYW5nZSxcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIF9pbnB1dDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmlucHV0LFxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzdGF0ZUNoYW5nZScsXG4gICAgICAoZTogQ3VzdG9tRXZlbnQ8U2JiU3RhdGVDaGFuZ2U+KSA9PlxuICAgICAgICB0aGlzLl9vblJhZGlvQnV0dG9uU2VsZWN0KGUgYXMgQ3VzdG9tRXZlbnQ8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4pLFxuICAgICAge1xuICAgICAgICBzaWduYWwsXG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuX2hhc1NlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCA9ICEhdGhpcy5xdWVyeVNlbGVjdG9yPy4oXG4gICAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnLFxuICAgICk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtcGFuZWwnLFxuICAgICAgISF0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwsIHNiYi1yYWRpby1idXR0b24tcGFuZWwnKSxcbiAgICApO1xuICAgIHRoaXMuX3VwZGF0ZVJhZGlvcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJhZGlvLnRhYkluZGV4ID0gdGhpcy5fZ2V0UmFkaW9UYWJJbmRleChyYWRpbyk7XG4gICAgICAgIHJhZGlvLnJlcXVlc3RVcGRhdGU/LignZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+IHIucmVxdWVzdFVwZGF0ZT8uKCdyZXF1aXJlZCcpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlcXVlc3RVcGRhdGU/Lignc2l6ZScpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVSYWRpb3ModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uUmFkaW9CdXR0b25TZWxlY3QoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2U+KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGV2ZW50LmRldGFpbC50eXBlICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbiA9IGV2ZW50LnRhcmdldCBhcyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQ7XG5cbiAgICBpZiAoZXZlbnQuZGV0YWlsLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSByYWRpb0J1dHRvbi52YWx1ZTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UocmFkaW9CdXR0b24sIHRoaXMudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGxvd0VtcHR5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpPy52YWx1ZTtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQsIHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoeyB2YWx1ZSwgcmFkaW9CdXR0b24gfSk7XG4gICAgdGhpcy5faW5wdXQuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVJhZGlvcyhpbml0VmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbnMgPSB0aGlzLnJhZGlvQnV0dG9ucztcblxuICAgIHRoaXMudmFsdWUgPSBpbml0VmFsdWUgPz8gcmFkaW9CdXR0b25zLmZpbmQoKHJhZGlvKSA9PiByYWRpby5jaGVja2VkKT8udmFsdWUgPz8gdGhpcy52YWx1ZTtcblxuICAgIGZvciAoY29uc3QgcmFkaW8gb2YgcmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgICByYWRpby50YWJJbmRleCA9IHRoaXMuX2dldFJhZGlvVGFiSW5kZXgocmFkaW8pO1xuICAgIH1cblxuICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGb2N1c2FibGVSYWRpbygpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQgJiYgIXJhZGlvLmRpc2FibGVkKTtcblxuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuICAgIGlmICghY2hlY2tlZCAmJiBlbmFibGVkUmFkaW9zPy5sZW5ndGgpIHtcbiAgICAgIGVuYWJsZWRSYWRpb3NbMF0udGFiSW5kZXggPSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFJhZGlvVGFiSW5kZXgocmFkaW86IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gcmFkaW8uY2hlY2tlZCAmJiAhcmFkaW8uZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQ7XG5cbiAgICByZXR1cm4gaXNTZWxlY3RlZCB8fCB0aGlzLl9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQgPyAwIDogLTE7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRSYWRpb3MgfHxcbiAgICAgICFlbmFibGVkUmFkaW9zLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkUmFkaW9zLmZpbmRJbmRleChcbiAgICAgIChlOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCkgPT4gZSA9PT0gZXZ0LnRhcmdldCxcbiAgICApO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgIGlmICghdGhpcy5faGFzU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50KSB7XG4gICAgICBlbmFibGVkUmFkaW9zW25leHRJbmRleF0uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdLmZvY3VzKCk7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcmFkaW8tZ3JvdXBcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLl91cGRhdGVSYWRpb3MoKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXJhZGlvLWdyb3VwX19lcnJvclwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJzogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ08sSUFBTSw2QkFBTixjQUF5QyxpQkFBaUIsVUFBVSxFQUFFO0FBQUEsRUFnR3BFLGNBQWM7QUFDYjtBQXJGUixTQUFPLHNCQUErQjtBQUtULFNBQU8sV0FBb0I7QUFVNUMsU0FBTyxPQUEyQjtBQVk5QyxTQUFPLGNBQThCO0FBb0JyQyxTQUFRLHFDQUE4QztBQUN0RCxTQUFRLFdBQVc7QUFDWCxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQWNyRCxTQUFRLGFBQTJCLElBQUk7QUFBQSxNQUNyQztBQUFBLE1BQ0EsMkJBQTJCLE9BQU87QUFBQSxJQUFBO0FBTXBDLFNBQVEsVUFBd0IsSUFBSTtBQUFBLE1BQ2xDO0FBQUEsTUFDQSwyQkFBMkIsT0FBTztBQUFBLElBQUE7QUFNcEMsU0FBUSxTQUF1QixJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUNBLDJCQUEyQixPQUFPO0FBQUEsSUFBQTtBQUtsQyxRQUFJLHVCQUF1QixJQUFJO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXZEQSxJQUFXLGVBQXVFOztBQUNoRixXQUNFLE1BQU0sT0FBSyxVQUFLLHFCQUFMLDhCQUF3QixnREFBK0MsQ0FBRSxDQUFBLEVBSXBGLE9BQU8sQ0FBQyxPQUFPOztBQUFBLGVBQUFBLE1BQUEsR0FBRyxZQUFILGdCQUFBQSxJQUFBLFNBQWEsK0JBQThCO0FBQUEsS0FBSTtBQUFBLEVBQ2xFO0FB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
375
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiwgU2JiU3RhdGVDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25TaXplLCBTYmJSYWRpb0J1dHRvblN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9yYWRpby1idXR0b24tZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiUmFkaW9CdXR0b25Hcm91cEV2ZW50RGV0YWlsID0ge1xuICB2YWx1ZTogYW55IHwgbnVsbDtcbiAgcmFkaW9CdXR0b246IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xufTtcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1yYWRpby1idXR0b24tZ3JvdXBgLlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIE9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS4gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+fSBpbnB1dCAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCcpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW9ncm91cCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvcyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FsbG93LWVtcHR5LXNlbGVjdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFsbG93RW1wdHlTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHNpemU6IFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICdtJztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGhvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb207XG5cbiAgLyoqXG4gICAqIFJhZGlvIGdyb3VwJ3Mgb3JpZW50YXRpb24sIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbnRhaW5lZCByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgcHVibGljIGdldCByYWRpb0J1dHRvbnMoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXJhZGlvLWJ1dHRvbiwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCcpID8/IFtdKSBhcyAoXG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25FbGVtZW50XG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnRcbiAgICAgIClbXVxuICAgICkuZmlsdGVyKChlbCkgPT4gZWwuY2xvc2VzdD8uKCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgPT09IHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRSYWRpb3MoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJhZGlvQnV0dG9ucy5maWx0ZXIoKHIpID0+ICFyLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHZhbHVlO1xuICAgICAgcmFkaW8udGFiSW5kZXggPSB0aGlzLl9nZXRSYWRpb1RhYkluZGV4KHJhZGlvKTtcbiAgICB9XG4gICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD4oXG4gICAgdGhpcyxcbiAgICBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmNoYW5nZSxcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIF9pbnB1dDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmlucHV0LFxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzdGF0ZUNoYW5nZScsXG4gICAgICAoZTogQ3VzdG9tRXZlbnQ8U2JiU3RhdGVDaGFuZ2U+KSA9PlxuICAgICAgICB0aGlzLl9vblJhZGlvQnV0dG9uU2VsZWN0KGUgYXMgQ3VzdG9tRXZlbnQ8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4pLFxuICAgICAge1xuICAgICAgICBzaWduYWwsXG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuX2hhc1NlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCA9ICEhdGhpcy5xdWVyeVNlbGVjdG9yPy4oXG4gICAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnLFxuICAgICk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtcGFuZWwnLFxuICAgICAgISF0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwsIHNiYi1yYWRpby1idXR0b24tcGFuZWwnKSxcbiAgICApO1xuICAgIHRoaXMuX3VwZGF0ZVJhZGlvcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJhZGlvLnRhYkluZGV4ID0gdGhpcy5fZ2V0UmFkaW9UYWJJbmRleChyYWRpbyk7XG4gICAgICAgIHJhZGlvLnJlcXVlc3RVcGRhdGU/LignZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+IHIucmVxdWVzdFVwZGF0ZT8uKCdyZXF1aXJlZCcpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlcXVlc3RVcGRhdGU/Lignc2l6ZScpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVSYWRpb3ModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uUmFkaW9CdXR0b25TZWxlY3QoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2U+KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGV2ZW50LmRldGFpbC50eXBlICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbiA9IGV2ZW50LnRhcmdldCBhcyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQ7XG5cbiAgICBpZiAoZXZlbnQuZGV0YWlsLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSByYWRpb0J1dHRvbi52YWx1ZTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UocmFkaW9CdXR0b24sIHRoaXMudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGxvd0VtcHR5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpPy52YWx1ZTtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQsIHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoeyB2YWx1ZSwgcmFkaW9CdXR0b24gfSk7XG4gICAgdGhpcy5faW5wdXQuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVJhZGlvcyhpbml0VmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbnMgPSB0aGlzLnJhZGlvQnV0dG9ucztcblxuICAgIHRoaXMudmFsdWUgPSBpbml0VmFsdWUgPz8gcmFkaW9CdXR0b25zLmZpbmQoKHJhZGlvKSA9PiByYWRpby5jaGVja2VkKT8udmFsdWUgPz8gdGhpcy52YWx1ZTtcblxuICAgIGZvciAoY29uc3QgcmFkaW8gb2YgcmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgICByYWRpby50YWJJbmRleCA9IHRoaXMuX2dldFJhZGlvVGFiSW5kZXgocmFkaW8pO1xuICAgIH1cblxuICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGb2N1c2FibGVSYWRpbygpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQgJiYgIXJhZGlvLmRpc2FibGVkKTtcblxuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuICAgIGlmICghY2hlY2tlZCAmJiBlbmFibGVkUmFkaW9zPy5sZW5ndGgpIHtcbiAgICAgIGVuYWJsZWRSYWRpb3NbMF0udGFiSW5kZXggPSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFJhZGlvVGFiSW5kZXgocmFkaW86IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gcmFkaW8uY2hlY2tlZCAmJiAhcmFkaW8uZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQ7XG5cbiAgICByZXR1cm4gaXNTZWxlY3RlZCB8fCB0aGlzLl9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQgPyAwIDogLTE7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRSYWRpb3MgfHxcbiAgICAgICFlbmFibGVkUmFkaW9zLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkUmFkaW9zLmZpbmRJbmRleChcbiAgICAgIChlOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCkgPT4gZSA9PT0gZXZ0LnRhcmdldCxcbiAgICApO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgIGlmICghdGhpcy5faGFzU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50KSB7XG4gICAgICBlbmFibGVkUmFkaW9zW25leHRJbmRleF0uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdLmZvY3VzKCk7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcmFkaW8tZ3JvdXBcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLl91cGRhdGVSYWRpb3MoKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXJhZGlvLWdyb3VwX19lcnJvclwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJzogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ08sSUFBTSw2QkFBTixjQUF5QyxpQkFBaUIsVUFBVSxFQUFFO0FBQUEsRUFnR3BFLGNBQWM7QUFDYjtBQXJGUixTQUFPLHNCQUErQjtBQUtULFNBQU8sV0FBb0I7QUFVNUMsU0FBTyxPQUEyQjtBQVk5QyxTQUFPLGNBQThCO0FBb0JyQyxTQUFRLHFDQUE4QztBQUN0RCxTQUFRLFdBQVc7QUFDWCxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQWNyRCxTQUFRLGFBQTJCLElBQUk7QUFBQSxNQUNyQztBQUFBLE1BQ0EsMkJBQTJCLE9BQU87QUFBQSxJQUFBO0FBTXBDLFNBQVEsVUFBd0IsSUFBSTtBQUFBLE1BQ2xDO0FBQUEsTUFDQSwyQkFBMkIsT0FBTztBQUFBLElBQUE7QUFNcEMsU0FBUSxTQUF1QixJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUNBLDJCQUEyQixPQUFPO0FBQUEsSUFBQTtBQUtsQyxRQUFJLHVCQUF1QixJQUFJO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXZEQSxJQUFXLGVBQXVFOztBQUNoRixXQUNFLE1BQU0sT0FBSyxVQUFLLHFCQUFMLDhCQUF3QixnREFBK0MsQ0FBRSxDQUFBLEVBSXBGLE9BQU8sQ0FBQyxPQUFPOztBQUFBLGVBQUFBLE1BQUEsR0FBRyxZQUFILGdCQUFBQSxJQUFBLFNBQWEsK0JBQThCO0FBQUEsS0FBSTtBQUFBLEVB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
@@ -16,6 +16,12 @@ const radioButtonStyle = css`/**
16
16
  * }
17
17
  */
18
18
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
19
+ /*
20
+ * SBB table mixin
21
+ * Notes:
22
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
23
+ * Therefore, we have to build the grid avoiding double borders.
24
+ */
19
25
  *,
20
26
  ::before,
21
27
  ::after {
@@ -80,4 +86,4 @@ SbbRadioButtonElement = __decorateClass([
80
86
  export {
81
87
  SbbRadioButtonElement
82
88
  };
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJTbG90U3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpbiwgcmFkaW9CdXR0b25Db21tb25TdHlsZSB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCByYWRpb0J1dHRvblN0eWxlIGZyb20gJy4vcmFkaW8tYnV0dG9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSByYWRpbyBidXR0b24gZW5oYW5jZWQgd2l0aCB0aGUgU0JCIERlc2lnbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSByYWRpbyBsYWJlbC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1yYWRpby1idXR0b24nKVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uRWxlbWVudCBleHRlbmRzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3JhZGlvQnV0dG9uQ29tbW9uU3R5bGUsIHJhZGlvQnV0dG9uU3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzdGF0ZUNoYW5nZTogJ3N0YXRlQ2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGxhYmVsIGNsYXNzPVwic2JiLXJhZGlvLWJ1dHRvblwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICA/cmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfVxuICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5jaGVja2VkfVxuICAgICAgICAgIHZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXJhZGlvLWJ1dHRvbl9fbGFiZWwtc2xvdFwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcmFkaW8tYnV0dG9uJzogU2JiUmFkaW9CdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlTyxJQUFNLHdCQUFOLGNBQW9DLGlDQUFpQyxVQUFVLEVBQUU7QUFBQSxFQU0vRSxjQUFjO0FBQ2I7QUFDTixRQUFJLHVCQUF1QixJQUFJO0FBQUEsRUFDakM7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQU1XLEtBQUssUUFBUTtBQUFBLHNCQUNiLEtBQUssUUFBUTtBQUFBLHFCQUNkLEtBQUssT0FBTztBQUFBLGtCQUNmLEtBQUssU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFyQztBQUNGO0FBOUJhLHNCQUNZLFNBQXlCLENBQUMsd0JBQXdCLGdCQUFnQjtBQUQ5RSxzQkFFWSxTQUFTO0FBQUEsRUFDOUIsYUFBYTtBQUNmO0FBSlcsd0JBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsa0JBQWtCO0FBQUEsR0FDcEIscUJBQUE7In0=
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJTbG90U3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpbiwgcmFkaW9CdXR0b25Db21tb25TdHlsZSB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCByYWRpb0J1dHRvblN0eWxlIGZyb20gJy4vcmFkaW8tYnV0dG9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSByYWRpbyBidXR0b24gZW5oYW5jZWQgd2l0aCB0aGUgU0JCIERlc2lnbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSByYWRpbyBsYWJlbC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1yYWRpby1idXR0b24nKVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uRWxlbWVudCBleHRlbmRzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3JhZGlvQnV0dG9uQ29tbW9uU3R5bGUsIHJhZGlvQnV0dG9uU3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzdGF0ZUNoYW5nZTogJ3N0YXRlQ2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGxhYmVsIGNsYXNzPVwic2JiLXJhZGlvLWJ1dHRvblwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICA/cmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfVxuICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5jaGVja2VkfVxuICAgICAgICAgIHZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXJhZGlvLWJ1dHRvbl9fbGFiZWwtc2xvdFwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcmFkaW8tYnV0dG9uJzogU2JiUmFkaW9CdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlTyxJQUFNLHdCQUFOLGNBQW9DLGlDQUFpQyxVQUFVLEVBQUU7QUFBQSxFQU0vRSxjQUFjO0FBQ2I7QUFDTixRQUFJLHVCQUF1QixJQUFJO0FBQUEsRUFDakM7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQU1XLEtBQUssUUFBUTtBQUFBLHNCQUNiLEtBQUssUUFBUTtBQUFBLHFCQUNkLEtBQUssT0FBTztBQUFBLGtCQUNmLEtBQUssU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFyQztBQUNGO0FBOUJhLHNCQUNZLFNBQXlCLENBQUMsd0JBQXdCLGdCQUFnQjtBQUQ5RSxzQkFFWSxTQUFTO0FBQUEsRUFDOUIsYUFBYTtBQUNmO0FBSlcsd0JBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsa0JBQWtCO0FBQUEsR0FDcEIscUJBQUE7In0=
@@ -14,6 +14,12 @@ const style = css`/**
14
14
  * }
15
15
  */
16
16
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
17
+ /*
18
+ * SBB table mixin
19
+ * Notes:
20
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
21
+ * Therefore, we have to build the grid avoiding double borders.
22
+ */
17
23
  :host {
18
24
  border: 0;
19
25
  clip: rect(0 0 0 0);
@@ -47,4 +53,4 @@ SbbScreenReaderOnlyElement = __decorateClass([
47
53
  export {
48
54
  SbbScreenReaderOnlyElement
49
55
  };
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlYWRlci1vbmx5LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5L3NjcmVlbi1yZWFkZXItb25seS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NjcmVlbi1yZWFkZXItb25seS5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNhbiBiZSB1c2VkIHRvIHZpc3VhbGx5IGhpZGUgY29udGVudCBidXQgcHJlc2VudCBpdCB0byBzY3JlZW4gcmVhZGVycy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgY29udGVudC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHknKVxuZXhwb3J0IGNsYXNzIFNiYlNjcmVlblJlYWRlck9ubHlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxzbG90Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2NyZWVuLXJlYWRlci1vbmx5JzogU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWWEsSUFBQSw2QkFBTixjQUF5QyxXQUFXO0FBQUEsRUFHdEMsU0FBeUI7QUFDbkMsV0FBQTtBQUFBLEVBQ1Q7QUFDRjtBQU5hLDJCQUNZLFNBQXlCO0FBRHJDLDZCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLHdCQUF3QjtBQUFBLEdBQzFCLDBCQUFBOyJ9
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlYWRlci1vbmx5LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5L3NjcmVlbi1yZWFkZXItb25seS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NjcmVlbi1yZWFkZXItb25seS5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNhbiBiZSB1c2VkIHRvIHZpc3VhbGx5IGhpZGUgY29udGVudCBidXQgcHJlc2VudCBpdCB0byBzY3JlZW4gcmVhZGVycy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgY29udGVudC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHknKVxuZXhwb3J0IGNsYXNzIFNiYlNjcmVlblJlYWRlck9ubHlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxzbG90Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2NyZWVuLXJlYWRlci1vbmx5JzogU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWWEsSUFBQSw2QkFBTixjQUF5QyxXQUFXO0FBQUEsRUFHdEMsU0FBeUI7QUFDbkMsV0FBQTtBQUFBLEVBQ1Q7QUFDRjtBQU5hLDJCQUNZLFNBQXlCO0FBRHJDLDZCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLHdCQUF3QjtBQUFBLEdBQzFCLDBCQUFBOyJ9