@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779195190 → 5.0.0-next.3-dev.1779200097

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 (162) hide show
  1. package/autocomplete/autocomplete-base-element.js +2 -2
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-DRGjFF9_.js → autocomplete-base-element-6leI6UF4.js} +24 -14
  4. package/autocomplete.js +4 -4
  5. package/autocomplete.pure.js +3 -3
  6. package/calendar/calendar/calendar.component.js +2 -2
  7. package/{calendar.component-oS_T4s4k.js → calendar.component-BK4w5GWV.js} +35 -29
  8. package/calendar.js +4 -4
  9. package/calendar.pure.js +3 -3
  10. package/carousel/carousel/carousel.component.js +1 -1
  11. package/carousel/carousel-item/carousel-item.component.js +2 -2
  12. package/carousel/carousel-list/carousel-list.component.js +1 -1
  13. package/{carousel-item.component-DyZAdXL_.js → carousel-item.component-B6WmZPkW.js} +12 -2
  14. package/{carousel-list.component-Ai0uJWB7.js → carousel-list.component-CnZehdy6.js} +6 -13
  15. package/{carousel.component-9oMMOyWo.js → carousel.component-ZrkGeJgZ.js} +1 -1
  16. package/carousel.js +5 -5
  17. package/carousel.pure.js +4 -4
  18. package/chip/chip-group/chip-group.component.js +1 -1
  19. package/{chip-group.component-DJORKUef.js → chip-group.component-BIP7c2G0.js} +2 -7
  20. package/chip.js +1 -1
  21. package/chip.pure.js +1 -1
  22. package/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  23. package/custom-elements.json +3886 -3393
  24. package/datepicker/datepicker/datepicker.component.js +1 -1
  25. package/development/autocomplete/autocomplete-base-element.d.ts +6 -3
  26. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  27. package/development/autocomplete/autocomplete-base-element.js +2 -2
  28. package/development/autocomplete/autocomplete.component.js +1 -1
  29. package/development/autocomplete-base-element-qnPoRLvM.js +695 -0
  30. package/development/autocomplete.js +2 -2
  31. package/development/autocomplete.pure.js +2 -2
  32. package/development/calendar/calendar/calendar.component.d.ts +8 -0
  33. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  34. package/development/calendar/calendar/calendar.component.js +2 -2
  35. package/development/calendar.component-BKWvdgzO.js +1461 -0
  36. package/development/calendar.js +2 -2
  37. package/development/calendar.pure.js +2 -2
  38. package/development/carousel/carousel/carousel.component.js +1 -1
  39. package/development/carousel/carousel-item/carousel-item.component.d.ts +8 -6
  40. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
  41. package/development/carousel/carousel-item/carousel-item.component.js +2 -2
  42. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  43. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  44. package/development/{carousel-item.component-B_0wdIAu.js → carousel-item.component-nuo7jAt3.js} +16 -4
  45. package/development/carousel-list.component-B8PUREwS.js +126 -0
  46. package/development/carousel.component-D_KIJ9Bb.js +139 -0
  47. package/development/carousel.js +4 -4
  48. package/development/carousel.pure.js +4 -4
  49. package/development/chip/chip-group/chip-group.component.d.ts +1 -23
  50. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  51. package/development/chip/chip-group/chip-group.component.js +1 -1
  52. package/development/chip-group.component-CVizDsAz.js +395 -0
  53. package/development/chip.js +1 -1
  54. package/development/chip.pure.js +1 -1
  55. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts +1 -1
  56. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +1 -1
  57. package/development/core/overlay/overlay-outside-pointer-event-listener.js +2 -2
  58. package/development/core.d.ts +0 -1
  59. package/development/core.d.ts.map +1 -1
  60. package/development/datepicker/datepicker/datepicker.component.d.ts +1 -1
  61. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  62. package/development/datepicker/datepicker/datepicker.component.js +3 -3
  63. package/development/dialog/dialog/dialog.component.d.ts +2 -3
  64. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  65. package/development/dialog/dialog/dialog.component.js +1 -1
  66. package/development/{dialog.component-AItB8ixG.js → dialog.component-D8B2dVck.js} +4 -7
  67. package/development/dialog.js +1 -1
  68. package/development/dialog.pure.js +1 -1
  69. package/development/file-selector/common/file-selector-common.d.ts +5 -0
  70. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  71. package/development/file-selector/common/file-selector-common.js +2 -2
  72. package/development/{file-selector-common-CGL95Rnw.js → file-selector-common-mZ5UYxOF.js} +17 -8
  73. package/development/file-selector.js +2 -2
  74. package/development/file-selector.pure.js +2 -2
  75. package/development/form-field/form-field/form-field.component.d.ts +1 -1
  76. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  77. package/development/form-field.component-CPWBCHer.js +1 -1
  78. package/development/overlay/overlay-base-element.d.ts +4 -4
  79. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  80. package/development/overlay/overlay-base-element.js +3 -9
  81. package/development/overlay/overlay.component.d.ts +3 -3
  82. package/development/overlay/overlay.component.d.ts.map +1 -1
  83. package/development/overlay/overlay.component.js +1 -1
  84. package/development/{overlay.component-rFmitc_r.js → overlay.component-YSCuGeme.js} +4 -7
  85. package/development/overlay.js +1 -1
  86. package/development/overlay.pure.js +1 -1
  87. package/development/paginator/common/paginator-common.d.ts +11 -6
  88. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  89. package/development/paginator/common/paginator-common.js +2 -2
  90. package/development/paginator-common-B7iba0wQ.js +432 -0
  91. package/development/paginator.js +2 -2
  92. package/development/paginator.pure.js +2 -2
  93. package/development/popover/popover.component.d.ts +7 -0
  94. package/development/popover/popover.component.d.ts.map +1 -1
  95. package/development/popover/popover.component.js +2 -2
  96. package/development/popover.component-CKUZbWbV.js +578 -0
  97. package/development/popover.js +2 -2
  98. package/development/popover.pure.js +2 -2
  99. package/development/{step.component-CcjtUFyR.js → step.component-B_YHm1tz.js} +32 -10
  100. package/development/stepper/step/step.component.d.ts +14 -1
  101. package/development/stepper/step/step.component.d.ts.map +1 -1
  102. package/development/stepper/step/step.component.js +2 -2
  103. package/development/stepper/stepper/stepper.component.d.ts +9 -5
  104. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  105. package/development/stepper/stepper/stepper.component.js +1 -1
  106. package/development/stepper.component-BeqeUIRN.js +443 -0
  107. package/development/stepper.js +3 -3
  108. package/development/stepper.pure.js +3 -3
  109. package/development/tab-group.component-CGMBihsQ.js +297 -0
  110. package/development/{tab-label.component-CNX8bsJL.js → tab-label.component-CQOLO2t7.js} +11 -13
  111. package/development/tabs/tab-group/tab-group.component.d.ts +15 -8
  112. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  113. package/development/tabs/tab-group/tab-group.component.js +2 -2
  114. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  115. package/development/tabs/tab-label/tab-label.component.js +1 -1
  116. package/development/tabs.js +3 -3
  117. package/development/tabs.pure.js +3 -3
  118. package/dialog/dialog/dialog.component.js +1 -1
  119. package/{dialog.component-4O3__zyd.js → dialog.component-CsBryhM-.js} +3 -6
  120. package/dialog.js +1 -1
  121. package/dialog.pure.js +1 -1
  122. package/file-selector/common/file-selector-common.js +2 -2
  123. package/{file-selector-common-BE780nIa.js → file-selector-common-VNwWFEmM.js} +26 -19
  124. package/file-selector.js +5 -5
  125. package/file-selector.pure.js +4 -4
  126. package/overlay/overlay-base-element.js +2 -8
  127. package/overlay/overlay.component.js +1 -1
  128. package/{overlay.component-C80XN61v.js → overlay.component-myJflfLY.js} +3 -6
  129. package/overlay.js +1 -1
  130. package/overlay.pure.js +1 -1
  131. package/package.json +2 -2
  132. package/paginator/common/paginator-common.js +2 -2
  133. package/{paginator-common-uoCIcl4X.js → paginator-common-BWewgXga.js} +42 -24
  134. package/paginator.js +5 -5
  135. package/paginator.pure.js +4 -4
  136. package/popover/popover.component.js +2 -2
  137. package/{popover.component-DJruKzY-.js → popover.component-Dm_86bPY.js} +19 -7
  138. package/popover.js +3 -3
  139. package/popover.pure.js +2 -2
  140. package/{step.component-BY6_2Wh2.js → step.component-tJh-Pb_E.js} +23 -8
  141. package/stepper/step/step.component.js +2 -2
  142. package/stepper/stepper/stepper.component.js +1 -1
  143. package/{stepper.component-lh0YSbT1.js → stepper.component-BCl77LVa.js} +20 -3
  144. package/stepper.js +4 -4
  145. package/stepper.pure.js +3 -3
  146. package/{tab-group.component-t4eeCNf-.js → tab-group.component-CDhggNpe.js} +27 -2
  147. package/{tab-label.component-DvvSohaG.js → tab-label.component-BuF2qt1T.js} +23 -22
  148. package/tabs/tab-group/tab-group.component.js +2 -2
  149. package/tabs/tab-label/tab-label.component.js +1 -1
  150. package/tabs.js +7 -7
  151. package/tabs.pure.js +6 -6
  152. package/development/autocomplete-base-element-DQiZ6hhk.js +0 -683
  153. package/development/calendar.component-CjlcDyS5.js +0 -1450
  154. package/development/carousel-list.component-DpDh5tqB.js +0 -133
  155. package/development/carousel.component-ClWvnZ8s.js +0 -139
  156. package/development/chip-group.component-Sgmi-kSy.js +0 -403
  157. package/development/core/interfaces/overlay-close-details.d.ts +0 -6
  158. package/development/core/interfaces/overlay-close-details.d.ts.map +0 -1
  159. package/development/paginator-common-BCeNUko_.js +0 -410
  160. package/development/popover.component-BmTfHMFw.js +0 -564
  161. package/development/stepper.component-80S-oXrH.js +0 -422
  162. package/development/tab-group.component-D4fvd6Uu.js +0 -265
