@sbb-esta/lyne-elements 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/autocomplete/autocomplete.d.ts.map +1 -1
  2. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  3. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +0 -3
  4. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid-button.js +32 -28
  6. package/autocomplete-grid/autocomplete-grid.js +16 -17
  7. package/autocomplete.js +23 -24
  8. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
  9. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  10. package/breadcrumb/breadcrumb-group.js +25 -24
  11. package/button/button/button.d.ts +1 -1
  12. package/button/button-link/button-link.d.ts +1 -1
  13. package/button/button-link.js +14 -14
  14. package/button/button.js +9 -9
  15. package/button/mini-button/mini-button.d.ts +1 -1
  16. package/button/mini-button/mini-button.d.ts.map +1 -1
  17. package/button/mini-button.js +15 -17
  18. package/button/secondary-button/secondary-button.d.ts +1 -1
  19. package/button/secondary-button-link/secondary-button-link.d.ts +1 -1
  20. package/button/secondary-button-link.js +15 -15
  21. package/button/secondary-button.js +6 -6
  22. package/button/tertiary-button/tertiary-button.d.ts +1 -1
  23. package/button/tertiary-button-link/tertiary-button-link.d.ts +1 -1
  24. package/button/tertiary-button-link.js +12 -12
  25. package/button/tertiary-button.js +13 -13
  26. package/button/transparent-button/transparent-button.d.ts +1 -1
  27. package/button/transparent-button-link/transparent-button-link.d.ts +1 -1
  28. package/button/transparent-button-link.js +15 -15
  29. package/button/transparent-button.js +8 -8
  30. package/card/card-badge/card-badge.d.ts.map +1 -1
  31. package/card/card-badge.js +7 -9
  32. package/card/common/card-action-common.d.ts.map +1 -1
  33. package/card/common.js +24 -25
  34. package/container/sticky-bar/sticky-bar.d.ts +0 -1
  35. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  36. package/container/sticky-bar.js +20 -20
  37. package/core/a11y/arrow-navigation.d.ts.map +1 -1
  38. package/core/a11y.js +46 -47
  39. package/core/base-elements/action-base-element.d.ts +1 -0
  40. package/core/base-elements/action-base-element.d.ts.map +1 -1
  41. package/core/base-elements/link-base-element.d.ts.map +1 -1
  42. package/core/base-elements.js +52 -49
  43. package/core/controllers/language-controller.d.ts.map +1 -1
  44. package/core/controllers.js +22 -23
  45. package/core/dom/get-document-writing-mode.d.ts +3 -0
  46. package/core/dom/get-document-writing-mode.d.ts.map +1 -1
  47. package/core/mixins/disabled-mixin.d.ts +9 -4
  48. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  49. package/core/mixins.js +68 -58
  50. package/core/observers/intersection-observer.d.ts +6 -0
  51. package/core/observers/intersection-observer.d.ts.map +1 -1
  52. package/core/observers/mutation-observer.d.ts +6 -0
  53. package/core/observers/mutation-observer.d.ts.map +1 -1
  54. package/core/observers/resize-observer.d.ts +6 -0
  55. package/core/observers/resize-observer.d.ts.map +1 -1
  56. package/core/styles/core.scss +23 -0
  57. package/core/styles/mixins/overlay.scss +2 -2
  58. package/core.css +23 -0
  59. package/custom-elements.json +1268 -159
  60. package/datepicker/datepicker/datepicker.d.ts +1 -1
  61. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  62. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -2
  63. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  64. package/datepicker/datepicker-toggle.js +36 -45
  65. package/datepicker/datepicker.js +34 -35
  66. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  67. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  68. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +0 -3
  69. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  70. package/development/autocomplete-grid/autocomplete-grid-button.js +17 -15
  71. package/development/autocomplete-grid/autocomplete-grid.js +2 -3
  72. package/development/autocomplete.js +4 -5
  73. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +0 -1
  74. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  75. package/development/breadcrumb/breadcrumb-group.js +9 -8
  76. package/development/button/button/button.d.ts +1 -1
  77. package/development/button/button-link/button-link.d.ts +1 -1
  78. package/development/button/button-link.js +3 -3
  79. package/development/button/button.js +3 -3
  80. package/development/button/mini-button/mini-button.d.ts +1 -1
  81. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  82. package/development/button/mini-button.js +3 -5
  83. package/development/button/secondary-button/secondary-button.d.ts +1 -1
  84. package/development/button/secondary-button-link/secondary-button-link.d.ts +1 -1
  85. package/development/button/secondary-button-link.js +3 -3
  86. package/development/button/secondary-button.js +3 -3
  87. package/development/button/tertiary-button/tertiary-button.d.ts +1 -1
  88. package/development/button/tertiary-button-link/tertiary-button-link.d.ts +1 -1
  89. package/development/button/tertiary-button-link.js +3 -3
  90. package/development/button/tertiary-button.js +3 -3
  91. package/development/button/transparent-button/transparent-button.d.ts +1 -1
  92. package/development/button/transparent-button-link/transparent-button-link.d.ts +1 -1
  93. package/development/button/transparent-button-link.js +3 -3
  94. package/development/button/transparent-button.js +3 -3
  95. package/development/card/card-badge/card-badge.d.ts.map +1 -1
  96. package/development/card/card-badge.js +3 -5
  97. package/development/card/common/card-action-common.d.ts.map +1 -1
  98. package/development/card/common.js +8 -10
  99. package/development/container/sticky-bar/sticky-bar.d.ts +0 -1
  100. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  101. package/development/container/sticky-bar.js +8 -9
  102. package/development/core/a11y/arrow-navigation.d.ts.map +1 -1
  103. package/development/core/a11y.js +2 -3
  104. package/development/core/base-elements/action-base-element.d.ts +1 -0
  105. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  106. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  107. package/development/core/base-elements.js +7 -4
  108. package/development/core/controllers/language-controller.d.ts.map +1 -1
  109. package/development/core/controllers.js +9 -4
  110. package/development/core/dom/get-document-writing-mode.d.ts +3 -0
  111. package/development/core/dom/get-document-writing-mode.d.ts.map +1 -1
  112. package/development/core/dom.js +1 -1
  113. package/development/core/mixins/disabled-mixin.d.ts +9 -4
  114. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  115. package/development/core/mixins.js +25 -9
  116. package/development/core/observers/intersection-observer.d.ts +6 -0
  117. package/development/core/observers/intersection-observer.d.ts.map +1 -1
  118. package/development/core/observers/mutation-observer.d.ts +6 -0
  119. package/development/core/observers/mutation-observer.d.ts.map +1 -1
  120. package/development/core/observers/resize-observer.d.ts +6 -0
  121. package/development/core/observers/resize-observer.d.ts.map +1 -1
  122. package/development/core/observers.js +1 -1
  123. package/development/datepicker/datepicker/datepicker.d.ts +1 -1
  124. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  125. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -2
  126. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  127. package/development/datepicker/datepicker-toggle.js +2 -12
  128. package/development/datepicker/datepicker.js +6 -7
  129. package/development/dialog/dialog/dialog.d.ts +0 -1
  130. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  131. package/development/dialog/dialog.js +10 -10
  132. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  133. package/development/expansion-panel/expansion-panel-header.js +3 -3
  134. package/development/flip-card/flip-card-details/flip-card-details.d.ts +2 -5
  135. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  136. package/development/flip-card/flip-card-details.js +10 -22
  137. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  138. package/development/form-field/form-field.js +11 -12
  139. package/development/header/common.js +42 -21
  140. package/development/header/header/header.d.ts +2 -0
  141. package/development/header/header/header.d.ts.map +1 -1
  142. package/development/header/header.js +12 -1
  143. package/development/journey-header/journey-header.d.ts.map +1 -1
  144. package/development/journey-header.js +3 -4
  145. package/development/link/block-link-button/block-link-button.d.ts +1 -1
  146. package/development/link/block-link-button.js +3 -3
  147. package/development/link/link-button/link-button.d.ts +1 -1
  148. package/development/link/link-button.js +3 -3
  149. package/development/logo.js +2 -4
  150. package/development/map-container/map-container.d.ts +8 -5
  151. package/development/map-container/map-container.d.ts.map +1 -1
  152. package/development/map-container.js +31 -34
  153. package/development/menu/common/menu-action-common.d.ts +1 -2
  154. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  155. package/development/menu/common.js +1 -1
  156. package/development/menu/menu/menu.d.ts.map +1 -1
  157. package/development/menu/menu-button/menu-button.d.ts +1 -1
  158. package/development/menu/menu-button.js +3 -3
  159. package/development/menu/menu-link/menu-link.d.ts +1 -1
  160. package/development/menu/menu-link/menu-link.d.ts.map +1 -1
  161. package/development/menu/menu-link.js +5 -2
  162. package/development/menu/menu.js +4 -2
  163. package/development/navigation/navigation/navigation.d.ts +1 -1
  164. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  165. package/development/navigation/navigation-marker/navigation-marker.d.ts +1 -2
  166. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  167. package/development/navigation/navigation-marker.js +8 -15
  168. package/development/navigation/navigation.js +13 -10
  169. package/development/notification/notification.d.ts +0 -1
  170. package/development/notification/notification.d.ts.map +1 -1
  171. package/development/notification.js +11 -13
  172. package/development/option/optgroup/optgroup-base-element.d.ts +0 -2
  173. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  174. package/development/option/optgroup.js +9 -14
  175. package/development/option/option/option-base-element.d.ts +0 -3
  176. package/development/option/option/option-base-element.d.ts.map +1 -1
  177. package/development/option/option.js +6 -10
  178. package/development/popover/popover-trigger/popover-trigger.d.ts +1 -1
  179. package/development/popover/popover-trigger.js +3 -3
  180. package/development/select/select.d.ts.map +1 -1
  181. package/development/select.js +4 -5
  182. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  183. package/development/selection-expansion-panel.js +9 -8
  184. package/development/signet/signet.d.ts +4 -1
  185. package/development/signet/signet.d.ts.map +1 -1
  186. package/development/signet.js +37 -8
  187. package/development/slider/slider.d.ts.map +1 -1
  188. package/development/slider.js +12 -10
  189. package/development/stepper/step/step.d.ts +1 -2
  190. package/development/stepper/step/step.d.ts.map +1 -1
  191. package/development/stepper/step.js +9 -14
  192. package/development/table/table-wrapper/table-wrapper.d.ts +0 -1
  193. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  194. package/development/table/table-wrapper.js +7 -7
  195. package/development/tabs/tab-group/tab-group.d.ts +0 -1
  196. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  197. package/development/tabs/tab-group.js +19 -18
  198. package/development/tag/tag/tag.d.ts +1 -1
  199. package/development/tag/tag.js +3 -3
  200. package/development/toggle/toggle/toggle.d.ts +0 -1
  201. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  202. package/development/toggle/toggle.js +7 -7
  203. package/development/train/train-formation/train-formation.d.ts +1 -2
  204. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  205. package/development/train/train-formation.js +10 -8
  206. package/dialog/dialog/dialog.d.ts +0 -1
  207. package/dialog/dialog/dialog.d.ts.map +1 -1
  208. package/dialog/dialog.js +16 -17
  209. package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -1
  210. package/expansion-panel/expansion-panel-header.js +1 -1
  211. package/flip-card/flip-card-details/flip-card-details.d.ts +2 -5
  212. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  213. package/flip-card/flip-card-details.js +20 -28
  214. package/form-field/form-field/form-field.d.ts.map +1 -1
  215. package/form-field/form-field.js +26 -27
  216. package/header/common.js +3 -3
  217. package/header/header/header.d.ts +2 -0
  218. package/header/header/header.d.ts.map +1 -1
  219. package/header/header.js +21 -18
  220. package/journey-header/journey-header.d.ts.map +1 -1
  221. package/journey-header.js +14 -15
  222. package/link/block-link-button/block-link-button.d.ts +1 -1
  223. package/link/block-link-button.js +10 -10
  224. package/link/link-button/link-button.d.ts +1 -1
  225. package/link/link-button.js +4 -4
  226. package/logo.js +1 -1
  227. package/map-container/map-container.d.ts +8 -5
  228. package/map-container/map-container.d.ts.map +1 -1
  229. package/map-container.js +35 -37
  230. package/menu/common/menu-action-common.d.ts +1 -2
  231. package/menu/common/menu-action-common.d.ts.map +1 -1
  232. package/menu/menu/menu.d.ts.map +1 -1
  233. package/menu/menu-button/menu-button.d.ts +1 -1
  234. package/menu/menu-button.js +13 -13
  235. package/menu/menu-link/menu-link.d.ts +1 -1
  236. package/menu/menu-link/menu-link.d.ts.map +1 -1
  237. package/menu/menu-link.js +15 -12
  238. package/menu/menu.js +9 -7
  239. package/navigation/navigation/navigation.d.ts +1 -1
  240. package/navigation/navigation/navigation.d.ts.map +1 -1
  241. package/navigation/navigation-marker/navigation-marker.d.ts +1 -2
  242. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  243. package/navigation/navigation-marker.js +17 -22
  244. package/navigation/navigation.js +40 -34
  245. package/notification/notification.d.ts +0 -1
  246. package/notification/notification.d.ts.map +1 -1
  247. package/notification.js +17 -18
  248. package/option/optgroup/optgroup-base-element.d.ts +0 -2
  249. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  250. package/option/optgroup.js +31 -33
  251. package/option/option/option-base-element.d.ts +0 -3
  252. package/option/option/option-base-element.d.ts.map +1 -1
  253. package/option/option.js +16 -18
  254. package/package.json +2 -1
  255. package/popover/popover-trigger/popover-trigger.d.ts +1 -1
  256. package/popover/popover-trigger.js +1 -1
  257. package/select/select.d.ts.map +1 -1
  258. package/select.js +14 -15
  259. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  260. package/selection-expansion-panel.js +24 -23
  261. package/signet/signet.d.ts +4 -1
  262. package/signet/signet.d.ts.map +1 -1
  263. package/signet.js +34 -23
  264. package/slider/slider.d.ts.map +1 -1
  265. package/slider.js +5 -5
  266. package/standard-theme.css +23 -0
  267. package/stepper/step/step.d.ts +1 -2
  268. package/stepper/step/step.d.ts.map +1 -1
  269. package/stepper/step.js +19 -24
  270. package/table/table-wrapper/table-wrapper.d.ts +0 -1
  271. package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
  272. package/table/table-wrapper.js +19 -18
  273. package/tabs/tab-group/tab-group.d.ts +0 -1
  274. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  275. package/tabs/tab-group.js +37 -33
  276. package/tag/tag/tag.d.ts +1 -1
  277. package/tag/tag.js +19 -19
  278. package/toggle/toggle/toggle.d.ts +0 -1
  279. package/toggle/toggle/toggle.d.ts.map +1 -1
  280. package/toggle/toggle.js +32 -31
  281. package/train/train-formation/train-formation.d.ts +1 -2
  282. package/train/train-formation/train-formation.d.ts.map +1 -1
  283. package/train/train-formation.js +23 -22
@@ -1,4 +1,4 @@
1
- import { css, LitElement, html } from "lit";
1
+ import { css, LitElement, isServer, html } from "lit";
2
2
  import { property, state, customElement } from "lit/decorators.js";
3
3
  import { readConfig } from "../core/config.js";
4
4
  import { SbbConnectedAbortController, SbbLanguageController } from "../core/controllers.js";
@@ -6,7 +6,6 @@ import { defaultDateAdapter } from "../core/datetime.js";
6
6
  import { findReferencedElement, findInput } from "../core/dom.js";
7
7
  import { EventEmitter } from "../core/eventing.js";
8
8
  import { i18nDatePickerPlaceholder, i18nDateChangedTo } from "../core/i18n.js";