@@ -139,12 +139,9 @@ var SbbOverlayElement = (() => {
139
139
  this.removeInstanceFromGlobalCollection();
140
140
  if (!overlayRefs.length) this.scrollHandler.enableScroll();
141
141
  this.escapableOverlayController.disconnect();
142
- this.dispatchCloseEvent({
143
- returnValue: this.returnValue,
144
- closeTarget: this.overlayCloseElement
145
- });
142
+ this.dispatchCloseEvent();
146
143
  }
147
- dispatchBeforeCloseEvent(_detail) {
144
+ dispatchBeforeCloseEvent() {
148
145
  /** @type {SbbOverlayCloseEvent} Emits whenever the component begins the closing transition. Can be canceled. */
149
146
  return this.dispatchEvent(new SbbOverlayCloseEvent("beforeclose", {
150
147
  cancelable: true,
@@ -153,7 +150,7 @@ var SbbOverlayElement = (() => {
153
150
  result: this.returnValue
154
151
  }));
155
152
  }
156
- dispatchCloseEvent(_detail) {
153
+ dispatchCloseEvent() {
157
154
  /** @type {SbbOverlayCloseEvent} Emits whenever the component is closed. */
158
155
  return this.dispatchEvent(new SbbOverlayCloseEvent("close", {
159
156
  closeAttribute: this.closeAttribute,
@@ -203,4 +200,4 @@ var SbbOverlayElement = (() => {
203
200
  //#endregion
204
201
  export { SbbOverlayElement as t };
205
202
 
206
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQtckZtaXRjX3IuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLW92ZXJsYXktcGFkZGluZy1ibG9jazogY2FsYyhcbiAgICB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xNHgpICsgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKVxuICApO1xuICAtLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogdmFyKC0tc2JiLW92ZXJsYXktZGlzcGxheSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1vdmVybGF5LWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW92ZXJsYXktei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW92ZXJsYXktZGlzcGxheTogYmxvY2s7XG4gIC0tc2JiLW92ZXJsYXktY29udGFpbmVyLWRpc3BsYXk6IGZsZXg7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpKSkge1xuICAtLXNiYi1vdmVybGF5LXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tc2JiLW92ZXJsYXktY29sb3I6IHZhcigtLXNiYi1jb2xvci0xLW5lZ2F0aXZlKTtcbiAgLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpIHtcbiAgLS1zYmItb3ZlcmxheS1pbnNldDogMDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi1vdmVybGF5LXBvaW50ZXItZXZlbnRzKTtcbiAgZGlzcGxheTogdmFyKC0tc2JiLW92ZXJsYXktY29udGFpbmVyLWRpc3BsYXkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiB2YXIoLS1zYmItb3ZlcmxheS1pbnNldCk7XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogb3BlbjtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWlubGluZTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW92ZXJsYXktaGVpZ2h0KTtcbiAgY29sb3I6IHZhcigtLXNiYi1vdmVybGF5LWNvbG9yKTtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuLW1vdmUtaW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW92ZXJsYXktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW92ZXJsYXktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2UtbW92ZS1vdXQ7XG4gIH1cbn1cblxuLnNiYi1vdmVybGF5X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW92ZXJsYXktaGVpZ2h0KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXlfX2hlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgcGFkZGluZy1ibG9jay1lbmQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgKiB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXlfX2Nsb3NlIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cblxuLnNiYi1vdmVybGF5X19jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250ZW50LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLV9zYmItb3ZlcmxheS1wYWRkaW5nLWJsb2NrKTtcbn1cblxuLy8gSXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBhbmltYXRpb25zIHdpdGgga2V5ZnJhbWVzIGluc3RlYWQgb2YgdHJhbnNpdGlvbnMgaW4gb3JkZXIgbm90IHRvIGFsdGVyXG4vLyB0aGUgZGVmYXVsdCBgZGlzcGxheTogYmxvY2tgIG9mIHRoZSBtb2RhbCBvdGhlcndpc2UgaXQgY2F1c2VzIHNldmVyYWwgcHJvYmxlbXMsXG4vLyBlc3BlY2lhbGx5IGZvciBhY2Nlc3NpYmlsaXR5LlxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1tb3ZlLWluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2UtbW92ZS1vdXQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vY29udGFpbmVyLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBmb3J3YXJkRXZlbnQsXG4gIGkxOG5DbG9zZURpYWxvZyxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHR5cGUgU2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzLFxuICBzY3JvbGxiYXJTdHlsZXMsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuXG5pbXBvcnQge1xuICBvdmVybGF5UmVmcyxcbiAgU2JiT3ZlcmxheUJhc2VFbGVtZW50LFxuICBTYmJPdmVybGF5Q2xvc2VFdmVudCxcbn0gZnJvbSAnLi9vdmVybGF5LWJhc2UtZWxlbWVudC50cyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9vdmVybGF5LnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgY29udGVudCBmb3IgdGhlIG92ZXJsYXkuXG4gKiBAY3NzcHJvcCBbLS1zYmItb3ZlcmxheS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJPdmVybGF5RWxlbWVudCBleHRlbmRzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItb3ZlcmxheSc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50LFxuICAgIFNiYkNvbnRhaW5lckVsZW1lbnQsXG4gIF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtzY3JvbGxiYXJTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8vIFRPRE86IGZpeCB1c2luZyAuLi5zdXBlci5ldmVudHMgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYmItZGVzaWduLXN5c3RlbXMvbHluZS1jb21wb25lbnRzL2lzc3Vlcy8yNjAwXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIG92ZXJsYXkgY29udGVudCB0byBzdHJldGNoIHRvIGZ1bGwgd2lkdGguXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgcGFnZSBzaXplLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWNsb3NlLWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBjbG9zZUF0dHJpYnV0ZTogc3RyaW5nID0gJ3NiYi1vdmVybGF5LWNsb3NlJztcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRlbnRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIElmIHRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSBvcGVuIG9uIGZpcnN0VXBkYXRlLCBhbm5vdW5jZSB0aGUgdGl0bGVcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuc2V0QXJpYUxpdmVSZWZDb250ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuZm9jdXNUcmFwQ29udHJvbGxlci5mb2N1c0luaXRpYWxFbGVtZW50KCk7XG4gICAgLy8gVXNlIHRpbWVvdXQgdG8gcmVhZCBsYWJlbCBhZnRlciBmb2N1c2VkIGVsZW1lbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QXJpYUxpdmVSZWZDb250ZW50KHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsKSk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmRlYWN0aXZhdGUoKTtcbiAgICBpZiAoIXRoaXMuc2tpcEZvY3VzUmVzdG9yYXRpb24pIHtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlbW92ZUluc3RhbmNlRnJvbUdsb2JhbENvbGxlY3Rpb24oKTtcbiAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBvdmVybGF5IGlmIG5vIG92ZXJsYXkgaXMgb3BlblxuICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICAgIHRoaXMuZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHtcbiAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlbW92ZSBwYXJhbWV0ZXIgYGRldGFpbGBcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChfZGV0YWlsPzogU2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJPdmVybGF5Q2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgU2JiT3ZlcmxheUNsb3NlRXZlbnQoJ2JlZm9yZWNsb3NlJywge1xuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBjbG9zZUF0dHJpYnV0ZTogdGhpcy5jbG9zZUF0dHJpYnV0ZSxcbiAgICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICAgICAgcmVzdWx0OiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlbW92ZSBwYXJhbWV0ZXIgYGRldGFpbGBcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQ2xvc2VFdmVudChfZGV0YWlsPzogU2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJPdmVybGF5Q2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJPdmVybGF5Q2xvc2VFdmVudCgnY2xvc2UnLCB7XG4gICAgICAgIGNsb3NlQXR0cmlidXRlOiB0aGlzLmNsb3NlQXR0cmlidXRlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgICByZXN1bHQ6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW92ZXJsYXlfX2NvbnRhaW5lclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLm9uT3ZlcmxheUFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3ZlcmxheVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuY2xvc2VPblNiYk92ZXJsYXlDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3ZlcmxheV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2Nsb3NlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiJHt0aGlzLmFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsIHx8XG4gICAgICAgICAgICAgICAgaTE4bkNsb3NlRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XCJcbiAgICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgc2JiLW92ZXJsYXktY2xvc2VcbiAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGVudCAke3RoaXMubmVnYXRpdmVcbiAgICAgICAgICAgICAgICA/ICdzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ3NiYi1zY3JvbGxiYXInfVwiXG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5Q29udGVudEVsZW1lbnQgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICAgICAgICBAc2Nyb2xsPSR7KGU6IEV2ZW50KSA9PiBmb3J3YXJkRXZlbnQoZSwgZG9jdW1lbnQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2NvbnRlbnQtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICA/ZXhwYW5kZWQ9JHt0aGlzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICA8L3NiYi1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItb3ZlcmxheSc6IFNiYk92ZXJsYXlFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ2dDYSwyQkFBaUI7bUJBQVM7Ozs7Ozs7Y0FBMUIsMEJBQTBCLFlBQXFCOzs7R0FzQjFDLEtBQUEsNkJBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztHQUt6QixLQUFBLDZDQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLHVDQUFrQyxFQUFFO0dBRTFDLEtBQUEsa0JBQWMsa0JBQUEsTUFBQSwwQ0FBQSxHQUFXO0dBQzNCLEtBQUEseUJBQTZDO0VBaUh2RDs7OzJCQTNIRyxVQUFTLEdBQ1QsU0FBUztJQUFFLFNBQVM7SUFBTSxNQUFNO0dBQU8sQ0FBRSxDQUFDOzBDQUkxQyxVQUFTLEdBQ1QsU0FBUyxFQUFFLFdBQVcsNEJBQTJCLENBQUUsQ0FBQztHQUpyRCxhQUFBLE1BQUEsTUFBQSxzQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGNBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBUSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVIsV0FBUTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSx3QkFBQSwyQkFBQTtHQUt4QixhQUFBLE1BQUEsTUFBQSxxQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDZCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQXVCLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBdkIsMEJBQXVCO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHVDQUFBLDBDQUFBOzs7Ozs7Ozs7R0ExQlAsS0FBQSxjQUFzQjtFQUFjOztHQUM3QyxLQUFBLHNCQUF3QyxDQUM3RCwyQkFDQSxtQkFBQTtFQUNBOztHQUNxQixLQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsZUFBSyxDQUFDO0VBQUU7O0dBR3BELEtBQUEsU0FBUztJQUN2QyxZQUFZO0lBQ1osTUFBTTtJQUNOLGFBQWE7SUFDYixPQUFPOztFQUNFO0VBUVg7Ozs7O0VBQUEsSUFBZ0IsV0FBUTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXhCLElBQWdCLFNBQVEsT0FBQTtHQUFBLEtBQUEsNkJBQUE7RUFBQTtFQUt4Qjs7RUFBQSxJQUFnQiwwQkFBdUI7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUF2QyxJQUFnQix3QkFBdUIsT0FBQTtHQUFBLEtBQUEsNENBQUE7RUFBQTtFQUtwQixhQUFhLG1CQUF1QztHQUNyRSxNQUFNLGFBQWEsaUJBQWlCO0dBR3BDLElBQUksS0FBSyxRQUNQLEtBQUssc0JBQXFCO0VBRTlCO0VBRVUsMEJBQXVCO0dBQy9CLE9BQU8sd0JBQXdCLE1BQU0sa0NBQWtDO0VBQ3pFO0VBRVUsZ0JBQWE7R0FDckIsS0FBSyxRQUFRO0dBQ2IsS0FBSyxnQkFBZ0IsU0FBUTtHQUM3QixLQUFLLG9CQUFvQixvQkFBbUI7R0FFNUMsaUJBQWlCLEtBQUssc0JBQXNCLEtBQUssa0JBQWtCLENBQUM7R0FDcEUsS0FBSyxvQkFBb0IsVUFBVTtHQUNuQyxLQUFLLGtCQUFpQjtFQUN4QjtFQUVtQixnQkFBYTtHQUM5QixLQUFLLHdCQUF3QixTQUFTLEdBQUcsQ0FBQztHQUMxQyxLQUFLLFFBQVE7R0FDYixLQUFLLGNBQWE7R0FDbEIsS0FBSyxnQkFBZ0IsV0FBVTtHQUMvQixJQUFJLENBQUMsS0FBSyxzQkFFUixLQUFLLG9CQUFvQixNQUFLO0dBRWhDLEtBQUssdUJBQXVCLE1BQUs7R0FDakMsS0FBSyxvQkFBb0IsVUFBVTtHQUNuQyxLQUFLLG1DQUFrQztHQUV2QyxJQUFJLENBQUMsWUFBWSxRQUNmLEtBQUssY0FBYyxhQUFZO0dBRWpDLEtBQUssMkJBQTJCLFdBQVU7R0FDMUMsS0FBSyxtQkFBbUI7SUFDdEIsYUFBYSxLQUFLO0lBQ2xCLGFBQWEsS0FBSztJQUNuQjtFQUNIO0VBR21CLHlCQUF5QixTQUFxQzs7R0FFL0UsT0FBTyxLQUFLLGNBQ1YsSUFBSSxxQkFBcUIsZUFBZTtJQUN0QyxZQUFZO0lBQ1osZ0JBQWdCLEtBQUs7SUFDckIsYUFBYSxLQUFLO0lBQ2xCLFFBQVEsS0FBSztJQUNkLENBQUM7RUFFTjtFQUdtQixtQkFBbUIsU0FBcUM7O0dBRXpFLE9BQU8sS0FBSyxjQUNWLElBQUkscUJBQXFCLFNBQVM7SUFDaEMsZ0JBQWdCLEtBQUs7SUFDckIsYUFBYSxLQUFLO0lBQ2xCLFFBQVEsS0FBSztJQUNkLENBQUM7RUFFTjtFQUVtQixTQUFNO0dBQ3ZCLE9BQU8sTUFBSTswREFDMkMsS0FBSyxzQkFBcUI7OztzQkFHOUQsVUFBaUIsS0FBSyw0QkFBNEIsS0FBSyxFQUFBOzs7Ozs7OEJBTS9DLEtBQUssMkJBQ25CLGdCQUFnQixLQUFLLFNBQVMsU0FBUTs0QkFDMUIsS0FBSyxTQUFBOzs7Ozs7OzRDQU9XLEtBQUssV0FDL0IsMkJBQ0EsZ0JBQWU7Z0JBQ2pCLEtBQUssT0FBa0IsS0FBSyx5QkFBeUIsRUFBcUIsRUFBQTt5QkFDakUsTUFBYSxhQUFhLEdBQUcsUUFBUSxFQUFBOzs7OzRCQUlsQyxLQUFLLFNBQUE7Ozs7Ozs7Ozs7O0VBVy9CIn0=
203
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQtWVNDdUdlbWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLW92ZXJsYXktcGFkZGluZy1ibG9jazogY2FsYyhcbiAgICB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xNHgpICsgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKVxuICApO1xuICAtLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogdmFyKC0tc2JiLW92ZXJsYXktZGlzcGxheSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1vdmVybGF5LWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW92ZXJsYXktei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW92ZXJsYXktZGlzcGxheTogYmxvY2s7XG4gIC0tc2JiLW92ZXJsYXktY29udGFpbmVyLWRpc3BsYXk6IGZsZXg7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpKSkge1xuICAtLXNiYi1vdmVybGF5LXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tc2JiLW92ZXJsYXktY29sb3I6IHZhcigtLXNiYi1jb2xvci0xLW5lZ2F0aXZlKTtcbiAgLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpIHtcbiAgLS1zYmItb3ZlcmxheS1pbnNldDogMDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi1vdmVybGF5LXBvaW50ZXItZXZlbnRzKTtcbiAgZGlzcGxheTogdmFyKC0tc2JiLW92ZXJsYXktY29udGFpbmVyLWRpc3BsYXkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiB2YXIoLS1zYmItb3ZlcmxheS1pbnNldCk7XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogb3BlbjtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWlubGluZTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW92ZXJsYXktaGVpZ2h0KTtcbiAgY29sb3I6IHZhcigtLXNiYi1vdmVybGF5LWNvbG9yKTtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuLW1vdmUtaW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW92ZXJsYXktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW92ZXJsYXktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2UtbW92ZS1vdXQ7XG4gIH1cbn1cblxuLnNiYi1vdmVybGF5X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW92ZXJsYXktaGVpZ2h0KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXlfX2hlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgcGFkZGluZy1ibG9jay1lbmQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgKiB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXlfX2Nsb3NlIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cblxuLnNiYi1vdmVybGF5X19jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250ZW50LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLV9zYmItb3ZlcmxheS1wYWRkaW5nLWJsb2NrKTtcbn1cblxuLy8gSXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBhbmltYXRpb25zIHdpdGgga2V5ZnJhbWVzIGluc3RlYWQgb2YgdHJhbnNpdGlvbnMgaW4gb3JkZXIgbm90IHRvIGFsdGVyXG4vLyB0aGUgZGVmYXVsdCBgZGlzcGxheTogYmxvY2tgIG9mIHRoZSBtb2RhbCBvdGhlcndpc2UgaXQgY2F1c2VzIHNldmVyYWwgcHJvYmxlbXMsXG4vLyBlc3BlY2lhbGx5IGZvciBhY2Nlc3NpYmlsaXR5LlxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1tb3ZlLWluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2UtbW92ZS1vdXQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCkpO1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vY29udGFpbmVyLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBmb3J3YXJkRXZlbnQsXG4gIGkxOG5DbG9zZURpYWxvZyxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHNjcm9sbGJhclN0eWxlcyxcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCB7XG4gIG92ZXJsYXlSZWZzLFxuICBTYmJPdmVybGF5QmFzZUVsZW1lbnQsXG4gIFNiYk92ZXJsYXlDbG9zZUV2ZW50LFxufSBmcm9tICcuL292ZXJsYXktYmFzZS1lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL292ZXJsYXkuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGFuIGludGVyYWN0aXZlIG92ZXJsYXkgZWxlbWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgYSBjb250ZW50IGZvciB0aGUgb3ZlcmxheS5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vdmVybGF5LXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk92ZXJsYXlFbGVtZW50IGV4dGVuZHMgU2JiT3ZlcmxheUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1vdmVybGF5JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQsXG4gICAgU2JiQ29udGFpbmVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Njcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLy8gVE9ETzogZml4IHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBldmVudHMgPSB7XG4gICAgYmVmb3Jlb3BlbjogJ2JlZm9yZW9wZW4nLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBiZWZvcmVjbG9zZTogJ2JlZm9yZWNsb3NlJyxcbiAgICBjbG9zZTogJ2Nsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyB0aGUgb3ZlcmxheSBjb250ZW50IHRvIHN0cmV0Y2ggdG8gZnVsbCB3aWR0aC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbnRlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBwYWdlIHNpemUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGNsb3NlQXR0cmlidXRlOiBzdHJpbmcgPSAnc2JiLW92ZXJsYXktY2xvc2UnO1xuICBwcml2YXRlIF9vdmVybGF5Q29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IG9wZW4gb24gZmlyc3RVcGRhdGUsIGFubm91bmNlIHRoZSB0aXRsZVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zZXRBcmlhTGl2ZVJlZkNvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBcmlhTGl2ZVJlZkNvbnRlbnQodGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwpKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRlbnRFbGVtZW50Py5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIGlmICghdGhpcy5za2lwRm9jdXNSZXN0b3JhdGlvbikge1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMucmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpO1xuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG92ZXJsYXkgaWYgbm8gb3ZlcmxheSBpcyBvcGVuXG4gICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICB9XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJPdmVybGF5Q2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgU2JiT3ZlcmxheUNsb3NlRXZlbnQoJ2JlZm9yZWNsb3NlJywge1xuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBjbG9zZUF0dHJpYnV0ZTogdGhpcy5jbG9zZUF0dHJpYnV0ZSxcbiAgICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICAgICAgcmVzdWx0OiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaENsb3NlRXZlbnQoKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJPdmVybGF5Q2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJPdmVybGF5Q2xvc2VFdmVudCgnY2xvc2UnLCB7XG4gICAgICAgIGNsb3NlQXR0cmlidXRlOiB0aGlzLmNsb3NlQXR0cmlidXRlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgICByZXN1bHQ6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW92ZXJsYXlfX2NvbnRhaW5lclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLm9uT3ZlcmxheUFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3ZlcmxheVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuY2xvc2VPblNiYk92ZXJsYXlDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3ZlcmxheV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2Nsb3NlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiJHt0aGlzLmFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsIHx8XG4gICAgICAgICAgICAgICAgaTE4bkNsb3NlRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XCJcbiAgICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgc2JiLW92ZXJsYXktY2xvc2VcbiAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGVudCAke3RoaXMubmVnYXRpdmVcbiAgICAgICAgICAgICAgICA/ICdzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ3NiYi1zY3JvbGxiYXInfVwiXG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5Q29udGVudEVsZW1lbnQgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICAgICAgICBAc2Nyb2xsPSR7KGU6IEV2ZW50KSA9PiBmb3J3YXJkRXZlbnQoZSwgZG9jdW1lbnQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2NvbnRlbnQtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICA/ZXhwYW5kZWQ9JHt0aGlzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICA8L3NiYi1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItb3ZlcmxheSc6IFNiYk92ZXJsYXlFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQytCYSwyQkFBaUI7bUJBQVM7Ozs7Ozs7Y0FBMUIsMEJBQTBCLFlBQXFCOzs7R0FzQjFDLEtBQUEsNkJBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztHQUt6QixLQUFBLDZDQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLHVDQUFrQyxFQUFFO0dBRTFDLEtBQUEsa0JBQWMsa0JBQUEsTUFBQSwwQ0FBQSxHQUFXO0dBQzNCLEtBQUEseUJBQTZDO0VBNEd2RDs7OzJCQXRIRyxVQUFTLEdBQ1QsU0FBUztJQUFFLFNBQVM7SUFBTSxNQUFNO0dBQU8sQ0FBRSxDQUFDOzBDQUkxQyxVQUFTLEdBQ1QsU0FBUyxFQUFFLFdBQVcsNEJBQTJCLENBQUUsQ0FBQztHQUpyRCxhQUFBLE1BQUEsTUFBQSxzQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGNBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBUSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVIsV0FBUTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSx3QkFBQSwyQkFBQTtHQUt4QixhQUFBLE1BQUEsTUFBQSxxQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDZCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQXVCLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBdkIsMEJBQXVCO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHVDQUFBLDBDQUFBOzs7Ozs7Ozs7R0ExQlAsS0FBQSxjQUFzQjtFQUFjOztHQUM3QyxLQUFBLHNCQUF3QyxDQUM3RCwyQkFDQSxtQkFBQTtFQUNBOztHQUNxQixLQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsZUFBSyxDQUFDO0VBQUU7O0dBR3BELEtBQUEsU0FBUztJQUN2QyxZQUFZO0lBQ1osTUFBTTtJQUNOLGFBQWE7SUFDYixPQUFPOztFQUNFO0VBUVg7Ozs7O0VBQUEsSUFBZ0IsV0FBUTtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXhCLElBQWdCLFNBQVEsT0FBQTtHQUFBLEtBQUEsNkJBQUE7RUFBQTtFQUt4Qjs7RUFBQSxJQUFnQiwwQkFBdUI7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUF2QyxJQUFnQix3QkFBdUIsT0FBQTtHQUFBLEtBQUEsNENBQUE7RUFBQTtFQUtwQixhQUFhLG1CQUF1QztHQUNyRSxNQUFNLGFBQWEsaUJBQWlCO0dBR3BDLElBQUksS0FBSyxRQUNQLEtBQUssc0JBQXFCO0VBRTlCO0VBRVUsMEJBQXVCO0dBQy9CLE9BQU8sd0JBQXdCLE1BQU0sa0NBQWtDO0VBQ3pFO0VBRVUsZ0JBQWE7R0FDckIsS0FBSyxRQUFRO0dBQ2IsS0FBSyxnQkFBZ0IsU0FBUTtHQUM3QixLQUFLLG9CQUFvQixvQkFBbUI7R0FFNUMsaUJBQWlCLEtBQUssc0JBQXNCLEtBQUssa0JBQWtCLENBQUM7R0FDcEUsS0FBSyxvQkFBb0IsVUFBVTtHQUNuQyxLQUFLLGtCQUFpQjtFQUN4QjtFQUVtQixnQkFBYTtHQUM5QixLQUFLLHdCQUF3QixTQUFTLEdBQUcsQ0FBQztHQUMxQyxLQUFLLFFBQVE7R0FDYixLQUFLLGNBQWE7R0FDbEIsS0FBSyxnQkFBZ0IsV0FBVTtHQUMvQixJQUFJLENBQUMsS0FBSyxzQkFFUixLQUFLLG9CQUFvQixNQUFLO0dBRWhDLEtBQUssdUJBQXVCLE1BQUs7R0FDakMsS0FBSyxvQkFBb0IsVUFBVTtHQUNuQyxLQUFLLG1DQUFrQztHQUV2QyxJQUFJLENBQUMsWUFBWSxRQUNmLEtBQUssY0FBYyxhQUFZO0dBRWpDLEtBQUssMkJBQTJCLFdBQVU7R0FDMUMsS0FBSyxtQkFBa0I7RUFDekI7RUFFbUIsMkJBQXdCOztHQUV6QyxPQUFPLEtBQUssY0FDVixJQUFJLHFCQUFxQixlQUFlO0lBQ3RDLFlBQVk7SUFDWixnQkFBZ0IsS0FBSztJQUNyQixhQUFhLEtBQUs7SUFDbEIsUUFBUSxLQUFLO0lBQ2QsQ0FBQztFQUVOO0VBRW1CLHFCQUFrQjs7R0FFbkMsT0FBTyxLQUFLLGNBQ1YsSUFBSSxxQkFBcUIsU0FBUztJQUNoQyxnQkFBZ0IsS0FBSztJQUNyQixhQUFhLEtBQUs7SUFDbEIsUUFBUSxLQUFLO0lBQ2QsQ0FBQztFQUVOO0VBRW1CLFNBQU07R0FDdkIsT0FBTyxNQUFJOzBEQUMyQyxLQUFLLHNCQUFxQjs7O3NCQUc5RCxVQUFpQixLQUFLLDRCQUE0QixLQUFLLEVBQUE7Ozs7Ozs4QkFNL0MsS0FBSywyQkFDbkIsZ0JBQWdCLEtBQUssU0FBUyxTQUFROzRCQUMxQixLQUFLLFNBQUE7Ozs7Ozs7NENBT1csS0FBSyxXQUMvQiwyQkFDQSxnQkFBZTtnQkFDakIsS0FBSyxPQUFrQixLQUFLLHlCQUF5QixFQUFxQixFQUFBO3lCQUNqRSxNQUFhLGFBQWEsR0FBRyxRQUFRLEVBQUE7Ozs7NEJBSWxDLEtBQUssU0FBQTs7Ozs7Ozs7Ozs7RUFXL0IifQ==
@@ -1,5 +1,5 @@
1
1
  import { SbbOverlayBaseElement, SbbOverlayCloseEvent, assignOverlayResult, overlayRefs } from "./overlay/overlay-base-element.js";
2
- import { t as SbbOverlayElement } from "./overlay.component-rFmitc_r.js";
2
+ import { t as SbbOverlayElement } from "./overlay.component-YSCuGeme.js";
3
3
  import "./overlay.pure.js";
4
4
  //#region src/elements/overlay.ts
5
5
  /** @entrypoint */
@@ -1,3 +1,3 @@
1
1
  import { SbbOverlayBaseElement, SbbOverlayCloseEvent, assignOverlayResult, overlayRefs } from "./overlay/overlay-base-element.js";
2
- import { t as SbbOverlayElement } from "./overlay.component-rFmitc_r.js";
2
+ import { t as SbbOverlayElement } from "./overlay.component-YSCuGeme.js";
3
3
  export { SbbOverlayBaseElement, SbbOverlayCloseEvent, SbbOverlayElement, assignOverlayResult, overlayRefs };
@@ -1,10 +1,15 @@
1
1
  import { TemplateResult } from 'lit';
2
2
  import { AbstractConstructor, SbbElement, SbbElementConstructor, SbbLanguageController } from '../../core.ts';
3
- export interface SbbPaginatorPageEventDetails {
4
- length: number;
5
- pageSize: number;
6
- pageIndex: number;
7
- previousPageIndex: number;
3
+ export declare class SbbPaginatorPageEvent extends Event {
4
+ private readonly _length;
5
+ private readonly _pageSize;
6
+ private readonly _pageIndex;
7
+ private readonly _previousPageIndex;
8
+ get length(): number;
9
+ get pageSize(): number;
10
+ get pageIndex(): number;
11
+ get previousPageIndex(): number;
12
+ constructor({ length, pageSize, pageIndex, previousPageIndex, }: Omit<SbbPaginatorPageEvent, keyof Event>);
8
13
  }
9
14
  declare const SbbPaginatorCommonElementMixinType_base: AbstractConstructor<import('../../core.ts').SbbNegativeMixinType> & AbstractConstructor<import('../../core.ts').SbbDisabledMixinType> & typeof SbbElement;
10
15
  export declare abstract class SbbPaginatorCommonElementMixinType extends SbbPaginatorCommonElementMixinType_base {
@@ -32,7 +37,7 @@ export declare abstract class SbbPaginatorCommonElementMixinType extends SbbPagi
32
37
  export declare const SbbPaginatorCommonElementMixin: <T extends AbstractConstructor<SbbElement> & SbbElementConstructor>(superClass: T) => AbstractConstructor<SbbPaginatorCommonElementMixinType> & T;
33
38
  declare global {
34
39
  interface HTMLElementEventMap {
35
- page: CustomEvent<SbbPaginatorPageEventDetails>;
40
+ page: SbbPaginatorPageEvent;
36
41
  }
37
42
  }
38
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"paginator-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/common/paginator-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EACL,KAAK,mBAAmB,EAOxB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAG1B,qBAAqB,EAGtB,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,kCAAmC,SAAQ,uCAExE;IACC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC;IAC/C,SAAgB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IACvC,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,8BAA8B,EAAE,MAAM,CAAC;IACvD,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,IAAI;IACpB,SAAS,IAAI,IAAI;IACjB,QAAQ,IAAI,IAAI;IAChB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC/B,eAAe,IAAI,OAAO;IAC1B,WAAW,IAAI,OAAO;IACtB,aAAa,IAAI,MAAM;IAC9B,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAC5E,SAAS,CAAC,qBAAqB,IAAI,cAAc;IACjD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;CACrD;AAGD,eAAO,MAAM,8BAA8B,GACzC,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,kCAAkC,CAAC,GAAG,CA2P5D,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,IAAI,EAAE,WAAW,CAAC,4BAA4B,CAAC,CAAC;KACjD;CACF"}
1
+ {"version":3,"file":"paginator-common.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/common/paginator-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EACL,KAAK,mBAAmB,EAOxB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAG1B,qBAAqB,EAGtB,MAAM,eAAe,CAAC;AAKvB,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAE5C,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,iBAAiB,IAAI,MAAM,CAErC;gBAEkB,EACjB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,iBAAiB,GAClB,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,KAAK,CAAC;CAO5C;;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,kCAAmC,SAAQ,uCAExE;IACC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC;IAC/C,SAAgB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IACvC,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,8BAA8B,EAAE,MAAM,CAAC;IACvD,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,IAAI;IACpB,SAAS,IAAI,IAAI;IACjB,QAAQ,IAAI,IAAI;IAChB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC/B,eAAe,IAAI,OAAO;IAC1B,WAAW,IAAI,OAAO;IACtB,aAAa,IAAI,MAAM;IAC9B,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAC5E,SAAS,CAAC,qBAAqB,IAAI,cAAc;IACjD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;CACrD;AAGD,eAAO,MAAM,8BAA8B,GACzC,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,kCAAkC,CAAC,GAAG,CAyP5D,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,IAAI,EAAE,qBAAqB,CAAC;KAC7B;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbPaginatorCommonElementMixin } from "../../paginator-common-BCeNUko_.js";
2
- export { SbbPaginatorCommonElementMixin };
1
+ import { n as SbbPaginatorPageEvent, t as SbbPaginatorCommonElementMixin } from "../../paginator-common-B7iba0wQ.js";
2
+ export { SbbPaginatorCommonElementMixin, SbbPaginatorPageEvent };
@@ -0,0 +1,432 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, nothing, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbDisabledMixin, SbbLanguageController, SbbNegativeMixin, forceType, i18nNextPage, i18nPage, i18nPaginatorSelected, i18nPreviousPage, sbbInputModalityDetector, screenReaderOnlyStyles } from "./core.js";
5
+ import { SbbMiniButtonElement, SbbMiniButtonGroupElement } from "./button.pure.js";
6
+ import { SbbDividerElement } from "./divider.pure.js";
7
+ //#region src/elements/paginator/common/paginator-common.scss?inline
8
+ var paginator_common_default = ":host([size=s]) {\n --sbb-paginator-height: var(--sbb-size-element-xs);\n}\n\n:host([size=m]) {\n --sbb-paginator-height: var(--sbb-size-element-m);\n}\n\n:host([negative]) {\n --sbb-paginator-color: var(--sbb-color-5);\n}";
9
+ //#endregion
10
+ //#region src/elements/paginator/common/paginator-common.ts
11
+ var SbbPaginatorPageEvent = class extends Event {
12
+ get length() {
13
+ return this._length;
14
+ }
15
+ get pageSize() {
16
+ return this._pageSize;
17
+ }
18
+ get pageIndex() {
19
+ return this._pageIndex;
20
+ }
21
+ get previousPageIndex() {
22
+ return this._previousPageIndex;
23
+ }
24
+ constructor({ length, pageSize, pageIndex, previousPageIndex }) {
25
+ super("page", {
26
+ bubbles: true,
27
+ composed: true
28
+ });
29
+ this._length = length;
30
+ this._pageSize = pageSize;
31
+ this._pageIndex = pageIndex;
32
+ this._previousPageIndex = previousPageIndex;
33
+ }
34
+ };
35
+ var SbbPaginatorCommonElementMixin = (superClass) => {
36
+ return (() => {
37
+ let _classSuper = SbbNegativeMixin(SbbDisabledMixin(superClass));
38
+ let _length_decorators;
39
+ let _length_initializers = [];
40
+ let _length_extraInitializers = [];
41
+ let _pageSize_decorators;
42
+ let _pageSize_initializers = [];
43
+ let _pageSize_extraInitializers = [];
44
+ let _pageIndex_decorators;
45
+ let _pageIndex_initializers = [];
46
+ let _pageIndex_extraInitializers = [];
47
+ let _pagerPosition_decorators;
48
+ let _pagerPosition_initializers = [];
49
+ let _pagerPosition_extraInitializers = [];
50
+ let _size_decorators;
51
+ let _size_initializers = [];
52
+ let _size_extraInitializers = [];
53
+ let _accessibilityPageLabel_decorators;
54
+ let _accessibilityPageLabel_initializers = [];
55
+ let _accessibilityPageLabel_extraInitializers = [];
56
+ let _accessibilityPreviousPageLabel_decorators;
57
+ let _accessibilityPreviousPageLabel_initializers = [];
58
+ let _accessibilityPreviousPageLabel_extraInitializers = [];
59
+ let _accessibilityNextPageLabel_decorators;
60
+ let _accessibilityNextPageLabel_initializers = [];
61
+ let _accessibilityNextPageLabel_extraInitializers = [];
62
+ return class SbbPaginatorCommonElement extends _classSuper {
63
+ constructor() {
64
+ super(...arguments);
65
+ this.#length_accessor_storage = __runInitializers(this, _length_initializers, 0);
66
+ this.#pageSize_accessor_storage = (__runInitializers(this, _length_extraInitializers), __runInitializers(this, _pageSize_initializers, 10));
67
+ this.#pageIndex_accessor_storage = (__runInitializers(this, _pageSize_extraInitializers), __runInitializers(this, _pageIndex_initializers, 0));
68
+ this.#pagerPosition_accessor_storage = (__runInitializers(this, _pageIndex_extraInitializers), __runInitializers(this, _pagerPosition_initializers, "start"));
69
+ this.#size_accessor_storage = (__runInitializers(this, _pagerPosition_extraInitializers), __runInitializers(this, _size_initializers, null));
70
+ this.#accessibilityPageLabel_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _accessibilityPageLabel_initializers, ""));
71
+ this.#accessibilityPreviousPageLabel_accessor_storage = (__runInitializers(this, _accessibilityPageLabel_extraInitializers), __runInitializers(this, _accessibilityPreviousPageLabel_initializers, ""));
72
+ this.#accessibilityNextPageLabel_accessor_storage = (__runInitializers(this, _accessibilityPreviousPageLabel_extraInitializers), __runInitializers(this, _accessibilityNextPageLabel_initializers, ""));
73
+ this.language = (__runInitializers(this, _accessibilityNextPageLabel_extraInitializers), new SbbLanguageController(this));
74
+ }
75
+ static {
76
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
77
+ _length_decorators = [forceType(), property({ type: Number })];
78
+ _pageSize_decorators = [forceType(), property({
79
+ attribute: "page-size",
80
+ type: Number
81
+ })];
82
+ _pageIndex_decorators = [forceType(), property({
83
+ attribute: "page-index",
84
+ type: Number
85
+ })];
86
+ _pagerPosition_decorators = [property({
87
+ attribute: "pager-position",
88
+ reflect: true
89
+ })];
90
+ _size_decorators = [property({ reflect: true })];
91
+ _accessibilityPageLabel_decorators = [forceType(), property({ attribute: "accessibility-page-label" })];
92
+ _accessibilityPreviousPageLabel_decorators = [forceType(), property({ attribute: "accessibility-previous-page-label" })];
93
+ _accessibilityNextPageLabel_decorators = [forceType(), property({ attribute: "accessibility-next-page-label" })];
94
+ __esDecorate(this, null, _length_decorators, {
95
+ kind: "accessor",
96
+ name: "length",
97
+ static: false,
98
+ private: false,
99
+ access: {
100
+ has: (obj) => "length" in obj,
101
+ get: (obj) => obj.length,
102
+ set: (obj, value) => {
103
+ obj.length = value;
104
+ }
105
+ },
106
+ metadata: _metadata
107
+ }, _length_initializers, _length_extraInitializers);
108
+ __esDecorate(this, null, _pageSize_decorators, {
109
+ kind: "accessor",
110
+ name: "pageSize",
111
+ static: false,
112
+ private: false,
113
+ access: {
114
+ has: (obj) => "pageSize" in obj,
115
+ get: (obj) => obj.pageSize,
116
+ set: (obj, value) => {
117
+ obj.pageSize = value;
118
+ }
119
+ },
120
+ metadata: _metadata
121
+ }, _pageSize_initializers, _pageSize_extraInitializers);
122
+ __esDecorate(this, null, _pageIndex_decorators, {
123
+ kind: "accessor",
124
+ name: "pageIndex",
125
+ static: false,
126
+ private: false,
127
+ access: {
128
+ has: (obj) => "pageIndex" in obj,
129
+ get: (obj) => obj.pageIndex,
130
+ set: (obj, value) => {
131
+ obj.pageIndex = value;
132
+ }
133
+ },
134
+ metadata: _metadata
135
+ }, _pageIndex_initializers, _pageIndex_extraInitializers);
136
+ __esDecorate(this, null, _pagerPosition_decorators, {
137
+ kind: "accessor",
138
+ name: "pagerPosition",
139
+ static: false,
140
+ private: false,
141
+ access: {
142
+ has: (obj) => "pagerPosition" in obj,
143
+ get: (obj) => obj.pagerPosition,
144
+ set: (obj, value) => {
145
+ obj.pagerPosition = value;
146
+ }
147
+ },
148
+ metadata: _metadata
149
+ }, _pagerPosition_initializers, _pagerPosition_extraInitializers);
150
+ __esDecorate(this, null, _size_decorators, {
151
+ kind: "accessor",
152
+ name: "size",
153
+ static: false,
154
+ private: false,
155
+ access: {
156
+ has: (obj) => "size" in obj,
157
+ get: (obj) => obj.size,
158
+ set: (obj, value) => {
159
+ obj.size = value;
160
+ }
161
+ },
162
+ metadata: _metadata
163
+ }, _size_initializers, _size_extraInitializers);
164
+ __esDecorate(this, null, _accessibilityPageLabel_decorators, {
165
+ kind: "accessor",
166
+ name: "accessibilityPageLabel",
167
+ static: false,
168
+ private: false,
169
+ access: {
170
+ has: (obj) => "accessibilityPageLabel" in obj,
171
+ get: (obj) => obj.accessibilityPageLabel,
172
+ set: (obj, value) => {
173
+ obj.accessibilityPageLabel = value;
174
+ }
175
+ },
176
+ metadata: _metadata
177
+ }, _accessibilityPageLabel_initializers, _accessibilityPageLabel_extraInitializers);
178
+ __esDecorate(this, null, _accessibilityPreviousPageLabel_decorators, {
179
+ kind: "accessor",
180
+ name: "accessibilityPreviousPageLabel",
181
+ static: false,
182
+ private: false,
183
+ access: {
184
+ has: (obj) => "accessibilityPreviousPageLabel" in obj,
185
+ get: (obj) => obj.accessibilityPreviousPageLabel,
186
+ set: (obj, value) => {
187
+ obj.accessibilityPreviousPageLabel = value;
188
+ }
189
+ },
190
+ metadata: _metadata
191
+ }, _accessibilityPreviousPageLabel_initializers, _accessibilityPreviousPageLabel_extraInitializers);
192
+ __esDecorate(this, null, _accessibilityNextPageLabel_decorators, {
193
+ kind: "accessor",
194
+ name: "accessibilityNextPageLabel",
195
+ static: false,
196
+ private: false,
197
+ access: {
198
+ has: (obj) => "accessibilityNextPageLabel" in obj,
199
+ get: (obj) => obj.accessibilityNextPageLabel,
200
+ set: (obj, value) => {
201
+ obj.accessibilityNextPageLabel = value;
202
+ }
203
+ },
204
+ metadata: _metadata
205
+ }, _accessibilityNextPageLabel_initializers, _accessibilityNextPageLabel_extraInitializers);
206
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
207
+ enumerable: true,
208
+ configurable: true,
209
+ writable: true,
210
+ value: _metadata
211
+ });
212
+ }
213
+ static {
214
+ this.styles = [screenReaderOnlyStyles, unsafeCSS(paginator_common_default)];
215
+ }
216
+ static {
217
+ this.elementDependencies = [
218
+ SbbMiniButtonGroupElement,
219
+ SbbMiniButtonElement,
220
+ SbbDividerElement
221
+ ];
222
+ }
223
+ static {
224
+ this.role = "group";
225
+ }
226
+ #length_accessor_storage;
227
+ /** Total number of items. */
228
+ get length() {
229
+ return this.#length_accessor_storage;
230
+ }
231
+ set length(value) {
232
+ this.#length_accessor_storage = value;
233
+ }
234
+ #pageSize_accessor_storage;
235
+ /** Number of items per page. */
236
+ get pageSize() {
237
+ return this.#pageSize_accessor_storage;
238
+ }
239
+ set pageSize(value) {
240
+ this.#pageSize_accessor_storage = value;
241
+ }
242
+ #pageIndex_accessor_storage;
243
+ /** Current page index. */
244
+ get pageIndex() {
245
+ return this.#pageIndex_accessor_storage;
246
+ }
247
+ set pageIndex(value) {
248
+ this.#pageIndex_accessor_storage = value;
249
+ }
250
+ #pagerPosition_accessor_storage;
251
+ /** Position of the prev/next buttons. */
252
+ get pagerPosition() {
253
+ return this.#pagerPosition_accessor_storage;
254
+ }
255
+ set pagerPosition(value) {
256
+ this.#pagerPosition_accessor_storage = value;
257
+ }
258
+ #size_accessor_storage;
259
+ /**
260
+ * Size variant, either s (lean theme default) or m (standard theme default).
261
+ */
262
+ get size() {
263
+ return this.#size_accessor_storage;
264
+ }
265
+ set size(value) {
266
+ this.#size_accessor_storage = value;
267
+ }
268
+ #accessibilityPageLabel_accessor_storage;
269
+ /**
270
+ * Accessibility label for the page. Defaults to `page`.
271
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
272
+ */
273
+ get accessibilityPageLabel() {
274
+ return this.#accessibilityPageLabel_accessor_storage;
275
+ }
276
+ set accessibilityPageLabel(value) {
277
+ this.#accessibilityPageLabel_accessor_storage = value;
278
+ }
279
+ #accessibilityPreviousPageLabel_accessor_storage;
280
+ /**
281
+ * Accessibility label for the previous page. Defaults to `previous page`.
282
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
283
+ */
284
+ get accessibilityPreviousPageLabel() {
285
+ return this.#accessibilityPreviousPageLabel_accessor_storage;
286
+ }
287
+ set accessibilityPreviousPageLabel(value) {
288
+ this.#accessibilityPreviousPageLabel_accessor_storage = value;
289
+ }
290
+ #accessibilityNextPageLabel_accessor_storage;
291
+ /**
292
+ * Accessibility label for the next page. Defaults to `next page`.
293
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
294
+ */
295
+ get accessibilityNextPageLabel() {
296
+ return this.#accessibilityNextPageLabel_accessor_storage;
297
+ }
298
+ set accessibilityNextPageLabel(value) {
299
+ this.#accessibilityNextPageLabel_accessor_storage = value;
300
+ }
301
+ willUpdate(changedProperties) {
302
+ super.willUpdate(changedProperties);
303
+ let prevPageIndex = null;
304
+ if (changedProperties.has("length") && this.length !== changedProperties.get("length")) {
305
+ this.length = isNaN(this.length) || this.length < 0 ? 0 : this.length;
306
+ /**
307
+ * If the pageIndex changes, it's added in the changedProperties map
308
+ * and handled in the pageIndex logic below, emitting the page event.
309
+ * If the pageIndex doesn't change there's no need to emit.
310
+ */
311
+ this.pageIndex = this._coercePageIndexInRange(this.pageIndex);
312
+ }
313
+ if (changedProperties.has("pageSize") && this.pageSize !== changedProperties.get("pageSize")) {
314
+ const previousPageSize = changedProperties.get("pageSize");
315
+ this.pageSize = isNaN(this.pageSize) || this.pageSize < 0 ? 0 : this.pageSize;
316
+ if (previousPageSize && !changedProperties.has("pageIndex")) this.pageIndex = Math.floor(this.pageIndex * previousPageSize / this.pageSize) || 0;
317
+ /**
318
+ * If the pageIndex changes, it's added in the changedProperties map,
319
+ * and this line is useless, since the correct value will be calculated in the logic below;
320
+ * if the pageIndex doesn't change (e.g. change pageSize at pageIndex 0), the prevPageIndex and pageIndex are the same.
321
+ * In both case the page event must be triggered to allow consumers to retrieve the correct data.
322
+ */
323
+ prevPageIndex = this.pageIndex;
324
+ }
325
+ if (changedProperties.has("pageIndex") && this.pageIndex !== changedProperties.get("pageIndex")) {
326
+ this.pageIndex = this._coercePageIndexInRange(this.pageIndex);
327
+ prevPageIndex = changedProperties.get("pageIndex");
328
+ }
329
+ if (prevPageIndex !== null) this._emitPageEvent(prevPageIndex);
330
+ }
331
+ updated(changedProperties) {
332
+ super.updated(changedProperties);
333
+ this.shadowRoot.querySelector(".sbb-screen-reader-only#status").textContent = this._currentPageLabel();
334
+ }
335
+ /** Evaluate `pageIndex` by excluding edge cases. */
336
+ _coercePageIndexInRange(pageIndex) {
337
+ return Math.max(Math.min(Math.max(isNaN(pageIndex) ? 0 : pageIndex, 0), this.numberOfPages() - 1), 0);
338
+ }
339
+ _currentPageLabel() {
340
+ return `${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${this.pageIndex + 1} ${i18nPaginatorSelected[this.language.current]}.`;
341
+ }
342
+ /** Advances to the next page if it exists. */
343
+ nextPage() {
344
+ this.pageIndex = this.pageIndex + 1;
345
+ }
346
+ /** Move back to the previous page if it exists. */
347
+ previousPage() {
348
+ this.pageIndex = this.pageIndex - 1;
349
+ }
350
+ /** Move to the first page if not already there. */
351
+ firstPage() {
352
+ this.pageIndex = 0;
353
+ }
354
+ /** Move to the last page if not already there. */
355
+ lastPage() {
356
+ this.pageIndex = this.numberOfPages() - 1;
357
+ }
358
+ /** Move to a specific page index. */
359
+ selectPage(index) {
360
+ this.pageIndex = index;
361
+ }
362
+ /** Whether there is a previous page. */
363
+ hasPreviousPage() {
364
+ return this.pageIndex >= 1 && this.pageSize !== 0;
365
+ }
366
+ /** Whether there is a next page. */
367
+ hasNextPage() {
368
+ const maxPageIndex = this.numberOfPages() - 1;
369
+ return this.pageIndex < maxPageIndex && this.pageSize !== 0;
370
+ }
371
+ /**
372
+ * Calculates the current number of pages based on the `length` and the `pageSize`;
373
+ * value must be rounded up (e.g. `length = 21` and `pageSize = 10` means 3 pages).
374
+ */
375
+ numberOfPages() {
376
+ return this.pageSize ? Math.ceil(this.length / this.pageSize) : 0;
377
+ }
378
+ _emitPageEvent(previousPageIndex) {
379
+ if (this.hasUpdated) {
380
+ const page = {
381
+ previousPageIndex,
382
+ pageIndex: this.pageIndex,
383
+ length: this.length,
384
+ pageSize: this.pageSize
385
+ };
386
+ /**
387
+ * @type {SbbPaginatorPageEvent}
388
+ * The page event is dispatched when the page index, length or page size changes.
389
+ */
390
+ this.dispatchEvent(new SbbPaginatorPageEvent(page));
391
+ }
392
+ }
393
+ renderPrevNextButtons() {
394
+ return html`
395
+ <sbb-mini-button-group ?negative=${this.negative} size=${this.size || nothing}>
396
+ <sbb-mini-button
397
+ id="sbb-paginator-prev-page"
398
+ aria-label=${this.accessibilityPreviousPageLabel ? this.accessibilityPreviousPageLabel : i18nPreviousPage[this.language.current]}
399
+ icon-name="chevron-small-left-small"
400
+ ?disabled=${this.disabled || !this.hasPreviousPage()}
401
+ @click=${() => {
402
+ this.previousPage();
403
+ if (!this.hasPreviousPage() && sbbInputModalityDetector.mostRecentModality === "keyboard") this.shadowRoot?.getElementById("sbb-paginator-next-page").focus();
404
+ }}
405
+ ></sbb-mini-button>
406
+ <sbb-divider orientation="vertical"></sbb-divider>
407
+ <sbb-mini-button
408
+ id="sbb-paginator-next-page"
409
+ aria-label=${this.accessibilityNextPageLabel ? this.accessibilityNextPageLabel : i18nNextPage[this.language.current]}
410
+ icon-name="chevron-small-right-small"
411
+ ?disabled=${this.disabled || !this.hasNextPage()}
412
+ @click=${() => {
413
+ this.nextPage();
414
+ if (!this.hasNextPage() && sbbInputModalityDetector.mostRecentModality === "keyboard") this.shadowRoot?.getElementById("sbb-paginator-prev-page").focus();
415
+ }}
416
+ ></sbb-mini-button>
417
+ </sbb-mini-button-group>
418
+ `;
419
+ }
420
+ render() {
421
+ return html`
422
+ ${this.renderPaginator()}
423
+ <span class="sbb-screen-reader-only" id="status" role="status"></span>
424
+ `;
425
+ }
426
+ };
427
+ })();
428
+ };
429
+ //#endregion
430
+ export { SbbPaginatorPageEvent as n, SbbPaginatorCommonElementMixin as t };
431
+
432
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWNvbW1vbi1CN2liYTB3US5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQtbSk7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTWluaUJ1dHRvbkVsZW1lbnQsIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIGZvcmNlVHlwZSxcbiAgaTE4bk5leHRQYWdlLFxuICBpMThuUGFnZSxcbiAgaTE4blBhZ2luYXRvclNlbGVjdGVkLFxuICBpMThuUHJldmlvdXNQYWdlLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmVnYXRpdmVNaXhpbixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uLy4uL2RpdmlkZXIucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BhZ2luYXRvci1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY2xhc3MgU2JiUGFnaW5hdG9yUGFnZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9sZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZUluZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZXZpb3VzUGFnZUluZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNQYWdlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIGxlbmd0aCxcbiAgICBwYWdlU2l6ZSxcbiAgICBwYWdlSW5kZXgsXG4gICAgcHJldmlvdXNQYWdlSW5kZXgsXG4gIH06IE9taXQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50LCBrZXlvZiBFdmVudD4pIHtcbiAgICBzdXBlcigncGFnZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG4gICAgdGhpcy5fbGVuZ3RoID0gbGVuZ3RoO1xuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgdGhpcy5fcGFnZUluZGV4ID0gcGFnZUluZGV4O1xuICAgIHRoaXMuX3ByZXZpb3VzUGFnZUluZGV4ID0gcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkRpc2FibGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGxlbmd0aDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZXJQb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnO1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQ7XG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgcHVibGljIGZpcnN0UGFnZSgpOiB2b2lkO1xuICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZDtcbiAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbjtcbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBlbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIsIHBhZ2VJbmRleD86IG51bWJlcik6IHZvaWQ7XG4gIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJEaXNhYmxlZE1peGluKHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3NjcmVlblJlYWRlck9ubHlTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICAgIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQsXG4gICAgICBTYmJNaW5pQnV0dG9uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJvbGUgPSAnZ3JvdXAnO1xuXG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBpdGVtcy4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgcHJldi9uZXh0IGJ1dHRvbnMuICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZXItcG9zaXRpb24nLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBwYWdlclBvc2l0aW9uOlxuICAgICAgfCAnc3RhcnQnXG4gICAgICB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgKGxlYW4gdGhlbWUgZGVmYXVsdCkgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZVsnc2l6ZSddID1cbiAgICAgIG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcGFnZS4gRGVmYXVsdHMgdG8gYHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcHJldmlvdXMgcGFnZS4gRGVmYXVsdHMgdG8gYHByZXZpb3VzIHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcHJldmlvdXMtcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBuZXh0IHBhZ2UuIERlZmF1bHRzIHRvIGBuZXh0IHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbmV4dC1wYWdlLWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TmV4dFBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgbGV0IHByZXZQYWdlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsZW5ndGgnKSAmJiB0aGlzLmxlbmd0aCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdsZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGlzTmFOKHRoaXMubGVuZ3RoKSB8fCB0aGlzLmxlbmd0aCA8IDAgPyAwIDogdGhpcy5sZW5ndGg7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcFxuICAgICAgICAgKiBhbmQgaGFuZGxlZCBpbiB0aGUgcGFnZUluZGV4IGxvZ2ljIGJlbG93LCBlbWl0dGluZyB0aGUgcGFnZSBldmVudC5cbiAgICAgICAgICogSWYgdGhlIHBhZ2VJbmRleCBkb2Vzbid0IGNoYW5nZSB0aGVyZSdzIG5vIG5lZWQgdG8gZW1pdC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlU2l6ZScpICYmXG4gICAgICAgIHRoaXMucGFnZVNpemUgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgncGFnZVNpemUnKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVNpemUgPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VTaXplJyk7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBpc05hTih0aGlzLnBhZ2VTaXplKSB8fCB0aGlzLnBhZ2VTaXplIDwgMCA/IDAgOiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAvLyBDdXJyZW50IHBhZ2UgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgcGFnZSBzaXplLlxuICAgICAgICAvLyBOYXZpZ2F0ZSB0byB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBwcmV2aW91cyBwYWdlJ3MgZmlyc3QgaXRlbS5cbiAgICAgICAgLy8gSWYgdGhlIHBhZ2VJbmRleCBjaGFuZ2VzIGluIHRoZSBzYW1lIHVwZGF0ZSBjeWNsZSwgd2Ugc2hvdWxkbid0IGFkanVzdCBpdC5cbiAgICAgICAgaWYgKHByZXZpb3VzUGFnZVNpemUgJiYgIWNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGFnZUluZGV4JykpIHtcbiAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IE1hdGguZmxvb3IoKHRoaXMucGFnZUluZGV4ICogcHJldmlvdXNQYWdlU2l6ZSkgLyB0aGlzLnBhZ2VTaXplKSB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcCxcbiAgICAgICAgICogYW5kIHRoaXMgbGluZSBpcyB1c2VsZXNzLCBzaW5jZSB0aGUgY29ycmVjdCB2YWx1ZSB3aWxsIGJlIGNhbGN1bGF0ZWQgaW4gdGhlIGxvZ2ljIGJlbG93O1xuICAgICAgICAgKiBpZiB0aGUgcGFnZUluZGV4IGRvZXNuJ3QgY2hhbmdlIChlLmcuIGNoYW5nZSBwYWdlU2l6ZSBhdCBwYWdlSW5kZXggMCksIHRoZSBwcmV2UGFnZUluZGV4IGFuZCBwYWdlSW5kZXggYXJlIHRoZSBzYW1lLlxuICAgICAgICAgKiBJbiBib3RoIGNhc2UgdGhlIHBhZ2UgZXZlbnQgbXVzdCBiZSB0cmlnZ2VyZWQgdG8gYWxsb3cgY29uc3VtZXJzIHRvIHJldHJpZXZlIHRoZSBjb3JyZWN0IGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICBwcmV2UGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlSW5kZXgnKSAmJlxuICAgICAgICB0aGlzLnBhZ2VJbmRleCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdwYWdlSW5kZXgnKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHByZXZQYWdlSW5kZXggPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VJbmRleCcpITtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXZQYWdlSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZW1pdFBhZ2VFdmVudChwcmV2UGFnZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBUbyByZWxpYWJseSBhbm5vdW5jZSBwYWdlIGNoYW5nZSwgd2UgaGF2ZSB0byBzZXQgdGhlIGxhYmVsIGluIHVwZGF0ZWQoKSAoYSB0aWNrIGxhdGVyIHRoYW4gdGhlIG90aGVyIGNoYW5nZXMpLlxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXNjcmVlbi1yZWFkZXItb25seSNzdGF0dXMnKSEudGV4dENvbnRlbnQgPVxuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZUxhYmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIEV2YWx1YXRlIGBwYWdlSW5kZXhgIGJ5IGV4Y2x1ZGluZyBlZGdlIGNhc2VzLiAqL1xuICAgIHByaXZhdGUgX2NvZXJjZVBhZ2VJbmRleEluUmFuZ2UocGFnZUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heChpc05hTihwYWdlSW5kZXgpID8gMCA6IHBhZ2VJbmRleCwgMCksIHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMSksXG4gICAgICAgIDAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2N1cnJlbnRQYWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgOiBpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMucGFnZUluZGV4ICsgMX0gJHtpMThuUGFnaW5hdG9yU2VsZWN0ZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0uYDtcbiAgICB9XG5cbiAgICAvKiogQWR2YW5jZXMgdG8gdGhlIG5leHQgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCArIDE7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggLSAxO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG5vdCBhbHJlYWR5IHRoZXJlLiAqL1xuICAgIHB1YmxpYyBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgdG8gdGhlIGxhc3QgcGFnZSBpZiBub3QgYWxyZWFkeSB0aGVyZS4gKi9cbiAgICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMTtcbiAgICB9XG5cbiAgICAvKiogTW92ZSB0byBhIHNwZWNpZmljIHBhZ2UgaW5kZXguICovXG4gICAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHByZXZpb3VzIHBhZ2UuICovXG4gICAgcHVibGljIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmRleCA+PSAxICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuICovXG4gICAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgY29uc3QgbWF4UGFnZUluZGV4ID0gdGhpcy5udW1iZXJPZlBhZ2VzKCkgLSAxO1xuICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGV4IDwgbWF4UGFnZUluZGV4ICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGBsZW5ndGhgIGFuZCB0aGUgYHBhZ2VTaXplYDtcbiAgICAgKiB2YWx1ZSBtdXN0IGJlIHJvdW5kZWQgdXAgKGUuZy4gYGxlbmd0aCA9IDIxYCBhbmQgYHBhZ2VTaXplID0gMTBgIG1lYW5zIDMgcGFnZXMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZSA/IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgLy8gRklYTUU6IHRoZSBuYW1lIG9mIHRoaXMgdmFyaWFibGUgYXBwZWFycyBhcyBldmVudCBuYW1lIGluIHRoZSByZWFkbWVcbiAgICAgICAgLy8gIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0IGxpYnJhcnkuXG4gICAgICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vb3Blbi13Yy9jdXN0b20tZWxlbWVudHMtbWFuaWZlc3QvaXNzdWVzLzE0OVxuICAgICAgICBjb25zdCBwYWdlID0ge1xuICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICAgICAgbGVuZ3RoOiB0aGlzLmxlbmd0aCxcbiAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEB0eXBlIHtTYmJQYWdpbmF0b3JQYWdlRXZlbnR9XG4gICAgICAgICAqIFRoZSBwYWdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGUgcGFnZSBpbmRleCwgbGVuZ3RoIG9yIHBhZ2Ugc2l6ZSBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTYmJQYWdpbmF0b3JQYWdlRXZlbnQocGFnZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItbWluaS1idXR0b24tZ3JvdXAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0gc2l6ZT0ke3RoaXMuc2l6ZSB8fCBub3RoaW5nfT5cbiAgICAgICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgICAgICBpZD1cInNiYi1wYWdpbmF0b3ItcHJldi1wYWdlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbFxuICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4blByZXZpb3VzUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzUHJldmlvdXNQYWdlKCl9XG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1uZXh0LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgICAgPHNiYi1kaXZpZGVyIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgICAgIGlkPVwic2JiLXBhZ2luYXRvci1uZXh0LXBhZ2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWxcbiAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlOZXh0UGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4bk5leHRQYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzTmV4dFBhZ2UoKX1cbiAgICAgICAgICAgIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXRoaXMuaGFzTmV4dFBhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1wcmV2LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgIDwvc2JiLW1pbmktYnV0dG9uLWdyb3VwPlxuICAgICAgYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMucmVuZGVyUGFnaW5hdG9yKCl9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiIGlkPVwic3RhdHVzXCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHBhZ2U6IFNiYlBhZ2luYXRvclBhZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDK0JBLElBQWEsd0JBQWIsY0FBMkMsTUFBSztDQU05QyxJQUFXLFNBQU07RUFDZixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsV0FBUTtFQUNqQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsWUFBUztFQUNsQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsb0JBQWlCO0VBQzFCLE9BQU8sS0FBSztDQUNkO0NBRUEsWUFBbUIsRUFDakIsUUFDQSxVQUNBLFdBQ0EscUJBQ3lDO0VBQ3pDLE1BQU0sUUFBUTtHQUFFLFNBQVM7R0FBTSxVQUFVO0VBQUksQ0FBRTtFQUMvQyxLQUFLLFVBQVU7RUFDZixLQUFLLFlBQVk7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