9
- import { AgnosticMutationObserver } from "../core/observers.js";
10
9
  const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
11
10
  /*
12
11
  * SBB table mixin
@@ -113,13 +112,13 @@ let SbbDatepickerElement = class extends LitElement {
113
112
  );
114
113
  this._inputElement = null;
115
114
  this._inputElementPlaceholderMutable = false;
116
- this._inputObserver = new AgnosticMutationObserver((mutationsList) => {
115
+ this._inputObserver = !isServer ? new MutationObserver((mutationsList) => {
117
116
  this._emitInputUpdated();
118
117
  if (this._inputElement && (mutationsList == null ? void 0 : mutationsList.some((e) => e.attributeName === "value"))) {
119
118
  const value = this._inputElement.getAttribute("value");
120
119
  this.valueAsDate = this._dateAdapter.parse(value, this.now) ?? value;
121
120
  }
122
- });
121
+ }) : null;
123
122
  this._dateAdapter = ((_a = readConfig().datetime) == null ? void 0 : _a.dateAdapter) ?? defaultDateAdapter;
124
123
  this._abort = new SbbConnectedAbortController(this);
125
124
  this._language = new SbbLanguageController(this).withHandler(() => {
@@ -202,7 +201,7 @@ let SbbDatepickerElement = class extends LitElement {
202
201
  return !!this._now;
203
202
  }
204
203
  _attachInput() {
205
- var _a, _b;
204
+ var _a, _b, _c;
206
205
  const input = findInput(this, this.input);
207
206
  if (this._inputElement === input) {
208
207
  return;
@@ -213,7 +212,7 @@ let SbbDatepickerElement = class extends LitElement {
213
212
  this._inputElement = input;
214
213
  if (input) {
215
214
  this._datePickerController = new AbortController();
216
- this._inputObserver.observe(input, {
215
+ (_c = this._inputObserver) == null ? void 0 : _c.observe(input, {
217
216
  attributeFilter: ["disabled", "readonly", "min", "max", "value"]
218
217
  });
219
218
  this._inputElementPlaceholderMutable = !input.placeholder;
@@ -346,4 +345,4 @@ export {
346
345
  getDatePicker,
347
346
  isDateAvailable
348
347
  };
349
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlnLmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IGZpbmRJbnB1dCwgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlLCBTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXIuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJJbnB1dFVwZGF0ZUV2ZW50IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIG1pbj86IHN0cmluZyB8IG51bWJlcjtcbiAgbWF4Pzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IElubGluZSBkZXByZWNhdGVkIGZ1bmN0aW9ucyBpbiBTYmJEYXRlcGlja2VyRWxlbWVudCBhcyBwdWJsaWMgbWV0aG9kc1xuLy8gd2hlcmUgcG9zc2libGUgYW5kIHVzZSB0aGVzZSBtZXRob2RzIHdoZXJlIHRoZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1c2VkLlxuXG4vKipcbiAqIEdpdmVuIGEgU2JiRGF0ZXBpY2tlclByZXZpb3VzRGF5RWxlbWVudCwgYSBTYmJEYXRlcGlja2VyTmV4dERheUVsZW1lbnQgb3IgYSBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCBjb21wb25lbnQsXG4gKiBpdCByZXR1cm5zIHRoZSByZWxhdGVkIFNiYkRhdGVwaWNrZXJFbGVtZW50IHJlZmVyZW5jZSwgaWYgZXhpc3RzLlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgcG90ZW50aWFsbHkgY29ubmVjdGVkIHRvIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBTYmJEYXRlUGlja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBpY2tlcjxUID0gRGF0ZT4oXG4gIGVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJCdXR0b248VD4gfCBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPixcbiAgdHJpZ2dlcj86IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgICAgIC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pih0cmlnZ2VyKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbiBvbmUsIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRlbHRhIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQvc3VidHJhY3QgZnJvbSB0aGUgc3RhcnRpbmcgb25lLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGVsdGE6IG51bWJlcixcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbik6IFQge1xuICBsZXQgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhkYXRlLCBkZWx0YSk7XG5cbiAgaWYgKGRhdGVGaWx0ZXIpIHtcbiAgICB3aGlsZSAoIWRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgIGF2YWlsYWJsZURhdGUgPSBkYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoYXZhaWxhYmxlRGF0ZSwgZGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhdmFpbGFibGVEYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICogY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eSBhbmQgYG1pbmAgcGFyYW1ldGVyIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGUpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIGRhdGVBZGFwdGVyIFRoZSBhZGFwdGVyIGNsYXNzLlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUHJldmlvdXNBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IHByZXZpb3VzRGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEsIGRhdGVGaWx0ZXIsIGRhdGVBZGFwdGVyKTtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG5cbiAgaWYgKFxuICAgICFkYXRlTWluIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1pbikgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUocHJldmlvdXNEYXRlLCBkYXRlTWluKSA+PSAwKVxuICApIHtcbiAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGFmdGVyIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXh0QXZhaWxhYmxlRGF0ZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4sXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCxcbik6IFQge1xuICBjb25zdCBuZXh0RGF0ZSA9IGdldEF2YWlsYWJsZURhdGUoZGF0ZSwgMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWF4ID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWF4KTtcblxuICBpZiAoXG4gICAgIWRhdGVNYXggfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIG5leHREYXRlO1xuICB9XG4gIHJldHVybiBkYXRlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBhIHZhbGlkIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eVxuICogYW5kIGBtaW5gIGFuZCBgbWF4YCBwYXJhbWV0ZXJzIChlLmcuIGZyb20gdGhlIHNlbGYtbmFtZWQgaW5wdXQncyBhdHRyaWJ1dGVzKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm90IGludGVuZGVkIGFzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVBdmFpbGFibGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgLy8gVE9ETzogR2V0IGRhdGUgYWRhcHRlciBmcm9tIGNvbmZpZ1xuICBjb25zdCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgY29uc3QgZGF0ZU1pbiA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1pbik7XG4gIGNvbnN0IGRhdGVNYXggPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtYXgpO1xuXG4gIGlmIChcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBkYXRlTWluISkgPCAwKSB8fFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNYXgpICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKGRhdGUsIGRhdGVNYXghKSA+IDApXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBkYXRlRmlsdGVyID8gZGF0ZUZpbHRlcihkYXRlKSA6IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnkgPSAoKTogQ3VzdG9tRXZlbnQgPT5cbiAgbmV3IEN1c3RvbUV2ZW50KCdkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWQnLCB7XG4gICAgYnViYmxlczogZmFsc2UsXG4gICAgY29tcG9zZWQ6IHRydWUsXG4gIH0pO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIHRoZSBpbnB1dCdzIHZhbHVlIGFzIGEgZm9ybWF0dGVkIGRhdGUuXG4gKlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGNoYW5nZSAtIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD59IGlucHV0VXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGlucHV0IGNvbm5lY3RlZCB0byB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkYXRlUGlja2VyVXBkYXRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+fSB2YWxpZGF0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyJylcbmV4cG9ydCBjbGFzcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAtLVxuICAgKiBXZSBkZWFjdGl2YXRlIG1lbWJlci1vcmRlcmluZyBiZWNhdXNlIG9mIHRoZSBAcHJvcGVydHkgZGVjb3JhdGVkIG1ldGhvZHMgZGF0ZUZpbHRlciwgZGF0ZVBhcnNlciBhbmQgZm9ybWF0LlxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgIGlucHV0VXBkYXRlZDogJ2lucHV0VXBkYXRlZCcsXG4gICAgZGF0ZVBpY2tlclVwZGF0ZWQ6ICdkYXRlUGlja2VyVXBkYXRlZCcsXG4gICAgdmFsaWRhdGlvbkNoYW5nZTogJ3ZhbGlkYXRpb25DaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyB3aWRlID0gZmFsc2U7XG5cbiAgLyoqIEEgZnVuY3Rpb24gdXNlZCB0byBmaWx0ZXIgb3V0IGRhdGVzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBkYXRlRmlsdGVyOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gcGFyc2Ugc3RyaW5nIHZhbHVlIGludG8gZGF0ZXMuXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSkgcHVibGljIGRhdGVQYXJzZXI/OiAodmFsdWU6IHN0cmluZykgPT4gVCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbnRvIHRoZSBwcmVmZXJyZWQgc3RyaW5nIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgZm9ybWF0PzogKGRhdGU6IFQpID0+IHN0cmluZztcblxuICAvKiogUmVmZXJlbmNlIG9mIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgaW5wdXQ/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICAvLyBUT0RPOiBDaGFuZ2UgdW5kZWZpbmVkIHRvIG51bGwgYXMgYSBicmVha2luZyBjaGFuZ2UuXG4gIC8qKiBBIGNvbmZpZ3VyZWQgZGF0ZSB3aGljaCBhY3RzIGFzIHRoZSBjdXJyZW50IGRhdGUgaW5zdGVhZCBvZiB0aGUgcmVhbCBjdXJyZW50IGRhdGUuIFJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5vdyh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ub3cgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IHRoaXMuX2RhdGVBZGFwdGVyLnRvZGF5KCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93PzogVCB8IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBhcyBhIERhdGUgb3IgY3VzdG9tIGRhdGUgcHJvdmlkZXIgaW5zdGFuY2UuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCB2YWx1ZUFzRGF0ZSh2YWx1ZTogU2JiRGF0ZUxpa2U8VD4gfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIC8qIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLiAqL1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50IS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNEYXRlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZUFzRGF0ZT86IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBvbmx5IHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9kaWRDaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRpZENoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBoYXMgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfY2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKHRoaXMsIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy5jaGFuZ2UsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICB9KTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfaW5wdXRVcGRhdGVkOiBFdmVudEVtaXR0ZXI8U2JiSW5wdXRVcGRhdGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmlucHV0VXBkYXRlZCxcbiAgICB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2RhdGVQaWNrZXJVcGRhdGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmRhdGVQaWNrZXJVcGRhdGVkLFxuICAgIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxTYmJWYWxpZGF0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkRhdGVwaWNrZXJFbGVtZW50LmV2ZW50cy52YWxpZGF0aW9uQ2hhbmdlLFxuICApO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kYXRlUGlja2VyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcblxuICBwcml2YXRlIF9pbnB1dE9ic2VydmVyID0gbmV3IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICAvLyBUT0RPOiBEZWNpZGUgd2hldGhlciB0byByZW1vdmUgdGhpcyBsb2dpYyBieSBhZGRpbmcgYSB2YWx1ZSBwcm9wZXJ0eSB0byB0aGUgZGF0ZXBpY2tlci5cbiAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50ICYmIG11dGF0aW9uc0xpc3Q/LnNvbWUoKGUpID0+IGUuYXR0cmlidXRlTmFtZSA9PT0gJ3ZhbHVlJykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgndmFsdWUnKTtcbiAgICAgIHRoaXMudmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZSwgdGhpcy5ub3cpID8/IHZhbHVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+ID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG5cbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcykud2l0aEhhbmRsZXIoKCkgPT4ge1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdCh0aGlzLnZhbHVlQXNEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZGF0ZXBpY2tlckNvbnRyb2xSZWdpc3RlcmVkJywgKCkgPT4gdGhpcy5fZW1pdElucHV0VXBkYXRlZCgpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0LnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9hdHRhY2hJbnB1dCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2lucHV0JykpIHtcbiAgICAgIHRoaXMuX2F0dGFjaElucHV0KCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnd2lkZScpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2RhdGVGaWx0ZXInKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdub3cnKVxuICAgICkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlclVwZGF0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZUFzRGF0ZScpKSB7XG4gICAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5wdXQgdmFsdWUgd2l0aCB0aGUgY29ycmVjdCBkYXRlIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5IHZhbHVlQXNEYXRlIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWVBc0RhdGUoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVBc0RhdGUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5wdXQgdmFsdWUgdG8gdGhlIGNvcnJlY3RseSBmb3JtYXR0ZWQgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBwcm9wZXJ0eSB2YWx1ZUFzRGF0ZSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlQXNEYXRlKGRhdGU6IFNiYkRhdGVMaWtlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUFzRGF0ZSA9IGRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdoZXRoZXIgYSBjdXN0b20gbm93IGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgaGFzQ3VzdG9tTm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX25vdztcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaElucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZmluZElucHV0KHRoaXMsIHRoaXMuaW5wdXQpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQgPT09IGlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5faW5wdXRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0O1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLl9pbnB1dE9ic2VydmVyLm9ic2VydmUoaW5wdXQsIHtcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ21pbicsICdtYXgnLCAndmFsdWUnXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSAhaW5wdXQucGxhY2Vob2xkZXI7XG4gICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICBpbnB1dC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0geyBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9O1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9wYXJzZUlucHV0KCksIG9wdGlvbnMpO1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2UoKSwgb3B0aW9ucyk7XG4gICAgICB0aGlzLl9wYXJzZUlucHV0KHRydWUpO1xuICAgICAgdGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk7XG4gICAgICB0aGlzLl92YWxpZGF0ZURhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0SW5wdXRVcGRhdGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkb25seSwgbWluLCBtYXggfSA9IHRoaXMuX2lucHV0RWxlbWVudCA/PyB7fTtcbiAgICB0aGlzLl9pbnB1dFVwZGF0ZWQuZW1pdCh7IGRpc2FibGVkLCByZWFkb25seSwgbWluLCBtYXggfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdmFsaWRhdGVEYXRlKCk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoKTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMudmFsdWVBc0RhdGUgPyB0aGlzLl9mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSEpIDogJyc7XG4gICAgaWYgKGZvcm1hdHRlZERhdGUgJiYgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlICE9PSBmb3JtYXR0ZWREYXRlKSB7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGVEYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNFbXB0eU9yVmFsaWQgPVxuICAgICAgIXRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSB8fFxuICAgICAgKCEhdGhpcy52YWx1ZUFzRGF0ZSAmJlxuICAgICAgICBpc0RhdGVBdmFpbGFibGUoXG4gICAgICAgICAgdGhpcy52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB0aGlzLmRhdGVGaWx0ZXIsXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5taW4sXG4gICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50Py5tYXgsXG4gICAgICAgICkpO1xuICAgIGNvbnN0IHdhc1ZhbGlkID0gIXRoaXMuX2lucHV0RWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWludmFsaWQnKTtcbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJywgIWlzRW1wdHlPclZhbGlkKTtcbiAgICBpZiAod2FzVmFsaWQgIT09IGlzRW1wdHlPclZhbGlkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uQ2hhbmdlLmVtaXQoeyB2YWxpZDogaXNFbXB0eU9yVmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VJbnB1dChkZXNlcmlhbGl6ZUFzRmFsbGJhY2sgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZTtcbiAgICBjb25zdCBwYXJzZSA9IHRoaXMuZGF0ZVBhcnNlciA/PyAoKHY6IHN0cmluZykgPT4gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodiwgdGhpcy5ub3cpKTtcbiAgICAvLyBXZSBhcmUgYXNzaWduaW5nIGRpcmVjdGx5IHRvIHRoZSBwcml2YXRlIGJhY2tpbmcgcHJvcGVydHkgb2YgdmFsdWVBc0RhdGVcbiAgICAvLyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBibHVyIGV2ZW50IGR1cmluZyB0aGlzIHRpbWUuXG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwocGFyc2UodmFsdWUpKTtcbiAgICBpZiAoZGVzZXJpYWxpemVBc0ZhbGxiYWNrICYmICF0aGlzLl92YWx1ZUFzRGF0ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0KGRhdGU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCA/IHRoaXMuZm9ybWF0KGRhdGUpIDogdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXJpYUxpdmVNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQ6IEhUTUxQYXJhZ3JhcGhFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LjxIVE1MUGFyYWdyYXBoRWxlbWVudD4oJyNzdGF0dXMtY29udGFpbmVyJyk7XG5cbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUsIHsgd2Vla2RheVN0eWxlOiAnbG9uZycgfSk7XG4gICAgICBjb250YWluZXJFbGVtZW50LmlubmVyVGV4dCA9IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2RhdGV9YDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPmA7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgaW5wdXRVcGRhdGVkOiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQ2dCLFNBQUEsY0FDZCxTQUNBLFNBQzRDOztBQUM1QyxNQUFJLENBQUMsU0FBUztBQUNaLFlBQU8sbUJBQ0osWUFESSxpQ0FDTSxzQkFETixtQkFFSCxjQUF1QztBQUFBLEVBQzdDO0FBRUEsU0FBTyxzQkFBK0MsT0FBTztBQUMvRDtBQVdPLFNBQVMsaUJBQ2QsTUFDQSxPQUNBLFlBQ0EsYUFDRztBQUNILE1BQUksZ0JBQWdCLFlBQVksZ0JBQWdCLE1BQU0sS0FBSztBQUUzRCxNQUFJLFlBQVk7QUFDUCxXQUFBLENBQUMsV0FBVyxhQUFhLEdBQUc7QUFDakIsc0JBQUEsWUFBWSxnQkFBZ0IsZUFBZSxLQUFLO0FBQUEsSUFDbEU7QUFBQSxFQUNGO0FBRU8sU0FBQTtBQUNUO0FBWU8sU0FBUywwQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxlQUFlLGlCQUFpQixNQUFNLElBQUksWUFBWSxXQUFXO0FBQ2pFLFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxjQUFjLE9BQU8sS0FBSyxHQUNuRjtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FBUyxzQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxXQUFXLGlCQUFpQixNQUFNLEdBQUcsWUFBWSxXQUFXO0FBQzVELFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxVQUFVLE9BQU8sS0FBSyxHQUMvRTtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FB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
348
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWcuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyLCBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZmluZElucHV0LCBmaW5kUmVmZXJlbmNlZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5EYXRlQ2hhbmdlZFRvLCBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UsIFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJCdXR0b24gfSBmcm9tICcuLi9jb21tb24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXItdG9nZ2xlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYklucHV0VXBkYXRlRXZlbnQge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgbWluPzogc3RyaW5nIHwgbnVtYmVyO1xuICBtYXg/OiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbi8vIFRPRE8oYnJlYWtpbmctY2hhbmdlKTogSW5saW5lIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGluIFNiYkRhdGVwaWNrZXJFbGVtZW50IGFzIHB1YmxpYyBtZXRob2RzXG4vLyB3aGVyZSBwb3NzaWJsZSBhbmQgdXNlIHRoZXNlIG1ldGhvZHMgd2hlcmUgdGhlIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHVzZWQuXG5cbi8qKlxuICogR2l2ZW4gYSBTYmJEYXRlcGlja2VyUHJldmlvdXNEYXlFbGVtZW50LCBhIFNiYkRhdGVwaWNrZXJOZXh0RGF5RWxlbWVudCBvciBhIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50IGNvbXBvbmVudCxcbiAqIGl0IHJldHVybnMgdGhlIHJlbGF0ZWQgU2JiRGF0ZXBpY2tlckVsZW1lbnQgcmVmZXJlbmNlLCBpZiBleGlzdHMuXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBwb3RlbnRpYWxseSBjb25uZWN0ZWQgdG8gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGlkIG9yIHRoZSByZWZlcmVuY2Ugb2YgdGhlIFNiYkRhdGVQaWNrZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlUGlja2VyPFQgPSBEYXRlPihcbiAgZWxlbWVudDogU2JiRGF0ZXBpY2tlckJ1dHRvbjxUPiB8IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQ+LFxuICB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQsXG4pOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAoIXRyaWdnZXIpIHtcbiAgICByZXR1cm4gZWxlbWVudFxuICAgICAgLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKVxuICAgICAgPy5xdWVyeVNlbGVjdG9yPFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pignc2JiLWRhdGVwaWNrZXInKTtcbiAgfVxuXG4gIHJldHVybiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8U2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4+KHRyaWdnZXIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSBvciBhZnRlciBhIGdpdmVuIG9uZSwgY29uc2lkZXJpbmcgdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50IGBkYXRlRmlsdGVyYCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGVsdGEgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC9zdWJ0cmFjdCBmcm9tIHRoZSBzdGFydGluZyBvbmUuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBkYXRlQWRhcHRlciBUaGUgYWRhcHRlciBjbGFzcy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZURhdGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkZWx0YTogbnVtYmVyLFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+LFxuKTogVCB7XG4gIGxldCBhdmFpbGFibGVEYXRlID0gZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKGRhdGUsIGRlbHRhKTtcblxuICBpZiAoZGF0ZUZpbHRlcikge1xuICAgIHdoaWxlICghZGF0ZUZpbHRlcihhdmFpbGFibGVEYXRlKSkge1xuICAgICAgYXZhaWxhYmxlRGF0ZSA9IGRhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhhdmFpbGFibGVEYXRlLCBkZWx0YSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGF2YWlsYWJsZURhdGU7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgZmlyc3QgYXZhaWxhYmxlIGRhdGUgYmVmb3JlIHRoZSBnaXZlbiBvbmUsXG4gKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWluYCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICogQHBhcmFtIGRhdGVGaWx0ZXIgVGhlIGRhdGVGaWx0ZXIgZnVuY3Rpb24gZnJvbSB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQuXG4gKiBAcGFyYW0gZGF0ZUFkYXB0ZXIgVGhlIGFkYXB0ZXIgY2xhc3MuXG4gKiBAcGFyYW0gbWluIFRoZSBtaW5pbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQcmV2aW91c0F2YWlsYWJsZURhdGU8VCA9IERhdGU+KFxuICBkYXRlOiBULFxuICBkYXRlRmlsdGVyOiAoKGRhdGU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCxcbiAgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+LFxuICBtaW46IHN0cmluZyB8IG51bWJlciB8IG51bGwsXG4pOiBUIHtcbiAgY29uc3QgcHJldmlvdXNEYXRlID0gZ2V0QXZhaWxhYmxlRGF0ZShkYXRlLCAtMSwgZGF0ZUZpbHRlciwgZGF0ZUFkYXB0ZXIpO1xuICBjb25zdCBkYXRlTWluID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWluKTtcblxuICBpZiAoXG4gICAgIWRhdGVNaW4gfHxcbiAgICAoZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJiBkYXRlQWRhcHRlci5jb21wYXJlRGF0ZShwcmV2aW91c0RhdGUsIGRhdGVNaW4pID49IDApXG4gICkge1xuICAgIHJldHVybiBwcmV2aW91c0RhdGU7XG4gIH1cbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgZmlyc3QgYXZhaWxhYmxlIGRhdGUgYWZ0ZXIgdGhlIGdpdmVuIG9uZSxcbiAqIGNvbnNpZGVyaW5nIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudCBgZGF0ZUZpbHRlcmAgcHJvcGVydHkgYW5kIGBtYXhgIHBhcmFtZXRlciAoZS5nLiBmcm9tIHRoZSBzZWxmLW5hbWVkIGlucHV0J3MgYXR0cmlidXRlKS5cbiAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gZGF0ZUZpbHRlciBUaGUgZGF0ZUZpbHRlciBmdW5jdGlvbiBmcm9tIHRoZSBTYmJEYXRlcGlja2VyRWxlbWVudC5cbiAqIEBwYXJhbSBkYXRlQWRhcHRlciBUaGUgYWRhcHRlciBjbGFzcy5cbiAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gY29uc2lkZXIgaW4gY2FsY3VsYXRpb25zLlxuICpcbiAqIEBkZXByZWNhdGVkIE5vdCBpbnRlbmRlZCBhcyBwdWJsaWMgQVBJLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE5leHRBdmFpbGFibGVEYXRlPFQgPSBEYXRlPihcbiAgZGF0ZTogVCxcbiAgZGF0ZUZpbHRlcjogKChkYXRlOiBUKSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPixcbiAgbWF4OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsLFxuKTogVCB7XG4gIGNvbnN0IG5leHREYXRlID0gZ2V0QXZhaWxhYmxlRGF0ZShkYXRlLCAxLCBkYXRlRmlsdGVyLCBkYXRlQWRhcHRlcik7XG4gIGNvbnN0IGRhdGVNYXggPSBkYXRlQWRhcHRlci5kZXNlcmlhbGl6ZShtYXgpO1xuXG4gIGlmIChcbiAgICAhZGF0ZU1heCB8fFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNYXgpICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKG5leHREYXRlLCBkYXRlTWF4KSA8PSAwKVxuICApIHtcbiAgICByZXR1cm4gbmV4dERhdGU7XG4gIH1cbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBwcm92aWRlZCBkYXRlIGlzIGEgdmFsaWQgb25lLCBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5XG4gKiBhbmQgYG1pbmAgYW5kIGBtYXhgIHBhcmFtZXRlcnMgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZXMpLlxuICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUgZm9yIGNhbGN1bGF0aW9ucy5cbiAqIEBwYXJhbSBkYXRlRmlsdGVyIFRoZSBkYXRlRmlsdGVyIGZ1bmN0aW9uIGZyb20gdGhlIFNiYkRhdGVwaWNrZXJFbGVtZW50LlxuICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBjb25zaWRlciBpbiBjYWxjdWxhdGlvbnMuXG4gKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGNvbnNpZGVyIGluIGNhbGN1bGF0aW9ucy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBOb3QgaW50ZW5kZWQgYXMgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUF2YWlsYWJsZTxUID0gRGF0ZT4oXG4gIGRhdGU6IFQsXG4gIGRhdGVGaWx0ZXI6ICgoZGF0ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsLFxuICBtaW46IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4gIG1heDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4ge1xuICAvLyBUT0RPOiBHZXQgZGF0ZSBhZGFwdGVyIGZyb20gY29uZmlnXG4gIGNvbnN0IGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBjb25zdCBkYXRlTWluID0gZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUobWluKTtcbiAgY29uc3QgZGF0ZU1heCA9IGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKG1heCk7XG5cbiAgaWYgKFxuICAgIChkYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNaW4pICYmIGRhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKGRhdGUsIGRhdGVNaW4hKSA8IDApIHx8XG4gICAgKGRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZU1heCkgJiYgZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUoZGF0ZSwgZGF0ZU1heCEpID4gMClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGRhdGVGaWx0ZXIgPyBkYXRlRmlsdGVyKGRhdGUpIDogdHJ1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZEV2ZW50RmFjdG9yeSA9ICgpOiBDdXN0b21FdmVudCA9PlxuICBuZXcgQ3VzdG9tRXZlbnQoJ2RhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZCcsIHtcbiAgICBidWJibGVzOiBmYWxzZSxcbiAgICBjb21wb3NlZDogdHJ1ZSxcbiAgfSk7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgdGhlIGlucHV0J3MgdmFsdWUgYXMgYSBmb3JtYXR0ZWQgZGF0ZS5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDaGFuZ2UgLSBEZXByZWNhdGVkLiB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gY2hhbmdlIC0gTm90aWZpZXMgdGhhdCB0aGUgY29ubmVjdGVkIGlucHV0IGhhcyBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50Pn0gaW5wdXRVcGRhdGVkIC0gTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRhdGVQaWNrZXJVcGRhdGVkIC0gTm90aWZpZXMgdGhhdCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZGF0ZXBpY2tlciBoYXZlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudD59IHZhbGlkYXRpb25DaGFuZ2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgaW50ZXJuYWwgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXInKVxuZXhwb3J0IGNsYXNzIFNiYkRhdGVwaWNrZXJFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIExpdEVsZW1lbnQge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nIC0tXG4gICAqIFdlIGRlYWN0aXZhdGUgbWVtYmVyLW9yZGVyaW5nIGJlY2F1c2Ugb2YgdGhlIEBwcm9wZXJ0eSBkZWNvcmF0ZWQgbWV0aG9kcyBkYXRlRmlsdGVyLCBkYXRlUGFyc2VyIGFuZCBmb3JtYXQuXG4gICAqL1xuXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXRVcGRhdGVkOiAnaW5wdXRVcGRhdGVkJyxcbiAgICBkYXRlUGlja2VyVXBkYXRlZDogJ2RhdGVQaWNrZXJVcGRhdGVkJyxcbiAgICB2YWxpZGF0aW9uQ2hhbmdlOiAndmFsaWRhdGlvbkNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIElmIHNldCB0byB0cnVlLCB0d28gbW9udGhzIGFyZSBkaXNwbGF5ZWQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIHdpZGUgPSBmYWxzZTtcblxuICAvKiogQSBmdW5jdGlvbiB1c2VkIHRvIGZpbHRlciBvdXQgZGF0ZXMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSkgcHVibGljIGRhdGVGaWx0ZXI6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdXNlZCB0byBwYXJzZSBzdHJpbmcgdmFsdWUgaW50byBkYXRlcy5cbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KSBwdWJsaWMgZGF0ZVBhcnNlcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBUIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGludG8gdGhlIHByZWZlcnJlZCBzdHJpbmcgZm9ybWF0LlxuICAgKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pIHB1YmxpYyBmb3JtYXQ/OiAoZGF0ZTogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKiBSZWZlcmVuY2Ugb2YgdGhlIG5hdGl2ZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBpbnB1dD86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuXG4gIC8vIFRPRE86IENoYW5nZSB1bmRlZmluZWQgdG8gbnVsbCBhcyBhIGJyZWFraW5nIGNoYW5nZS5cbiAgLyoqIEEgY29uZmlndXJlZCBkYXRlIHdoaWNoIGFjdHMgYXMgdGhlIGN1cnJlbnQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSByZWFsIGN1cnJlbnQgZGF0ZS4gUmVjb21tZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbm93KHZhbHVlOiBTYmJEYXRlTGlrZTxUPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX25vdyA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICB9XG4gIHB1YmxpYyBnZXQgbm93KCk6IFQge1xuICAgIHJldHVybiB0aGlzLl9ub3cgPz8gdGhpcy5fZGF0ZUFkYXB0ZXIudG9kYXkoKTtcbiAgfVxuICBwcml2YXRlIF9ub3c/OiBUIHwgbnVsbDtcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGFzIGEgRGF0ZSBvciBjdXN0b20gZGF0ZSBwcm92aWRlciBpbnN0YW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKHZhbHVlOiBTYmJEYXRlTGlrZTxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIGlmICh0aGlzLl90cnlBcHBseUZvcm1hdFRvSW5wdXQoKSkge1xuICAgICAgLyogRW1pdCBibHVyIGV2ZW50IHdoZW4gdmFsdWUgaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5IHRvIG5vdGlmeVxuICAgICAgZnJhbWV3b3JrcyB0aGF0IHJlbHkgb24gdGhhdCBldmVudCB0byB1cGRhdGUgZm9ybSBzdGF0dXMuICovXG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQhLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdibHVyJywgeyBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWVBc0RhdGUoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlQXNEYXRlPzogVCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIG9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX2RpZENoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLCB7XG4gICAgYnViYmxlczogdHJ1ZSxcbiAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICB9KTtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgY29ubmVjdGVkIGlucHV0IGhhcyBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9jaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmNoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9pbnB1dFVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjxTYmJJbnB1dFVwZGF0ZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuaW5wdXRVcGRhdGVkLFxuICAgIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlclVwZGF0ZWQ6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuZGF0ZVBpY2tlclVwZGF0ZWQsXG4gICAge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgfSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLnZhbGlkYXRpb25DaGFuZ2UsXG4gICk7XG5cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2RhdGVQaWNrZXJDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuXG4gIHByaXZhdGUgX2lucHV0T2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0KSA9PiB7XG4gICAgICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoZXRoZXIgdG8gcmVtb3ZlIHRoaXMgbG9naWMgYnkgYWRkaW5nIGEgdmFsdWUgcHJvcGVydHkgdG8gdGhlIGRhdGVwaWNrZXIuXG4gICAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQgJiYgbXV0YXRpb25zTGlzdD8uc29tZSgoZSkgPT4gZS5hdHRyaWJ1dGVOYW1lID09PSAndmFsdWUnKSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5faW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgndmFsdWUnKTtcbiAgICAgICAgICB0aGlzLnZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodmFsdWUsIHRoaXMubm93KSA/PyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG5cbiAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+ID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG5cbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcykud2l0aEhhbmRsZXIoKCkgPT4ge1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdCh0aGlzLnZhbHVlQXNEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZGF0ZXBpY2tlckNvbnRyb2xSZWdpc3RlcmVkJywgKCkgPT4gdGhpcy5fZW1pdElucHV0VXBkYXRlZCgpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0LnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9hdHRhY2hJbnB1dCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VtaXRJbnB1dFVwZGF0ZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2lucHV0JykpIHtcbiAgICAgIHRoaXMuX2F0dGFjaElucHV0KCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnd2lkZScpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2RhdGVGaWx0ZXInKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdub3cnKVxuICAgICkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlclVwZGF0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZUFzRGF0ZScpKSB7XG4gICAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fc2V0QXJpYUxpdmVNZXNzYWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5wdXQgdmFsdWUgd2l0aCB0aGUgY29ycmVjdCBkYXRlIGZvcm1hdC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5IHZhbHVlQXNEYXRlIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWVBc0RhdGUoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVBc0RhdGUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5wdXQgdmFsdWUgdG8gdGhlIGNvcnJlY3RseSBmb3JtYXR0ZWQgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBwcm9wZXJ0eSB2YWx1ZUFzRGF0ZSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlQXNEYXRlKGRhdGU6IFNiYkRhdGVMaWtlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUFzRGF0ZSA9IGRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdoZXRoZXIgYSBjdXN0b20gbm93IGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgaGFzQ3VzdG9tTm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX25vdztcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaElucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZmluZElucHV0KHRoaXMsIHRoaXMuaW5wdXQpO1xuICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQgPT09IGlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5faW5wdXRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0O1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5vYnNlcnZlKGlucHV0LCB7XG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydkaXNhYmxlZCcsICdyZWFkb25seScsICdtaW4nLCAnbWF4JywgJ3ZhbHVlJ10sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5faW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlID0gIWlucHV0LnBsYWNlaG9sZGVyO1xuICAgICAgaW5wdXQudHlwZSA9ICd0ZXh0JztcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgaW5wdXQucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHsgc2lnbmFsOiB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlci5zaWduYWwgfTtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4gdGhpcy5fcGFyc2VJbnB1dCgpLCBvcHRpb25zKTtcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0Q2hhbmdlKCksIG9wdGlvbnMpO1xuICAgICAgdGhpcy5fcGFyc2VJbnB1dCh0cnVlKTtcbiAgICAgIHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpO1xuICAgICAgdGhpcy5fdmFsaWRhdGVEYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdElucHV0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGRpc2FibGVkLCByZWFkT25seTogcmVhZG9ubHksIG1pbiwgbWF4IH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQgPz8ge307XG4gICAgdGhpcy5faW5wdXRVcGRhdGVkLmVtaXQoeyBkaXNhYmxlZCwgcmVhZG9ubHksIG1pbiwgbWF4IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlSW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ZhbGlkYXRlRGF0ZSgpO1xuICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICAgIHRoaXMuX2NoYW5nZS5lbWl0KCk7XG4gICAgdGhpcy5fZGlkQ2hhbmdlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLnZhbHVlQXNEYXRlID8gdGhpcy5fZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUhKSA6ICcnO1xuICAgIGlmIChmb3JtYXR0ZWREYXRlICYmIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSAhPT0gZm9ybWF0dGVkRGF0ZSkge1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkRGF0ZTtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkYXRlRGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRW1wdHlPclZhbGlkID1cbiAgICAgICF0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgfHxcbiAgICAgICghIXRoaXMudmFsdWVBc0RhdGUgJiZcbiAgICAgICAgaXNEYXRlQXZhaWxhYmxlKFxuICAgICAgICAgIHRoaXMudmFsdWVBc0RhdGUsXG4gICAgICAgICAgdGhpcy5kYXRlRmlsdGVyLFxuICAgICAgICAgIHRoaXMuX2lucHV0RWxlbWVudD8ubWluLFxuICAgICAgICAgIHRoaXMuX2lucHV0RWxlbWVudD8ubWF4LFxuICAgICAgICApKTtcbiAgICBjb25zdCB3YXNWYWxpZCA9ICF0aGlzLl9pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW52YWxpZCcsICFpc0VtcHR5T3JWYWxpZCk7XG4gICAgaWYgKHdhc1ZhbGlkICE9PSBpc0VtcHR5T3JWYWxpZCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbkNoYW5nZS5lbWl0KHsgdmFsaWQ6IGlzRW1wdHlPclZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlSW5wdXQoZGVzZXJpYWxpemVBc0ZhbGxiYWNrID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2lucHV0RWxlbWVudCEudmFsdWU7XG4gICAgY29uc3QgcGFyc2UgPSB0aGlzLmRhdGVQYXJzZXIgPz8gKCh2OiBzdHJpbmcpID0+IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHYsIHRoaXMubm93KSk7XG4gICAgLy8gV2UgYXJlIGFzc2lnbmluZyBkaXJlY3RseSB0byB0aGUgcHJpdmF0ZSBiYWNraW5nIHByb3BlcnR5IG9mIHZhbHVlQXNEYXRlXG4gICAgLy8gYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgYmx1ciBldmVudCBkdXJpbmcgdGhpcyB0aW1lLlxuICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHBhcnNlKHZhbHVlKSk7XG4gICAgaWYgKGRlc2VyaWFsaXplQXNGYWxsYmFjayAmJiAhdGhpcy5fdmFsdWVBc0RhdGUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdChkYXRlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQgPyB0aGlzLmZvcm1hdChkYXRlKSA6IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEFyaWFMaXZlTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50OiBIVE1MUGFyYWdyYXBoRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy48SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCcjc3RhdHVzLWNvbnRhaW5lcicpO1xuXG4gICAgaWYgKCFjb250YWluZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghdGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLnZhbHVlQXNEYXRlLCB7IHdlZWtkYXlTdHlsZTogJ2xvbmcnIH0pO1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSBgJHtpMThuRGF0ZUNoYW5nZWRUb1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtkYXRlfWA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHAgaWQ9XCJzdGF0dXMtY29udGFpbmVyXCIgcm9sZT1cInN0YXR1c1wiPjwvcD5gO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAqL1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGVwaWNrZXInOiBTYmJEYXRlcGlja2VyRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIGlucHV0VXBkYXRlZDogQ3VzdG9tRXZlbnQ8U2JiSW5wdXRVcGRhdGVFdmVudD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQ2dCLFNBQUEsY0FDZCxTQUNBLFNBQzRDOztBQUM1QyxNQUFJLENBQUMsU0FBUztBQUNaLFlBQU8sbUJBQ0osWUFESSxpQ0FDTSxzQkFETixtQkFFSCxjQUF1QztBQUFBLEVBQzdDO0FBRUEsU0FBTyxzQkFBK0MsT0FBTztBQUMvRDtBQVdPLFNBQVMsaUJBQ2QsTUFDQSxPQUNBLFlBQ0EsYUFDRztBQUNILE1BQUksZ0JBQWdCLFlBQVksZ0JBQWdCLE1BQU0sS0FBSztBQUUzRCxNQUFJLFlBQVk7QUFDUCxXQUFBLENBQUMsV0FBVyxhQUFhLEdBQUc7QUFDakIsc0JBQUEsWUFBWSxnQkFBZ0IsZUFBZSxLQUFLO0FBQUEsSUFDbEU7QUFBQSxFQUNGO0FBRU8sU0FBQTtBQUNUO0FBWU8sU0FBUywwQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxlQUFlLGlCQUFpQixNQUFNLElBQUksWUFBWSxXQUFXO0FBQ2pFLFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxjQUFjLE9BQU8sS0FBSyxHQUNuRjtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FBUyxzQkFDZCxNQUNBLFlBQ0EsYUFDQSxLQUNHO0FBQ0gsUUFBTSxXQUFXLGlCQUFpQixNQUFNLEdBQUcsWUFBWSxXQUFXO0FBQzVELFFBQUEsVUFBVSxZQUFZLFlBQVksR0FBRztBQUd6QyxNQUFBLENBQUMsV0FDQSxZQUFZLFFBQVEsT0FBTyxLQUFLLFlBQVksWUFBWSxVQUFVLE9BQU8sS0FBSyxHQUMvRTtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ08sU0FBQTtBQUNUO0FBWU8sU0FBUyxn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
@@ -31,7 +31,6 @@ export declare class SbbDialogElement extends SbbOverlayBaseElement {
31
31
  connectedCallback(): void;
32
32
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
33
33
  protected willUpdate(changedProperties: PropertyValues<this>): void;
34
- disconnectedCallback(): void;
35
34
  protected attachOpenOverlayEvents(): void;
36
35
  protected onOverlayAnimationEnd(event: AnimationEvent): void;
37
36
  protected setOverlayFocus(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAMtE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;;;;;GAWG;AACH,qBACa,gBAAiB,SAAQ,qBAAqB;IACzD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,6BAA6B;IACsB,cAAc,EAAE,OAAO,GAAG,MAAM,CAAW;IAM9F,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,qBAAqB,CAA4B;IACzD,OAAO,CAAC,qBAAqB,CAAwC;IACrE,OAAO,CAAC,2BAA2B,CAAkB;IACrD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAA4B;IAC7C,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;IAEtD,2BAA2B;IACpB,IAAI,IAAI,IAAI;IA2BH,iBAAiB,IAAI,IAAI;cAYtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAO3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5D,oBAAoB,IAAI,IAAI;cAKzB,uBAAuB,IAAI,IAAI;IAgBlD,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAsC5D,SAAS,CAAC,eAAe,IAAI,IAAI;IAQjC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,0BAA0B;cAMf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog/dialog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAMtE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;;;;;GAWG;AACH,qBACa,gBAAiB,SAAQ,qBAAqB;IACzD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,6BAA6B;IACsB,cAAc,EAAE,OAAO,GAAG,MAAM,CAAW;IAM9F,OAAO,CAAC,4BAA4B,CAIjC;IAEH,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,qBAAqB,CAA4B;IACzD,OAAO,CAAC,qBAAqB,CAAwC;IACrE,OAAO,CAAC,2BAA2B,CAAkB;IACrD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAA4B;IAC7C,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;IAEtD,2BAA2B;IACpB,IAAI,IAAI,IAAI;IA2BH,iBAAiB,IAAI,IAAI;cAYtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAO3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,uBAAuB,IAAI,IAAI;IAgBlD,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAwC5D,SAAS,CAAC,eAAe,IAAI,IAAI;IAQjC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,oBAAoB,CAS1B;IAGF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,0BAA0B;cAMf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
@@ -1,8 +1,8 @@
1
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
1
2
  import { property, customElement } from "lit/decorators.js";
2
3
  import { html } from "lit/static-html.js";
3
4
  import { setModalityOnNextFocus, getFirstFocusableElement } from "../core/a11y.js";
4
5
  import { isBreakpoint } from "../core/dom.js";
5
- import { AgnosticResizeObserver } from "../core/observers.js";
6
6
  import { SbbOverlayBaseElement, overlayRefs } from "../overlay.js";
7
7
  import { css } from "lit";
8
8
  import "../screen-reader-only.js";
@@ -218,9 +218,11 @@ let SbbDialogElement = class extends SbbOverlayBaseElement {
218
218
  constructor() {
219
219
  super(...arguments);
220
220
  this.backdropAction = "close";
221
- this._dialogContentResizeObserver = new AgnosticResizeObserver(
222
- () => setTimeout(() => this._onContentResize())
223
- );
221
+ this._dialogContentResizeObserver = new ResizeController(this, {
222
+ target: null,
223
+ skipInitial: true,
224
+ callback: () => setTimeout(() => this._onContentResize())
225
+ });
224
226
  this._dialogTitleElement = null;
225
227
  this._dialogContentElement = null;
226
228
  this._dialogActionsElement = null;
@@ -283,10 +285,6 @@ let SbbDialogElement = class extends SbbOverlayBaseElement {
283
285
  this._syncNegative();
284
286
  }
285
287
  }
286
- disconnectedCallback() {
287
- super.disconnectedCallback();
288
- this._dialogContentResizeObserver.disconnect();
289
- }
290
288
  attachOpenOverlayEvents() {
291
289
  var _a;
292
290
  super.attachOpenOverlayEvents();
@@ -327,7 +325,9 @@ let SbbDialogElement = class extends SbbOverlayBaseElement {
327
325
  (_b = this.lastFocusedElement) == null ? void 0 : _b.focus();
328
326
  (_c = this.openOverlayController) == null ? void 0 : _c.abort();
329
327
  this.focusHandler.disconnect();
330
- this._dialogContentResizeObserver.disconnect();
328
+ if (this._dialogContentElement) {
329
+ this._dialogContentResizeObserver.unobserve(this._dialogContentElement);
330
+ }
331
331
  this.removeInstanceFromGlobalCollection();
332
332
  if (!overlayRefs.length) {
333
333
  this.scrollHandler.enableScroll();
@@ -429,4 +429,4 @@ SbbDialogElement = __decorateClass([
429
429
  export {
430
430
  SbbDialogElement
431
431
  };
432
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy9kaWFsb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBpc0JyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBBZ25vc3RpY1Jlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHsgb3ZlcmxheVJlZnMsIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dBY3Rpb25zRWxlbWVudCB9IGZyb20gJy4uL2RpYWxvZy1hY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGlhbG9nVGl0bGVFbGVtZW50IH0gZnJvbSAnLi4vZGlhbG9nLXRpdGxlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGlhbG9nLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW50ZXJhY3RpdmUgb3ZlcmxheSBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGBzYmItZGlhbG9nLXRpdGxlYCwgYHNiYi1kaWFsb2ctY29udGVudGAgYW5kIGFuIG9wdGlvbmFsIGBzYmItZGlhbG9nLWFjdGlvbnNgLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZGlhbG9nYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYk92ZXJsYXlDbG9zZUV2ZW50RGV0YWlscz59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZGlhbG9nYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItZGlhbG9nLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kaWFsb2cnKVxuZXhwb3J0IGNsYXNzIFNiYkRpYWxvZ0VsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogQmFja2Ryb3AgY2xpY2sgYWN0aW9uLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYWNrZHJvcC1hY3Rpb24nIH0pIHB1YmxpYyBiYWNrZHJvcEFjdGlvbjogJ2Nsb3NlJyB8ICdub25lJyA9ICdjbG9zZSc7XG5cbiAgLy8gV2UgdXNlIGEgdGltZW91dCBhcyBhIHdvcmthcm91bmQgdG8gdGhlIFwiUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zXCIgZXJyb3IuXG4gIC8vIEZvciBtb3JlIGRldGFpbHM6XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8zOCNpc3N1ZWNvbW1lbnQtNDIyMTI2MDA2XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2p1Z2dsZS9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzEwMyNpc3N1ZWNvbW1lbnQtMTcxMTE0ODI4NVxuICBwcml2YXRlIF9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIgPSBuZXcgQWdub3N0aWNSZXNpemVPYnNlcnZlcigoKSA9PlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fb25Db250ZW50UmVzaXplKCkpLFxuICApO1xuXG4gIHByaXZhdGUgX2RpYWxvZ1RpdGxlRWxlbWVudDogU2JiRGlhbG9nVGl0bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RpYWxvZ1RpdGxlSGVpZ2h0PzogbnVtYmVyO1xuICBwcml2YXRlIF9kaWFsb2dDb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZGlhbG9nQWN0aW9uc0VsZW1lbnQ6IFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX292ZXJmbG93czogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0U2Nyb2xsID0gMDtcbiAgcHJpdmF0ZSBfZGlhbG9nSWQgPSBgc2JiLWRpYWxvZy0ke25leHRJZCsrfWA7XG4gIHByb3RlY3RlZCBjbG9zZUF0dHJpYnV0ZTogc3RyaW5nID0gJ3NiYi1kaWFsb2ctY2xvc2UnO1xuXG4gIC8qKiBPcGVucyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBkaWFsb2cgZWxlbWVudHNcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctdGl0bGUnKTtcbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy1jb250ZW50Jyk/LnNoYWRvd1Jvb3QhXG4gICAgICAuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5fZGlhbG9nQWN0aW9uc0VsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctYWN0aW9ucycpO1xuXG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG5cbiAgICAvLyBBZGQgdGhpcyBkaWFsb2cgdG8gdGhlIGdsb2JhbCBjb2xsZWN0aW9uXG4gICAgb3ZlcmxheVJlZnMucHVzaCh0aGlzIGFzIFNiYkRpYWxvZ0VsZW1lbnQpO1xuICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50KTtcblxuICAgIC8vIERpc2FibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBkaWFsb2dcbiAgICB0aGlzLnNjcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgc2lnbmFsOiB0aGlzLm92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMub3ZlcmxheUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAvLyBTeW5jaHJvbml6ZSB0aGUgbmVnYXRpdmUgc3RhdGUgYmVmb3JlIHRoZSBmaXJzdCBvcGVuaW5nIHRvIGF2b2lkIGEgcG9zc2libGUgY29sb3IgZmxhc2ggaWYgaXQgaXMgbmVnYXRpdmUuXG4gICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLXRpdGxlJykhO1xuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTogdm9pZCB7XG4gICAgc3VwZXIuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcblxuICAgIC8vIElmIHRoZSBjb250ZW50IG92ZXJmbG93cywgc2hvdy9oaWRlIHRoZSBkaWFsb2cgaGVhZGVyIG9uIHNjcm9sbC5cbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fb25Db250ZW50U2Nyb2xsKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpLCB7XG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdhaXQgZm9yIGRpYWxvZyB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlLlxuICAvLyBJbiByYXJlIGNhc2VzLCBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcm90ZWN0ZWQgb25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICAgIHRoaXMuc2V0T3ZlcmxheUZvY3VzKCk7XG4gICAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgICAgICB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LmlubmVyVGV4dC50cmltKCksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIudHJhcCh0aGlzKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zZXRIaWRlSGVhZGVyRGF0YUF0dHJpYnV0ZShmYWxzZSk7XG4gICAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMucmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpO1xuICAgICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nIGlmIG5vIGRpYWxvZyBpcyBvcGVuXG4gICAgICBpZiAoIW92ZXJsYXlSZWZzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRpZENsb3NlLmVtaXQoe1xuICAgICAgICByZXR1cm5WYWx1ZTogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByb3RlY3RlZCBzZXRPdmVybGF5Rm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RGb2N1c2FibGUgPSBnZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQoXG4gICAgICBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCksXG4gICAgKTtcbiAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKGZpcnN0Rm9jdXNhYmxlKTtcbiAgICBmaXJzdEZvY3VzYWJsZT8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNOZWdhdGl2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kaWFsb2dBY3Rpb25zRWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQWN0aW9uc0VsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50U2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNWaXNpYmxlSGVhZGVyID0gdGhpcy5kYXRhc2V0LmhpZGVIZWFkZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIC8vIENoZWNrIHdoZXRoZXIgaGlkaW5nIHRoZSBoZWFkZXIgd291bGQgbWFrZSB0aGUgc2Nyb2xsYmFyIGRpc2FwcGVhclxuICAgIC8vIGFuZCBwcmV2ZW50IHRoZSBoaWRpbmcgYW5pbWF0aW9uIGlmIHNvLlxuICAgIGlmIChcbiAgICAgIGhhc1Zpc2libGVIZWFkZXIgJiZcbiAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LmNsaWVudEhlaWdodCArIHRoaXMuX2RpYWxvZ1RpdGxlSGVpZ2h0ISA+PVxuICAgICAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIGlmIChcbiAgICAgIE1hdGgucm91bmQoY3VycmVudFNjcm9sbCArIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LmNsaWVudEhlaWdodCkgPj1cbiAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDaGVjayB3aGV0aGVyIGlzIHNjcm9sbGluZyBkb3duIG9yIHVwLlxuICAgIGlmIChjdXJyZW50U2Nyb2xsID4gMCAmJiB0aGlzLl9sYXN0U2Nyb2xsIDwgY3VycmVudFNjcm9sbCkge1xuICAgICAgLy8gU2Nyb2xsaW5nIGRvd25cbiAgICAgIHRoaXMuX3NldEhpZGVIZWFkZXJEYXRhQXR0cmlidXRlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTY3JvbGxpbmcgdXBcbiAgICAgIHRoaXMuX3NldEhpZGVIZWFkZXJEYXRhQXR0cmlidXRlKGZhbHNlKTtcbiAgICB9XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIGRpYWxvZy5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuYmFja2Ryb3BBY3Rpb24gIT09ICdjbG9zZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbkRpYWxvZyA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAuc29tZSgodGFyZ2V0KSA9PiB0YXJnZXQuaWQgPT09IHRoaXMuX2RpYWxvZ0lkKTtcbiAgfTtcblxuICAvLyBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbkRpYWxvZyAmJlxuICAgICAgIWV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KVxuICAgICAgICAuc29tZSgodGFyZ2V0KSA9PiB0YXJnZXQuaWQgPT09IHRoaXMuX2RpYWxvZ0lkKVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9zZXREaWFsb2dIZWFkZXJIZWlnaHQoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nVGl0bGVIZWlnaHQgPSB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LnNoYWRvd1Jvb3QhLmZpcnN0RWxlbWVudENoaWxkIS5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItZGlhbG9nLWhlYWRlci1oZWlnaHQnLCBgJHt0aGlzLl9kaWFsb2dUaXRsZUhlaWdodH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Db250ZW50UmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuX3NldERpYWxvZ0hlYWRlckhlaWdodCgpO1xuICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGFuZCBzZXQgdGhlIGBvdmVyZmxvd3NgIGF0dHJpYnV0ZS5cbiAgICB0aGlzLl9vdmVyZmxvd3MgPSB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudFxuICAgICAgPyB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsSGVpZ2h0ID4gdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQ/LmNsaWVudEhlaWdodFxuICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLl9zZXRPdmVyZmxvd3NEYXRhQXR0cmlidXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRIaWRlSGVhZGVyRGF0YUF0dHJpYnV0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGhpZGVPblNjcm9sbCA9IHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudD8uaGlkZU9uU2Nyb2xsID8/IGZhbHNlO1xuICAgIGNvbnN0IGhpZGVIZWFkZXIgPVxuICAgICAgdHlwZW9mIGhpZGVPblNjcm9sbCA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgID8gaGlkZU9uU2Nyb2xsXG4gICAgICAgIDogaXNCcmVha3BvaW50KCd6ZXJvJywgaGlkZU9uU2Nyb2xsLCB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiB0cnVlIH0pO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhpZGUtaGVhZGVyJywgIWhpZGVIZWFkZXIgPyBmYWxzZSA6IHZhbHVlKTtcbiAgICBpZiAodGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhpZGUtaGVhZGVyJywgIWhpZGVIZWFkZXIgPyBmYWxzZSA6IHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRPdmVyZmxvd3NEYXRhQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW92ZXJmbG93cycsIHRoaXMuX292ZXJmbG93cyk7XG4gICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50Py50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtb3ZlcmZsb3dzJywgdGhpcy5fb3ZlcmZsb3dzKTtcbiAgICB0aGlzLl9kaWFsb2dBY3Rpb25zRWxlbWVudD8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLW92ZXJmbG93cycsIHRoaXMuX292ZXJmbG93cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLm9uT3ZlcmxheUFuaW1hdGlvbkVuZChldmVudCl9XG4gICAgICAgICAgY2xhc3M9XCJzYmItZGlhbG9nXCJcbiAgICAgICAgICBpZD0ke3RoaXMuX2RpYWxvZ0lkfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5jbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItZGlhbG9nX193cmFwcGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSBhcmlhLWxpdmU9XCJwb2xpdGVcIj48L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZyc6IFNiYkRpYWxvZ0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFJLFNBQVM7QUFlQSxJQUFBLG1CQUFOLGNBQStCLHNCQUFzQjtBQUFBLEVBQXJELGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQUl1QyxTQUFPLGlCQUFtQztBQU10RixTQUFRLCtCQUErQixJQUFJO0FBQUEsTUFBdUIsTUFDaEUsV0FBVyxNQUFNLEtBQUssa0JBQWtCO0FBQUEsSUFBQTtBQUcxQyxTQUFRLHNCQUFvRDtBQUU1RCxTQUFRLHdCQUE0QztBQUNwRCxTQUFRLHdCQUF3RDtBQUNoRSxTQUFRLDhCQUF1QztBQUMvQyxTQUFRLGFBQXNCO0FBQzlCLFNBQVEsY0FBYztBQUNkLFNBQUEsWUFBWSxjQUFjLFFBQVE7QUFDMUMsU0FBVSxpQkFBeUI7QUEySzNCLFNBQUEsdUJBQXVCLENBQUMsVUFBOEI7QUFDeEQsVUFBQSxLQUFLLG1CQUFtQixTQUFTO0FBQ25DO0FBQUEsTUFDRjtBQUVBLFdBQUssOEJBQThCLE1BQ2hDLGFBQ0EsRUFBQSxPQUFPLENBQUMsTUFBd0IsYUFBYSxPQUFPLFdBQVcsRUFDL0QsS0FBSyxDQUFDLFdBQVcsT0FBTyxPQUFPLEtBQUssU0FBUztBQUFBLElBQUE7QUFJMUMsU0FBQSx3QkFBd0IsQ0FBQyxVQUE4QjtBQUN6RCxVQUFBLEtBQUssbUJBQW1CLFNBQVM7QUFDbkM7QUFBQSxNQUNGO0FBR0UsVUFBQSxDQUFDLEtBQUssK0JBQ04sQ0FBQyxNQUNFLGVBQ0EsT0FBTyxDQUFDLE1BQXdCLGFBQWEsT0FBTyxXQUFXLEVBQy9ELEtBQUssQ0FBQyxXQUFXLE9BQU8sT0FBTyxLQUFLLFNBQVMsR0FDaEQ7QUFDQSxhQUFLLE1BQU07QUFBQSxNQUNiO0FBQUEsSUFBQTtBQUFBLEVBQ0Y7QUFBQTtBQUFBLEVBbE1PLE9BQWE7O0FBQ2QsUUFBQSxLQUFLLFVBQVUsVUFBVTtBQUMzQjtBQUFBLElBQ0Y7QUFDQSxTQUFLLHFCQUFxQixTQUFTO0FBRzlCLFNBQUEsc0JBQXNCLEtBQUssY0FBYyxrQkFBa0I7QUFDaEUsU0FBSyx5QkFBd0IsVUFBSyxjQUFjLG9CQUFvQixNQUF2QyxtQkFBMEMsV0FDcEU7QUFDRSxTQUFBLHdCQUF3QixLQUFLLGNBQWMsb0JBQW9CO0FBRXBFLFNBQUssY0FBYztBQUVuQixRQUFJLENBQUMsS0FBSyxTQUFTLFFBQVE7QUFDekI7QUFBQSxJQUNGO0FBQ0EsU0FBSyxRQUFRO0FBR2IsZ0JBQVksS0FBSyxJQUF3QjtBQUNwQyxTQUFBLDZCQUE2QixRQUFRLEtBQUsscUJBQXFCO0FBR3BFLFNBQUssY0FBYztFQUNyQjtBQUFBLEVBRWdCLG9CQUEwQjtBQUN4QyxVQUFNLGtCQUFrQjtBQUduQixTQUFBLGlCQUFpQixlQUFlLEtBQUssc0JBQXNCO0FBQUEsTUFDOUQsUUFBUSxLQUFLLGtCQUFrQjtBQUFBLElBQUEsQ0FDaEM7QUFDSSxTQUFBLGlCQUFpQixhQUFhLEtBQUssdUJBQXVCO0FBQUEsTUFDN0QsUUFBUSxLQUFLLGtCQUFrQjtBQUFBLElBQUEsQ0FDaEM7QUFBQSxFQUNIO0FBQUEsRUFFbUIsYUFBYSxtQkFBK0M7QUFFeEUsU0FBQSxzQkFBc0IsS0FBSyxjQUFjLGtCQUFrQjtBQUNoRSxTQUFLLGNBQWM7QUFDbkIsVUFBTSxhQUFhLGlCQUFpQjtBQUFBLEVBQ3RDO0FBQUEsRUFFbUIsV0FBVyxtQkFBK0M7QUFDM0UsVUFBTSxXQUFXLGlCQUFpQjtBQUU5QixRQUFBLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyxXQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUFBLEVBQ0Y7QUFBQSxFQUVnQix1QkFBNkI7QUFDM0MsVUFBTSxxQkFBcUI7QUFDM0IsU0FBSyw2QkFBNkI7RUFDcEM7QUFBQSxFQUVtQiwwQkFBZ0M7O0FBQ2pELFVBQU0sd0JBQXdCO0FBRzlCLGVBQUssMEJBQUwsbUJBQTRCLGlCQUFpQixVQUFVLE1BQU0sS0FBSyxvQkFBb0I7QUFBQSxNQUNwRixTQUFTO0FBQUEsTUFDVCxRQUFRLEtBQUssc0JBQXNCO0FBQUEsSUFBQTtBQUVyQyxXQUFPLGlCQUFpQixVQUFVLE1BQU0sS0FBSyw0QkFBNEIsS0FBSyxHQUFHO0FBQUEsTUFDL0UsUUFBUSxLQUFLLHNCQUFzQjtBQUFBLElBQUEsQ0FDcEM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLVSxzQkFBc0IsT0FBNkI7O0FBQzNELFFBQUksTUFBTSxrQkFBa0IsVUFBVSxLQUFLLFVBQVUsV0FBVztBQUM5RCxXQUFLLFFBQVE7QUFDYixXQUFLLFFBQVE7QUFDYixXQUFLLGdCQUFnQjtBQUNyQixXQUFLLHdCQUF3QjtBQUM3QixXQUFLLGdCQUFnQjtBQUVyQjtBQUFBLFFBQVcsTUFBQTs7QUFDVCxzQkFBSztBQUFBLFlBQ0gsS0FBSyx3QkFBc0JBLE1BQUEsS0FBSyx3QkFBTCxnQkFBQUEsSUFBMEIsVUFBVTtBQUFBLFVBQ2pFO0FBQUE7QUFBQSxNQUFBO0FBRUcsV0FBQSxhQUFhLEtBQUssSUFBSTtBQUFBLElBQUEsV0FDbEIsTUFBTSxrQkFBa0IsV0FBVyxLQUFLLFVBQVUsV0FBVztBQUN0RSxXQUFLLDRCQUE0QixLQUFLO0FBQ2pDLGlCQUFBLDBCQUFBLG1CQUF1QixTQUFTLEdBQUc7QUFDeEMsV0FBSyxRQUFRO0FBQ2IsV0FBSyxnQkFBZ0I7QUFDckIsNkJBQXVCLEtBQUssa0JBQWtCO0FBRTlDLGlCQUFLLHVCQUFMLG1CQUF5QjtBQUN6QixpQkFBSywwQkFBTCxtQkFBNEI7QUFDNUIsV0FBSyxhQUFhO0FBQ2xCLFdBQUssNkJBQTZCO0FBQ2xDLFdBQUssbUNBQW1DO0FBRXBDLFVBQUEsQ0FBQyxZQUFZLFFBQVE7QUFDdkIsYUFBSyxjQUFjO01BQ3JCO0FBQ0EsV0FBSyxTQUFTLEtBQUs7QUFBQSxRQUNqQixhQUFhLEtBQUs7QUFBQSxRQUNsQixhQUFhLEtBQUs7QUFBQSxNQUFBLENBQ25CO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFBQTtBQUFBLEVBR1Usa0JBQXdCO0FBQ2hDLFVBQU0saUJBQWlCO0FBQUEsTUFDckIsTUFBTSxLQUFLLEtBQUssUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUF3QixhQUFhLE9BQU8sV0FBVztBQUFBLElBQUE7QUFFM0YsMkJBQXVCLGNBQWM7QUFDckMscURBQWdCO0FBQUEsRUFDbEI7QUFBQSxFQUVRLGdCQUFzQjtBQUM1QixRQUFJLEtBQUsscUJBQXFCO0FBQ3ZCLFdBQUEsb0JBQW9CLFdBQVcsS0FBSztBQUFBLElBQzNDO0FBRUEsUUFBSSxLQUFLLHVCQUF1QjtBQUM5QixXQUFLLHNCQUFzQixnQkFBZ0IsaUJBQWlCLEtBQUssUUFBUTtBQUFBLElBQzNFO0FBQUEsRUFDRjtBQUFBLEVBRVEsbUJBQXlCO0FBQzNCLFFBQUEsQ0FBQyxLQUFLLHVCQUF1QjtBQUMvQjtBQUFBLElBQ0Y7QUFFTSxVQUFBLG1CQUFtQixLQUFLLFFBQVEsZUFBZTtBQUtuRCxRQUFBLG9CQUNBLEtBQUssc0JBQXNCLGVBQWUsS0FBSyxzQkFDN0MsS0FBSyxzQkFBc0IsY0FDN0I7QUFDQTtBQUFBLElBQ0Y7QUFFTSxVQUFBLGdCQUFnQixLQUFLLHNCQUFzQjtBQUUvQyxRQUFBLEtBQUssTUFBTSxnQkFBZ0IsS0FBSyxzQkFBc0IsWUFBWSxLQUNsRSxLQUFLLHNCQUFzQixjQUMzQjtBQUNBO0FBQUEsSUFDRjtBQUVBLFFBQUksZ0JBQWdCLEtBQUssS0FBSyxjQUFjLGVBQWU7QUFFekQsV0FBSyw0QkFBNEIsSUFBSTtBQUFBLElBQUEsT0FDaEM7QUFFTCxXQUFLLDRCQUE0QixLQUFLO0FBQUEsSUFDeEM7QUFFSyxTQUFBLGNBQWMsaUJBQWlCLElBQUksSUFBSTtBQUFBLEVBQzlDO0FBQUEsRUErQlEseUJBQStCOztBQUNyQyxTQUFLLHNCQUFxQixVQUFLLHdCQUFMLG1CQUEwQixXQUFZLGtCQUFtQjtBQUNuRixTQUFLLE1BQU0sWUFBWSw4QkFBOEIsR0FBRyxLQUFLLGtCQUFrQixJQUFJO0FBQUEsRUFDckY7QUFBQSxFQUVRLG1CQUF5Qjs7QUFDL0IsU0FBSyx1QkFBdUI7QUFFdkIsU0FBQSxhQUFhLEtBQUssMEJBQ25CLFVBQUssMEJBQUwsbUJBQTRCLGtCQUFlLFVBQUssMEJBQUwsbUJBQTRCLGdCQUN2RTtBQUNKLFNBQUssMkJBQTJCO0FBQUEsRUFDbEM7QUFBQSxFQUVRLDRCQUE0QixPQUFzQjs7QUFDbEQsVUFBQSxpQkFBZSxVQUFLLHdCQUFMLG1CQUEwQixpQkFBZ0I7QUFDekQsVUFBQSxhQUNKLE9BQU8saUJBQWlCLFlBQ3BCLGVBQ0EsYUFBYSxRQUFRLGNBQWMsRUFBRSxzQkFBc0IsS0FBTSxDQUFBO0FBQ3ZFLFNBQUssZ0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsUUFBUSxLQUFLO0FBQ3BFLFFBQUksS0FBSyxxQkFBcUI7QUFDNUIsV0FBSyxvQkFBb0IsZ0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsUUFBUSxLQUFLO0FBQUEsSUFDMUY7QUFBQSxFQUNGO0FBQUEsRUFFUSw2QkFBbUM7O0FBQ3BDLFNBQUEsZ0JBQWdCLGtCQUFrQixLQUFLLFVBQVU7QUFDdEQsZUFBSyx3QkFBTCxtQkFBMEIsZ0JBQWdCLGtCQUFrQixLQUFLO0FBQ2pFLGVBQUssMEJBQUwsbUJBQTRCLGdCQUFnQixrQkFBa0IsS0FBSztBQUFBLEVBQ3JFO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQSwwQkFHZSxDQUFDLFVBQTBCLEtBQUssc0JBQXNCLEtBQUssQ0FBQztBQUFBO0FBQUEsZUFFdkUsS0FBSyxTQUFTO0FBQUE7QUFBQTtBQUFBLHFCQUdSLENBQUMsVUFBaUIsS0FBSyw0QkFBNEIsS0FBSyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUzVFO0FBQ0Y7QUFoUmEsaUJBQ1ksU0FBeUI7QUFHRyxnQkFBQTtBQUFBLEVBQWxELFNBQVMsRUFBRSxXQUFXLG1CQUFtQjtBQUFBLEdBSi9CLGlCQUl3QyxXQUFBLGtCQUFBLENBQUE7QUFKeEMsbUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsWUFBWTtBQUFBLEdBQ2QsZ0JBQUE7In0=
432
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy9kaWFsb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBpc0JyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBvdmVybGF5UmVmcywgU2JiT3ZlcmxheUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IH0gZnJvbSAnLi4vZGlhbG9nLWFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dUaXRsZUVsZW1lbnQgfSBmcm9tICcuLi9kaWFsb2ctdGl0bGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2cuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1kaWFsb2ctdGl0bGVgLCBgc2JiLWRpYWxvZy1jb250ZW50YCBhbmQgYW4gb3B0aW9uYWwgYHNiYi1kaWFsb2ctYWN0aW9uc2AuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2Agc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWRpYWxvZ2AgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kaWFsb2dgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1kaWFsb2ctei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZycpXG5leHBvcnQgY2xhc3MgU2JiRGlhbG9nRWxlbWVudCBleHRlbmRzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBCYWNrZHJvcCBjbGljayBhY3Rpb24uICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2JhY2tkcm9wLWFjdGlvbicgfSkgcHVibGljIGJhY2tkcm9wQWN0aW9uOiAnY2xvc2UnIHwgJ25vbmUnID0gJ2Nsb3NlJztcblxuICAvLyBXZSB1c2UgYSB0aW1lb3V0IGFzIGEgd29ya2Fyb3VuZCB0byB0aGUgXCJSZXNpemVPYnNlcnZlciBsb29wIGNvbXBsZXRlZCB3aXRoIHVuZGVsaXZlcmVkIG5vdGlmaWNhdGlvbnNcIiBlcnJvci5cbiAgLy8gRm9yIG1vcmUgZGV0YWlsczpcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzM4I2lzc3VlY29tbWVudC00MjIxMjYwMDZcbiAgLy8gLSBodHRwczovL2dpdGh1Yi5jb20vanVnZ2xlL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMTAzI2lzc3VlY29tbWVudC0xNzExMTQ4Mjg1XG4gIHByaXZhdGUgX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fb25Db250ZW50UmVzaXplKCkpLFxuICB9KTtcblxuICBwcml2YXRlIF9kaWFsb2dUaXRsZUVsZW1lbnQ6IFNiYkRpYWxvZ1RpdGxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9kaWFsb2dUaXRsZUhlaWdodD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGlhbG9nQ29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RpYWxvZ0FjdGlvbnNFbGVtZW50OiBTYmJEaWFsb2dBY3Rpb25zRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbkRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9vdmVyZmxvd3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFzdFNjcm9sbCA9IDA7XG4gIHByaXZhdGUgX2RpYWxvZ0lkID0gYHNiYi1kaWFsb2ctJHtuZXh0SWQrK31gO1xuICBwcm90ZWN0ZWQgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZyA9ICdzYmItZGlhbG9nLWNsb3NlJztcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIEluaXRpYWxpemUgZGlhbG9nIGVsZW1lbnRzXG4gICAgdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLXRpdGxlJyk7XG4gICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctY29udGVudCcpPy5zaGFkb3dSb290IVxuICAgICAgLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLWFjdGlvbnMnKTtcblxuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuXG4gICAgaWYgKCF0aGlzLndpbGxPcGVuLmVtaXQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgLy8gQWRkIHRoaXMgZGlhbG9nIHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIG92ZXJsYXlSZWZzLnB1c2godGhpcyBhcyBTYmJEaWFsb2dFbGVtZW50KTtcbiAgICB0aGlzLl9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nXG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmRpc2FibGVTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5vdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljaywge1xuICAgICAgc2lnbmFsOiB0aGlzLm92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgLy8gU3luY2hyb25pemUgdGhlIG5lZ2F0aXZlIHN0YXRlIGJlZm9yZSB0aGUgZmlyc3Qgb3BlbmluZyB0byBhdm9pZCBhIHBvc3NpYmxlIGNvbG9yIGZsYXNoIGlmIGl0IGlzIG5lZ2F0aXZlLlxuICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpITtcbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTogdm9pZCB7XG4gICAgc3VwZXIuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcblxuICAgIC8vIElmIHRoZSBjb250ZW50IG92ZXJmbG93cywgc2hvdy9oaWRlIHRoZSBkaWFsb2cgaGVhZGVyIG9uIHNjcm9sbC5cbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fb25Db250ZW50U2Nyb2xsKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpLCB7XG4gICAgICBzaWduYWw6IHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFdhaXQgZm9yIGRpYWxvZyB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlLlxuICAvLyBJbiByYXJlIGNhc2VzLCBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcm90ZWN0ZWQgb25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLmRpZE9wZW4uZW1pdCgpO1xuICAgICAgdGhpcy5pbmVydENvbnRyb2xsZXIuYWN0aXZhdGUoKTtcbiAgICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICAgIHRoaXMuc2V0T3ZlcmxheUZvY3VzKCk7XG4gICAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgICAgICB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LmlubmVyVGV4dC50cmltKCksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIudHJhcCh0aGlzKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zZXRIaWRlSGVhZGVyRGF0YUF0dHJpYnV0ZShmYWxzZSk7XG4gICAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgaWYgKHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBkaWFsb2cgaWYgbm8gZGlhbG9nIGlzIG9wZW5cbiAgICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCh7XG4gICAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJvdGVjdGVkIHNldE92ZXJsYXlGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmlsdGVyKChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KSxcbiAgICApO1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50KSB7XG4gICAgICB0aGlzLl9kaWFsb2dBY3Rpb25zRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc1Zpc2libGVIZWFkZXIgPSB0aGlzLmRhdGFzZXQuaGlkZUhlYWRlciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gQ2hlY2sgd2hldGhlciBoaWRpbmcgdGhlIGhlYWRlciB3b3VsZCBtYWtlIHRoZSBzY3JvbGxiYXIgZGlzYXBwZWFyXG4gICAgLy8gYW5kIHByZXZlbnQgdGhlIGhpZGluZyBhbmltYXRpb24gaWYgc28uXG4gICAgaWYgKFxuICAgICAgaGFzVmlzaWJsZUhlYWRlciAmJlxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgdGhpcy5fZGlhbG9nVGl0bGVIZWlnaHQhID49XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKFxuICAgICAgTWF0aC5yb3VuZChjdXJyZW50U2Nyb2xsICsgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSA+PVxuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENoZWNrIHdoZXRoZXIgaXMgc2Nyb2xsaW5nIGRvd24gb3IgdXAuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiAwICYmIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsKSB7XG4gICAgICAvLyBTY3JvbGxpbmcgZG93blxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNjcm9sbGluZyB1cFxuICAgICAgdGhpcy5fc2V0SGlkZUhlYWRlckRhdGFBdHRyaWJ1dGUoZmFsc2UpO1xuICAgIH1cbiAgICAvLyBgY3VycmVudFNjcm9sbGAgY2FuIGJlIG5lZ2F0aXZlLCBlLmcuIG9uIG1vYmlsZTsgdGhpcyBpcyBub3QgYWxsb3dlZC5cbiAgICB0aGlzLl9sYXN0U2Nyb2xsID0gY3VycmVudFNjcm9sbCA8PSAwID8gMCA6IGN1cnJlbnRTY3JvbGw7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgZGlhbG9nLlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudClcbiAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpO1xuICB9O1xuXG4gIC8vIENsb3NlIGRpYWxvZyBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wQWN0aW9uICE9PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nICYmXG4gICAgICAhZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5zb21lKCh0YXJnZXQpID0+IHRhcmdldC5pZCA9PT0gdGhpcy5fZGlhbG9nSWQpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3NldERpYWxvZ0hlYWRlckhlaWdodCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUhlaWdodCA9IHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudD8uc2hhZG93Um9vdCEuZmlyc3RFbGVtZW50Q2hpbGQhLmNsaWVudEhlaWdodDtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1kaWFsb2ctaGVhZGVyLWhlaWdodCcsIGAke3RoaXMuX2RpYWxvZ1RpdGxlSGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNvbnRlbnRSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RGlhbG9nSGVhZGVySGVpZ2h0KCk7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgY29udGVudCBvdmVyZmxvd3MgYW5kIHNldCB0aGUgYG92ZXJmbG93c2AgYXR0cmlidXRlLlxuICAgIHRoaXMuX292ZXJmbG93cyA9IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50XG4gICAgICA/IHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50Py5zY3JvbGxIZWlnaHQgPiB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uY2xpZW50SGVpZ2h0XG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuX3NldE92ZXJmbG93c0RhdGFBdHRyaWJ1dGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEhpZGVIZWFkZXJEYXRhQXR0cmlidXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgaGlkZU9uU2Nyb2xsID0gdGhpcy5fZGlhbG9nVGl0bGVFbGVtZW50Py5oaWRlT25TY3JvbGwgPz8gZmFsc2U7XG4gICAgY29uc3QgaGlkZUhlYWRlciA9XG4gICAgICB0eXBlb2YgaGlkZU9uU2Nyb2xsID09PSAnYm9vbGVhbidcbiAgICAgICAgPyBoaWRlT25TY3JvbGxcbiAgICAgICAgOiBpc0JyZWFrcG9pbnQoJ3plcm8nLCBoaWRlT25TY3JvbGwsIHsgaW5jbHVkZU1heEJyZWFrcG9pbnQ6IHRydWUgfSk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGlkZS1oZWFkZXInLCAhaGlkZUhlYWRlciA/IGZhbHNlIDogdmFsdWUpO1xuICAgIGlmICh0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1RpdGxlRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaGlkZS1oZWFkZXInLCAhaGlkZUhlYWRlciA/IGZhbHNlIDogdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE92ZXJmbG93c0RhdGFBdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtb3ZlcmZsb3dzJywgdGhpcy5fb3ZlcmZsb3dzKTtcbiAgICB0aGlzLl9kaWFsb2dUaXRsZUVsZW1lbnQ/LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1vdmVyZmxvd3MnLCB0aGlzLl9vdmVyZmxvd3MpO1xuICAgIHRoaXMuX2RpYWxvZ0FjdGlvbnNFbGVtZW50Py50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtb3ZlcmZsb3dzJywgdGhpcy5fb3ZlcmZsb3dzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1kaWFsb2dfX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0keyhldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHRoaXMub25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dcIlxuICAgICAgICAgIGlkPSR7dGhpcy5fZGlhbG9nSWR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLmNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGlhbG9nJzogU2JiRGlhbG9nRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUksU0FBUztBQWVBLElBQUEsbUJBQU4sY0FBK0Isc0JBQXNCO0FBQUEsRUFBckQsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBSXVDLFNBQU8saUJBQW1DO0FBTTlFLFNBQUEsK0JBQStCLElBQUksaUJBQWlCLE1BQU07QUFBQSxNQUNoRSxRQUFRO0FBQUEsTUFDUixhQUFhO0FBQUEsTUFDYixVQUFVLE1BQU0sV0FBVyxNQUFNLEtBQUssa0JBQWtCO0FBQUEsSUFBQSxDQUN6RDtBQUVELFNBQVEsc0JBQW9EO0FBRTVELFNBQVEsd0JBQTRDO0FBQ3BELFNBQVEsd0JBQXdEO0FBQ2hFLFNBQVEsOEJBQXVDO0FBQy9DLFNBQVEsYUFBc0I7QUFDOUIsU0FBUSxjQUFjO0FBQ2QsU0FBQSxZQUFZLGNBQWMsUUFBUTtBQUMxQyxTQUFVLGlCQUF5QjtBQXdLM0IsU0FBQSx1QkFBdUIsQ0FBQyxVQUE4QjtBQUN4RCxVQUFBLEtBQUssbUJBQW1CLFNBQVM7QUFDbkM7QUFBQSxNQUNGO0FBRUEsV0FBSyw4QkFBOEIsTUFDaEMsYUFDQSxFQUFB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
@@ -1,6 +1,6 @@
1
1
  import { CSSResultGroup, TemplateResult } from 'lit';
2
2
  import { SbbButtonBaseElement } from '../../core/base-elements.js';
3
- declare const SbbExpansionPanelHeaderElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & typeof SbbButtonBaseElement;
3
+ declare const SbbExpansionPanelHeaderElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType & import('../../core/mixins.js').SbbDisabledInteractiveMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & typeof SbbButtonBaseElement;
4
4
  /**
5
5
  * It acts as a native `summary` tag for the `sbb-expansion-panel` component.
6
6
  *
@@ -4,7 +4,7 @@ import { SbbButtonBaseElement } from "../core/base-elements.js";
4
4
  import { SbbConnectedAbortController, SbbSlotStateController } from "../core/controllers.js";
5
5
  import { hostAttributes } from "../core/decorators.js";
6
6
  import { EventEmitter } from "../core/eventing.js";
7
- import { SbbFocusableDisabledActionMixin } from "../core/mixins.js";
7
+ import { SbbDisabledTabIndexActionMixin } from "../core/mixins.js";
8
8
  import { SbbIconNameMixin } from "../icon.js";
9
9
  const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
10
10
  /*
@@ -113,7 +113,7 @@ var __decorateClass = (decorators, target, key, kind) => {
113
113
  if (kind && result) __defProp(target, key, result);
114
114
  return result;
115
115
  };
116
- let SbbExpansionPanelHeaderElement = class extends SbbFocusableDisabledActionMixin(
116
+ let SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixin(
117
117
  SbbIconNameMixin(SbbButtonBaseElement)
118
118
  ) {
119
119
  constructor() {
@@ -184,4 +184,4 @@ SbbExpansionPanelHeaderElement = __decorateClass([
184
184
  export {
185
185
  SbbExpansionPanelHeaderElement
186
186
  };
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgU2JiRm9jdXNhYmxlRGlzYWJsZWRBY3Rpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB0b2dnbGVFeHBhbmRlZCAtIE5vdGlmaWVzIHRoYXQgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBoYXMgdG8gZXhwYW5kLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ2hlYWRlcicsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudCBleHRlbmRzIFNiYkZvY3VzYWJsZURpc2FibGVkQWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB0b2dnbGVFeHBhbmRlZDogJ3RvZ2dsZUV4cGFuZGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGhhcyB0byBleHBhbmQuICovXG4gIHByaXZhdGUgX3RvZ2dsZUV4cGFuZGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50LmV2ZW50cy50b2dnbGVFeHBhbmRlZCxcbiAgICB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgIH0sXG4gICk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfbmFtZWRTbG90cyA9IG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuX3NldERhdGFJY29uQXR0cmlidXRlKCkpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5fZW1pdEV4cGFuZGVkRXZlbnQoKSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KHRydWUpLCB7IHNpZ25hbCB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLl9vbk1vdXNlTW92ZW1lbnQoZmFsc2UpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRFeHBhbmRlZEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fdG9nZ2xlRXhwYW5kZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTW91c2VNb3ZlbWVudCh0b2dnbGVEYXRhQXR0cmlidXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1leHBhbnNpb24tcGFuZWwnKSE7XG4gICAgLy8gVGhlIGBzYmIuaG92ZXItbXFgIGxvZ2ljIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBzY3NzLCBidXQgaXQgbXVzdCBiZSByZXBsaWNhdGVkIHRvIGhhdmUgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb24gbW9iaWxlLlxuICAgIGlmICghdG9nZ2xlRGF0YUF0dHJpYnV0ZSB8fCAocGFyZW50ICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcoYW55LWhvdmVyOiBob3ZlciknKS5tYXRjaGVzKSkge1xuICAgICAgcGFyZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS10b2dnbGUtaG92ZXInLCB0b2dnbGVEYXRhQXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlICdkYXRhLWljb24nIGlzIHVzZWQgYnkgdGhlICdzYmItZXhwYW5zaW9uLXBhbmVsJy5cbiAgICogSXQgbmVlZHMgdG8gYmUgc2V0IGJlZm9yZSB0aGUgQHNsb3RjaGFuZ2UgZXZlbnQgYnViYmxlcyB0byB0aGUgJ2V4cGFuc2lvbi1wYW5lbCdcbiAgICogYnV0IGFmdGVyIHRoZSAnTmFtZWRTbG90U3RhdGVDb250cm9sbGVyJyBoYXMgcnVuLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0RGF0YUljb25BdHRyaWJ1dGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtaWNvbicsICEhKHRoaXMuaWNvbk5hbWUgfHwgdGhpcy5fbmFtZWRTbG90cy5zbG90cy5oYXMoJ2ljb24nKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICB0aGlzLl9zZXREYXRhSWNvbkF0dHJpYnV0ZSgpO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICAkeyF0aGlzLmRpc2FibGVkXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGVcIj5cbiAgICAgICAgICAgIDxzYmItaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLW1lZGl1bVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZS1pY29uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc2JiLWljb24+XG4gICAgICAgICAgPC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyJzogU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCTyxJQUFNLGlDQUFOLGNBQTZDO0FBQUEsRUFDbEQsaUJBQWlCLG9CQUFvQjtBQUN2QyxFQUFFO0FBQUEsRUFGSyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFTTCxTQUFRLGtCQUFnQyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLCtCQUErQixPQUFPO0FBQUEsTUFDdEM7QUFBQSxRQUNFLFNBQVM7QUFBQSxNQUNYO0FBQUEsSUFBQTtBQUVNLFNBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQ3JELFNBQVEsY0FBYyxJQUFJLHVCQUF1QixNQUFNLE1BQU0sS0FBSyx1QkFBdUI7QUFBQSxFQUFBO0FBQUEsRUFFekUsb0JBQTBCO0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ2xCLFVBQUEsU0FBUyxLQUFLLE9BQU87QUFDdEIsU0FBQSxpQkFBaUIsU0FBUyxNQUFNLEtBQUssc0JBQXNCLEVBQUUsUUFBUTtBQUNyRSxTQUFBLGlCQUFpQixjQUFjLE1BQU0sS0FBSyxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsT0FBQSxDQUFRO0FBQzVFLFNBQUEsaUJBQWlCLGNBQWMsTUFBTSxLQUFLLGlCQUFpQixLQUFLLEdBQUcsRUFBRSxPQUFBLENBQVE7QUFBQSxFQUNwRjtBQUFBLEVBRVEscUJBQTJCO0FBQzdCLFFBQUEsQ0FBQyxLQUFLLFVBQVU7QUFDbEIsV0FBSyxnQkFBZ0I7SUFDdkI7QUFBQSxFQUNGO0FBQUEsRUFFUSxpQkFBaUIscUJBQW9DO0FBQ3JELFVBQUEsU0FBbUMsS0FBSyxRQUFRLHFCQUFxQjtBQUUzRSxRQUFJLENBQUMsdUJBQXdCLFVBQVUsT0FBTyxXQUFXLG9CQUFvQixFQUFFLFNBQVU7QUFDaEYsYUFBQSxnQkFBZ0IscUJBQXFCLG1CQUFtQjtBQUFBLElBQ2pFO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9RLHdCQUE4QjtBQUMvQixTQUFBLGdCQUFnQixhQUFhLENBQUMsRUFBRSxLQUFLLFlBQVksS0FBSyxZQUFZLE1BQU0sSUFBSSxNQUFNLEVBQUU7QUFBQSxFQUMzRjtBQUFBLEVBRW1CLGlCQUFpQztBQUNsRCxTQUFLLHNCQUFzQjtBQUNwQixXQUFBO0FBQUE7QUFBQSwwREFFK0MsS0FBSyxnQkFBZ0I7QUFBQTtBQUFBO0FBQUEsUUFHdkUsQ0FBQyxLQUFLLFdBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBT0EsT0FBTztBQUFBO0FBQUEsRUFFZjtBQUNGO0FBcEVhLCtCQUdZLFNBQXlCO0FBSHJDLCtCQUlZLFNBQVM7QUFBQSxFQUM5QixnQkFBZ0I7QUFDbEI7QUFOVyxpQ0FBTixnQkFBQTtBQUFBLEVBSk4sY0FBYyw0QkFBNEI7QUFBQSxFQUMxQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQO0FBQUEsR0FDWSw4QkFBQTsifQ==
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgYWN0cyBhcyBhIG5hdGl2ZSBgc3VtbWFyeWAgdGFnIGZvciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgaWNvbi5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHRvZ2dsZUV4cGFuZGVkIC0gTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGhhcyB0byBleHBhbmQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICBzbG90OiAnaGVhZGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdG9nZ2xlRXhwYW5kZWQ6ICd0b2dnbGVFeHBhbmRlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIE5vdGlmaWVzIHRoYXQgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBoYXMgdG8gZXhwYW5kLiAqL1xuICBwcml2YXRlIF90b2dnbGVFeHBhbmRlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudC5ldmVudHMudG9nZ2xlRXhwYW5kZWQsXG4gICAge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICB9LFxuICApO1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX25hbWVkU2xvdHMgPSBuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLl9zZXREYXRhSWNvbkF0dHJpYnV0ZSgpKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLl9hYm9ydC5zaWduYWw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudCh0cnVlKSwgeyBzaWduYWwgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KGZhbHNlKSwgeyBzaWduYWwgfSk7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZUV4cGFuZGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbk1vdXNlTW92ZW1lbnQodG9nZ2xlRGF0YUF0dHJpYnV0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudDogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50ID0gdGhpcy5jbG9zZXN0KCdzYmItZXhwYW5zaW9uLXBhbmVsJykhO1xuICAgIC8vIFRoZSBgc2JiLmhvdmVyLW1xYCBsb2dpYyBoYXMgYmVlbiByZW1vdmVkIGZyb20gc2NzcywgYnV0IGl0IG11c3QgYmUgcmVwbGljYXRlZCB0byBoYXZlIHRoZSBjb3JyZWN0IGJlaGF2aW9yIG9uIG1vYmlsZS5cbiAgICBpZiAoIXRvZ2dsZURhdGFBdHRyaWJ1dGUgfHwgKHBhcmVudCAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKGFueS1ob3ZlcjogaG92ZXIpJykubWF0Y2hlcykpIHtcbiAgICAgIHBhcmVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtdG9nZ2xlLWhvdmVyJywgdG9nZ2xlRGF0YUF0dHJpYnV0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSAnZGF0YS1pY29uJyBpcyB1c2VkIGJ5IHRoZSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcuXG4gICAqIEl0IG5lZWRzIHRvIGJlIHNldCBiZWZvcmUgdGhlIEBzbG90Y2hhbmdlIGV2ZW50IGJ1YmJsZXMgdG8gdGhlICdleHBhbnNpb24tcGFuZWwnXG4gICAqIGJ1dCBhZnRlciB0aGUgJ05hbWVkU2xvdFN0YXRlQ29udHJvbGxlcicgaGFzIHJ1bi5cbiAgICovXG4gIHByaXZhdGUgX3NldERhdGFJY29uQXR0cmlidXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWljb24nLCAhISh0aGlzLmljb25OYW1lIHx8IHRoaXMuX25hbWVkU2xvdHMuc2xvdHMuaGFzKCdpY29uJykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhpcy5fc2V0RGF0YUljb25BdHRyaWJ1dGUoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgICAgJHshdGhpcy5kaXNhYmxlZFxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlXCI+XG4gICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtZG93bi1tZWRpdW1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic6IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3Qk8sSUFBTSxpQ0FBTixjQUE2QztBQUFBLEVBQ2xELGlCQUFpQixvQkFBb0I7QUFDdkMsRUFBRTtBQUFBLEVBRkssY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBU0wsU0FBUSxrQkFBZ0MsSUFBSTtBQUFBLE1BQzFDO0FBQUEsTUFDQSwrQkFBK0IsT0FBTztBQUFBLE1BQ3RDO0FBQUEsUUFDRSxTQUFTO0FBQUEsTUFDWDtBQUFBLElBQUE7QUFFTSxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUNyRCxTQUFRLGNBQWMsSUFBSSx1QkFBdUIsTUFBTSxNQUFNLEtBQUssdUJBQXVCO0FBQUEsRUFBQTtBQUFBLEVBRXpFLG9CQUEwQjtBQUN4QyxVQUFNLGtCQUFrQjtBQUNsQixVQUFBLFNBQVMsS0FBSyxPQUFPO0FBQ3RCLFNBQUEsaUJBQWlCLFNBQVMsTUFBTSxLQUFLLHNCQUFzQixFQUFFLFFBQVE7QUFDckUsU0FBQSxpQkFBaUIsY0FBYyxNQUFNLEtBQUssaUJBQWlCLElBQUksR0FBRyxFQUFFLE9BQUEsQ0FBUTtBQUM1RSxTQUFBLGlCQUFpQixjQUFjLE1BQU0sS0FBSyxpQkFBaUIsS0FBSyxHQUFHLEVBQUUsT0FBQSxDQUFRO0FBQUEsRUFDcEY7QUFBQSxFQUVRLHFCQUEyQjtBQUM3QixRQUFBLENBQUMsS0FBSyxVQUFVO0FBQ2xCLFdBQUssZ0JBQWdCO0lBQ3ZCO0FBQUEsRUFDRjtBQUFBLEVBRVEsaUJBQWlCLHFCQUFvQztBQUNyRCxVQUFBLFNBQW1DLEtBQUssUUFBUSxxQkFBcUI7QUFFM0UsUUFBSSxDQUFDLHVCQUF3QixVQUFVLE9BQU8sV0FBVyxvQkFBb0IsRUFBRSxTQUFVO0FBQ2hGLGFBQUEsZ0JBQWdCLHFCQUFxQixtQkFBbUI7QUFBQSxJQUNqRTtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPUSx3QkFBOEI7QUFDL0IsU0FBQSxnQkFBZ0IsYUFBYSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssWUFBWSxNQUFNLElBQUksTUFBTSxFQUFFO0FBQUEsRUFDM0Y7QUFBQSxFQUVtQixpQkFBaUM7QUFDbEQsU0FBSyxzQkFBc0I7QUFDcEIsV0FBQTtBQUFBO0FBQUEsMERBRStDLEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBLFFBR3ZFLENBQUMsS0FBSyxXQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQU9BLE9BQU87QUFBQTtBQUFBLEVBRWY7QUFDRjtBQXBFYSwrQkFHWSxTQUF5QjtBQUhyQywrQkFJWSxTQUFTO0FBQUEsRUFDOUIsZ0JBQWdCO0FBQ2xCO0FBTlcsaUNBQU4sZ0JBQUE7QUFBQSxFQUpOLGNBQWMsNEJBQTRCO0FBQUEsRUFDMUMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUDtBQUFBLEdBQ1ksOEJBQUE7In0=
@@ -1,4 +1,4 @@
1
- import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
1
+ import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
2
2
  /**
3
3
  * Combined with a `sbb-flip-card`, it displays its content when the card is flipped.
4
4
  *
@@ -6,11 +6,8 @@ import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit'
6
6
  */
7
7
  export declare class SbbFlipCardDetailsElement extends LitElement {
8
8
  static styles: CSSResultGroup;
9
- private _flipCardMutationObserver;
9
+ constructor();
10
10
  private _checkForSlottedActions;
11
- connectedCallback(): void;
12
- protected firstUpdated(changedProperties: PropertyValues): void;
13
- disconnectedCallback(): void;
14
11
  protected render(): TemplateResult;
15
12
  }
16
13
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"flip-card-details.d.ts","sourceRoot":"","sources":["../../../../../src/elements/flip-card/flip-card-details/flip-card-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AASvC;;;;GAIG;AACH,qBAIa,yBAA0B,SAAQ,UAAU;IACvD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,yBAAyB,CAE/B;IAEF,OAAO,CAAC,uBAAuB;IAQf,iBAAiB,IAAI,IAAI;cAStB,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAKxD,oBAAoB,IAAI,IAAI;cAKzB,MAAM,IAAI,cAAc;CAS5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,yBAAyB,CAAC;KACpD;CACF"}
1
+ {"version":3,"file":"flip-card-details.d.ts","sourceRoot":"","sources":["../../../../../src/elements/flip-card/flip-card-details/flip-card-details.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAQvC;;;;GAIG;AACH,qBAIa,yBAA0B,SAAQ,UAAU;IACvD,OAAuB,MAAM,EAAE,cAAc,CAAS;;IActD,OAAO,CAAC,uBAAuB;cAQZ,MAAM,IAAI,cAAc;CAS5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,yBAAyB,CAAC;KACpD;CACF"}
@@ -1,8 +1,8 @@
1
+ import { MutationController } from "@lit-labs/observers/mutation-controller.js";
1
2
  import { css, LitElement, html } from "lit";
2
3
  import { customElement } from "lit/decorators.js";
3
4
  import { IS_FOCUSABLE_QUERY } from "../core/a11y.js";
4
5
  import { hostAttributes } from "../core/decorators.js";
5
- import { AgnosticMutationObserver } from "../core/observers.js";
6
6
  const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
7
7
  /*
8
8
  * SBB table mixin
@@ -62,32 +62,20 @@ var __decorateClass = (decorators, target, key, kind) => {
62
62
  };
63
63
  let SbbFlipCardDetailsElement = class extends LitElement {
64
64
  constructor() {
65
- super(...arguments);
66
- this._flipCardMutationObserver = new AgnosticMutationObserver(
67
- () => this._checkForSlottedActions()
68
- );
65
+ super();
66
+ new MutationController(this, {
67
+ config: {
68
+ childList: true,
69
+ subtree: true
70
+ },
71
+ callback: () => this._checkForSlottedActions()
72
+ });
69
73
  }
70
74
  _checkForSlottedActions() {
71
75
  var _a;
72
76
  const cardFocusableAttributeName = "data-card-focusable";
73
77
  Array.from(((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, IS_FOCUSABLE_QUERY)) ?? []).filter((el) => !el.hasAttribute(cardFocusableAttributeName)).forEach((el) => el.setAttribute(cardFocusableAttributeName, ""));
74
78
  }
75
- connectedCallback() {
76
- super.connectedCallback();
77
- this._checkForSlottedActions();
78
- this._flipCardMutationObserver.observe(this, {
79
- childList: true,
80
- subtree: true
81
- });
82
- }
83
- firstUpdated(changedProperties) {
84
- super.firstUpdated(changedProperties);
85
- this._checkForSlottedActions();
86
- }
87
- disconnectedCallback() {
88
- super.disconnectedCallback();
89
- this._flipCardMutationObserver.disconnect();
90
- }
91
79
  render() {
92
80
  return html`
93
81
  <div class="sbb-flip-card-details--wrapper">
@@ -108,4 +96,4 @@ SbbFlipCardDetailsElement = __decorateClass([
108
96
  export {
109
97
  SbbFlipCardDetailsElement
110
98
  };
111
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLWRldGFpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLWRldGFpbHMvZmxpcC1jYXJkLWRldGFpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgSVNfRk9DVVNBQkxFX1FVRVJZIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlciB9IGZyb20gJy4uLy4uL2NvcmUvb2JzZXJ2ZXJzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLWRldGFpbHMuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1mbGlwLWNhcmRgLCBpdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aGVuIHRoZSBjYXJkIGlzIGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGFueSBraW5kIG9mIGNvbnRlbnQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLWRldGFpbHMnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ2RldGFpbHMnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHByaXZhdGUgX2ZsaXBDYXJkTXV0YXRpb25PYnNlcnZlciA9IG5ldyBBZ25vc3RpY011dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICB0aGlzLl9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCksXG4gICk7XG5cbiAgcHJpdmF0ZSBfY2hlY2tGb3JTbG90dGVkQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkRm9jdXNhYmxlQXR0cmlidXRlTmFtZSA9ICdkYXRhLWNhcmQtZm9jdXNhYmxlJztcblxuICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oSVNfRk9DVVNBQkxFX1FVRVJZKSA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKGVsKSA9PiAhZWwuaGFzQXR0cmlidXRlKGNhcmRGb2N1c2FibGVBdHRyaWJ1dGVOYW1lKSlcbiAgICAgIC5mb3JFYWNoKChlbDogRWxlbWVudCkgPT4gZWwuc2V0QXR0cmlidXRlKGNhcmRGb2N1c2FibGVBdHRyaWJ1dGVOYW1lLCAnJykpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fY2hlY2tGb3JTbG90dGVkQWN0aW9ucygpO1xuICAgIHRoaXMuX2ZsaXBDYXJkTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY2hlY2tGb3JTbG90dGVkQWN0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fZmxpcENhcmRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtZGV0YWlscy0td3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZsaXAtY2FyZC1kZXRhaWxzXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1mbGlwLWNhcmQtZGV0YWlscyc6IFNiYkZsaXBDYXJkRGV0YWlsc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CYSxJQUFBLDRCQUFOLGNBQXdDLFdBQVc7QUFBQSxFQUFuRCxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFHTCxTQUFRLDRCQUE0QixJQUFJO0FBQUEsTUFBeUIsTUFDL0QsS0FBSyx3QkFBd0I7QUFBQSxJQUFBO0FBQUEsRUFDL0I7QUFBQSxFQUVRLDBCQUFnQzs7QUFDdEMsVUFBTSw2QkFBNkI7QUFFN0IsVUFBQSxPQUFLLFVBQUsscUJBQUwsOEJBQXdCLHdCQUF1QixDQUFBLENBQUUsRUFDekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLGFBQWEsMEJBQTBCLENBQUMsRUFDM0QsUUFBUSxDQUFDLE9BQWdCLEdBQUcsYUFBYSw0QkFBNEIsRUFBRSxDQUFDO0FBQUEsRUFDN0U7QUFBQSxFQUVnQixvQkFBMEI7QUFDeEMsVUFBTSxrQkFBa0I7QUFDeEIsU0FBSyx3QkFBd0I7QUFDeEIsU0FBQSwwQkFBMEIsUUFBUSxNQUFNO0FBQUEsTUFDM0MsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQUEsQ0FDVjtBQUFBLEVBQ0g7QUFBQSxFQUVtQixhQUFhLG1CQUF5QztBQUN2RSxVQUFNLGFBQWEsaUJBQWlCO0FBQ3BDLFNBQUssd0JBQXdCO0FBQUEsRUFDL0I7QUFBQSxFQUVnQix1QkFBNkI7QUFDM0MsVUFBTSxxQkFBcUI7QUFDM0IsU0FBSywwQkFBMEI7RUFDakM7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVDtBQUNGO0FBM0NhLDBCQUNZLFNBQXlCO0FBRHJDLDRCQUFOLGdCQUFBO0FBQUEsRUFKTixjQUFjLHVCQUF1QjtBQUFBLEVBQ3JDLGVBQWU7QUFBQSxJQUNkLE1BQU07QUFBQSxFQUFBLENBQ1A7QUFBQSxHQUNZLHlCQUFBOyJ9
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLWRldGFpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLWRldGFpbHMvZmxpcC1jYXJkLWRldGFpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgSVNfRk9DVVNBQkxFX1FVRVJZIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLWRldGFpbHMuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1mbGlwLWNhcmRgLCBpdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aGVuIHRoZSBjYXJkIGlzIGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGFueSBraW5kIG9mIGNvbnRlbnQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLWRldGFpbHMnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ2RldGFpbHMnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGNhcmRGb2N1c2FibGVBdHRyaWJ1dGVOYW1lID0gJ2RhdGEtY2FyZC1mb2N1c2FibGUnO1xuXG4gICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LihJU19GT0NVU0FCTEVfUVVFUlkpID8/IFtdKVxuICAgICAgLmZpbHRlcigoZWwpID0+ICFlbC5oYXNBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUpKVxuICAgICAgLmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiBlbC5zZXRBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUsICcnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmxpcC1jYXJkLWRldGFpbHMtLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtZGV0YWlsc1wiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmxpcC1jYXJkLWRldGFpbHMnOiBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQmEsSUFBQSw0QkFBTixjQUF3QyxXQUFXO0FBQUEsRUFHakQsY0FBYztBQUNiO0FBRU4sUUFBSSxtQkFBbUIsTUFBTTtBQUFBLE1BQzNCLFFBQVE7QUFBQSxRQUNOLFdBQVc7QUFBQSxRQUNYLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVLE1BQU0sS0FBSyx3QkFBd0I7QUFBQSxJQUFBLENBQzlDO0FBQUEsRUFDSDtBQUFBLEVBRVEsMEJBQWdDOztBQUN0QyxVQUFNLDZCQUE2QjtBQUU3QixVQUFBLE9BQUssVUFBSyxxQkFBTCw4QkFBd0Isd0JBQXVCLENBQUEsQ0FBRSxFQUN6RCxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSwwQkFBMEIsQ0FBQyxFQUMzRCxRQUFRLENBQUMsT0FBZ0IsR0FBRyxhQUFhLDRCQUE0QixFQUFFLENBQUM7QUFBQSxFQUM3RTtBQUFBLEVBRW1CLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9UO0FBQ0Y7QUFoQ2EsMEJBQ1ksU0FBeUI7QUFEckMsNEJBQU4sZ0JBQUE7QUFBQSxFQUpOLGNBQWMsdUJBQXVCO0FBQUEsRUFDckMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUDtBQUFBLEdBQ1kseUJBQUE7In0=
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAehD,OAAO,eAAe,CAAC;;AAOvB;;;;;;;;GAQG;AACH,qBAEa,mBAAoB,SAAQ,wBAA+C;IACtF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAmC;IAEjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAItC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAKnD;IAEF,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAQhD;IAEF;;;;OAIG;IAEI,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAU;IAEhD,+CAA+C;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEvD,mCAAmC;IACC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAO;IAEjE,0DAA0D;IACP,UAAU,UAAS;IAEtE;;+EAE2E;IACvC,KAAK,EAAE,SAAS,GAAG,UAAU,CAAa;IAE9E,wFAAwF;IACV,WAAW,UAAS;IAElG,4FAA4F;IACZ,aAAa,UACrF;IAER,qDAAqD;IAC5C,OAAO,CAAC,cAAc,CAAiB;IAEhD,oEAAoE;IACpE,OAAO,CAAC,6BAA6B,CAAC,CAAgB;IAEtD,8CAA8C;IACrC,OAAO,CAAC,MAAM,CAAC,CAAqD;IAE7E,+CAA+C;IACtC,OAAO,CAAC,MAAM,CAAC,CAAmB;IAE3C,iCAAiC;IACjC,IAAW,YAAY,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAExF;IAED,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACH,OAAO,CAAC,2BAA2B,CAMjC;IAEF,OAAO,CAAC,qBAAqB,CAAyB;IAEtC,iBAAiB,IAAI,IAAI;cAStB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5D,oBAAoB,IAAI,IAAI;IAM5C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,yBAAyB;IA4BjC,OAAO,CAAC,sBAAsB;IAuD9B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAiB7B,qFAAqF;IAC9E,KAAK,IAAI,IAAI;IAIpB,4FAA4F;IACrF,KAAK,IAAI,IAAI;IAQpB;;;OAGG;IACI,eAAe,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS;IAIxF,OAAO,CAAC,aAAa;cAMF,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAY,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9F,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAchD,OAAO,eAAe,CAAC;;AAOvB;;;;;;;;GAQG;AACH,qBAEa,mBAAoB,SAAQ,wBAA+C;IACtF,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAmC;IAEjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAItC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAKnD;IAEF,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAQhD;IAEF;;;;OAIG;IAEI,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAU;IAEhD,+CAA+C;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEvD,mCAAmC;IACC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAO;IAEjE,0DAA0D;IACP,UAAU,UAAS;IAEtE;;+EAE2E;IACvC,KAAK,EAAE,SAAS,GAAG,UAAU,CAAa;IAE9E,wFAAwF;IACV,WAAW,UAAS;IAElG,4FAA4F;IACZ,aAAa,UACrF;IAER,qDAAqD;IAC5C,OAAO,CAAC,cAAc,CAAiB;IAEhD,oEAAoE;IACpE,OAAO,CAAC,6BAA6B,CAAC,CAAgB;IAEtD,8CAA8C;IACrC,OAAO,CAAC,MAAM,CAAC,CAAqD;IAE7E,+CAA+C;IACtC,OAAO,CAAC,MAAM,CAAC,CAAmB;IAE3C,iCAAiC;IACjC,IAAW,YAAY,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAExF;IAED,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACH,OAAO,CAAC,2BAA2B,CAM1B;IAET,OAAO,CAAC,qBAAqB,CAAyB;IAEtC,iBAAiB,IAAI,IAAI;cAStB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5D,oBAAoB,IAAI,IAAI;IAM5C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,yBAAyB;IA4BjC,OAAO,CAAC,sBAAsB;IAuD9B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAiB7B,qFAAqF;IAC9E,KAAK,IAAI,IAAI;IAIpB,4FAA4F;IACrF,KAAK,IAAI,IAAI;IAQpB;;;OAGG;IACI,eAAe,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS;IAIxF,OAAO,CAAC,aAAa;cAMF,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}