@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777448509 → 5.0.0-next.1-dev.1777455643

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 (981) hide show
  1. package/a11y.css +1 -3
  2. package/alert/alert-group/alert-group.component.js +1 -1
  3. package/{alert-group.component-BCYOVicl.js → alert-group.component-BDi1x8ZY.js} +25 -21
  4. package/alert.js +1 -1
  5. package/alert.pure.js +1 -1
  6. package/{block-link-common-BiM6tnUZ.js → block-link-common-ykaxTKZw.js} +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/{breadcrumb-group.component-De3Lu3lx.js → breadcrumb-group.component-DtW1ZFNq.js} +5 -1
  9. package/breadcrumb.js +1 -1
  10. package/breadcrumb.pure.js +1 -1
  11. package/button/accent-button/accent-button.component.js +5 -9
  12. package/button/accent-button-link/accent-button-link.component.js +5 -9
  13. package/button/accent-button-static/accent-button-static.component.js +5 -9
  14. package/button/button/button.component.js +5 -9
  15. package/button/button-link/button-link.component.js +5 -9
  16. package/button/button-static/button-static.component.js +5 -9
  17. package/button/common/button-common.js +2 -2
  18. package/button/mini-button-group/mini-button-group.component.js +1 -1
  19. package/button/secondary-button/secondary-button.component.js +5 -9
  20. package/button/secondary-button-link/secondary-button-link.component.js +5 -9
  21. package/button/secondary-button-static/secondary-button-static.component.js +5 -9
  22. package/button/transparent-button/transparent-button.component.js +5 -9
  23. package/button/transparent-button-link/transparent-button-link.component.js +5 -9
  24. package/button/transparent-button-static/transparent-button-static.component.js +5 -9
  25. package/{button-common-U0ZsZMjC.js → button-common-DID0gi9b.js} +85 -75
  26. package/button.js +3 -3
  27. package/button.pure.js +3 -3
  28. package/calendar/calendar/calendar.component.js +1 -1
  29. package/calendar/calendar-day/calendar-day.component.js +1 -1
  30. package/calendar/calendar-month/calendar-month.component.js +10 -14
  31. package/calendar/calendar-weekday/calendar-weekday.component.js +9 -13
  32. package/calendar/calendar-weeknumber/calendar-weeknumber.component.js +11 -14
  33. package/calendar/calendar-year/calendar-year.component.js +9 -13
  34. package/calendar/common/calendar-cell-base-element.js +2 -2
  35. package/calendar-cell-base-element-BpHQ1Ad5.js +23 -0
  36. package/{calendar-day.component-B2eFdrLP.js → calendar-day.component-C6Xth1In.js} +11 -16
  37. package/{calendar.component-nWdtZYqg.js → calendar.component-KQ8dM_Hi.js} +30 -27
  38. package/calendar.js +4 -4
  39. package/calendar.pure.js +4 -4
  40. package/card/common/card-action-common.js +1 -1
  41. package/{card-action-common-DIMD59l_.js → card-action-common-DcyolMVU.js} +22 -17
  42. package/card.js +1 -1
  43. package/card.pure.js +1 -1
  44. package/carousel/carousel/carousel.component.js +1 -1
  45. package/carousel/carousel-item/carousel-item.component.js +1 -1
  46. package/carousel/carousel-list/carousel-list.component.js +1 -1
  47. package/{carousel-item.component-mHyHTxEd.js → carousel-item.component-DyZAdXL_.js} +1 -1
  48. package/{carousel-list.component-ByZDFoLe.js → carousel-list.component-Ai0uJWB7.js} +1 -1
  49. package/{carousel.component-a189Wn9e.js → carousel.component-DzDLKOGv.js} +10 -9
  50. package/carousel.js +3 -3
  51. package/carousel.pure.js +3 -3
  52. package/checkbox/checkbox.component.js +1 -1
  53. package/checkbox/common/checkbox-common.js +2 -2
  54. package/checkbox-common-CbMkoAks.js +76 -0
  55. package/checkbox-panel/checkbox-panel.component.js +15 -19
  56. package/{checkbox.component-CR2aIgjA.js → checkbox.component-DLkmHbNb.js} +24 -28
  57. package/checkbox.js +3 -3
  58. package/checkbox.pure.js +3 -3
  59. package/chip/chip/chip.component.js +1 -1
  60. package/{chip.component-34R1PNPV.js → chip.component-C46iCslu.js} +8 -4
  61. package/chip.js +1 -1
  62. package/chip.pure.js +1 -1
  63. package/{compact-paginator.component-Dyu9bezr.js → compact-paginator.component-CoAxdqWU.js} +12 -12
  64. package/core/mixins/named-slot-list-mixin.js +6 -3
  65. package/core/mixins/panel-mixin.js +2 -2
  66. package/core/overlay/position.js +4 -4
  67. package/core/styles/a11y.scss +2 -7
  68. package/core/styles/screen-reader-only.scss +5 -0
  69. package/core/styles/styles.js +2 -2
  70. package/core.js +10 -11
  71. package/custom-elements.json +3291 -3586
  72. package/date-input/date-input.component.js +1 -1
  73. package/{date-input.component-CP033UHJ.js → date-input.component-gLYzSZBX.js} +1 -1
  74. package/date-input.js +1 -1
  75. package/date-input.pure.js +1 -1
  76. package/datepicker/common/datepicker-button.js +2 -2
  77. package/datepicker/datepicker/datepicker.component.js +154 -2
  78. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +5 -13
  79. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +5 -13
  80. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +12 -20
  81. package/{datepicker-button-ChMURQ0S.js → datepicker-button-BcVi_scv.js} +24 -17
  82. package/datepicker.js +7 -7
  83. package/datepicker.pure.js +6 -6
  84. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  85. package/development/alert/alert-group/alert-group.component.js +1 -1
  86. package/development/alert-group.component-IiZdPTg-.js +190 -0
  87. package/development/alert.js +1 -1
  88. package/development/alert.pure.js +1 -1
  89. package/development/{block-link-common-qMULXu4g.js → block-link-common-0Savn_ta.js} +2 -2
  90. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  91. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  92. package/development/{breadcrumb-group.component-BC1mWiQE.js → breadcrumb-group.component-Djhr0rmt.js} +6 -2
  93. package/development/breadcrumb.js +1 -1
  94. package/development/breadcrumb.pure.js +1 -1
  95. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  96. package/development/button/accent-button/accent-button.component.js +4 -8
  97. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  98. package/development/button/accent-button-link/accent-button-link.component.js +4 -8
  99. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  100. package/development/button/accent-button-static/accent-button-static.component.js +4 -8
  101. package/development/button/button/button.component.d.ts.map +1 -1
  102. package/development/button/button/button.component.js +4 -8
  103. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  104. package/development/button/button-link/button-link.component.js +4 -8
  105. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  106. package/development/button/button-static/button-static.component.js +4 -8
  107. package/development/button/common/button-common.d.ts +0 -1
  108. package/development/button/common/button-common.d.ts.map +1 -1
  109. package/development/button/common/button-common.js +2 -2
  110. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  111. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  112. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  113. package/development/button/secondary-button/secondary-button.component.js +4 -8
  114. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  115. package/development/button/secondary-button-link/secondary-button-link.component.js +4 -8
  116. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  117. package/development/button/secondary-button-static/secondary-button-static.component.js +4 -8
  118. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  119. package/development/button/transparent-button/transparent-button.component.js +4 -8
  120. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  121. package/development/button/transparent-button-link/transparent-button-link.component.js +4 -8
  122. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  123. package/development/button/transparent-button-static/transparent-button-static.component.js +4 -8
  124. package/development/{button-common-BdW88MAX.js → button-common-B96jQwgA.js} +12 -5
  125. package/development/button.js +3 -3
  126. package/development/button.pure.js +3 -3
  127. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  128. package/development/calendar/calendar/calendar.component.js +1 -1
  129. package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -1
  130. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  131. package/development/calendar/calendar-month/calendar-month.component.d.ts +1 -2
  132. package/development/calendar/calendar-month/calendar-month.component.d.ts.map +1 -1
  133. package/development/calendar/calendar-month/calendar-month.component.js +2 -6
  134. package/development/calendar/calendar-weekday/calendar-weekday.component.d.ts +1 -2
  135. package/development/calendar/calendar-weekday/calendar-weekday.component.d.ts.map +1 -1
  136. package/development/calendar/calendar-weekday/calendar-weekday.component.js +2 -6
  137. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.d.ts +1 -2
  138. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.d.ts.map +1 -1
  139. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +3 -6
  140. package/development/calendar/calendar-year/calendar-year.component.d.ts +1 -2
  141. package/development/calendar/calendar-year/calendar-year.component.d.ts.map +1 -1
  142. package/development/calendar/calendar-year/calendar-year.component.js +2 -6
  143. package/development/calendar/common/calendar-cell-base-element.d.ts +2 -1
  144. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  145. package/development/calendar/common/calendar-cell-base-element.js +2 -2
  146. package/development/{calendar-cell-base-element-DDNYX7UQ.js → calendar-cell-base-element-Cgin82gG.js} +8 -4
  147. package/development/calendar-day.component-BpqN28Nh.js +139 -0
  148. package/development/calendar.component-DJuZIHx6.js +1454 -0
  149. package/development/calendar.js +4 -4
  150. package/development/calendar.pure.js +4 -4
  151. package/development/card/common/card-action-common.d.ts.map +1 -1
  152. package/development/card/common/card-action-common.js +1 -1
  153. package/development/card-action-common-BRH3JFlC.js +120 -0
  154. package/development/card.js +1 -1
  155. package/development/card.pure.js +1 -1
  156. package/development/carousel/carousel/carousel.component.d.ts +1 -2
  157. package/development/carousel/carousel/carousel.component.d.ts.map +1 -1
  158. package/development/carousel/carousel/carousel.component.js +1 -1
  159. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
  160. package/development/carousel/carousel-item/carousel-item.component.js +1 -1
  161. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  162. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  163. package/development/{carousel-item.component-MZIypyNR.js → carousel-item.component-B_0wdIAu.js} +2 -2
  164. package/development/carousel-list.component-DpDh5tqB.js +133 -0
  165. package/development/carousel.component-CBuEFmTM.js +143 -0
  166. package/development/carousel.js +3 -3
  167. package/development/carousel.pure.js +3 -3
  168. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  169. package/development/checkbox/checkbox.component.js +1 -1
  170. package/development/checkbox/common/checkbox-common.d.ts +0 -1
  171. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  172. package/development/checkbox/common/checkbox-common.js +2 -2
  173. package/development/checkbox-common-Bg3267ZQ.js +93 -0
  174. package/development/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  175. package/development/checkbox-panel/checkbox-panel.component.js +6 -10
  176. package/development/{checkbox.component-DZjhQhbB.js → checkbox.component-CShWuJ8S.js} +4 -8
  177. package/development/checkbox.js +3 -3
  178. package/development/checkbox.pure.js +3 -3
  179. package/development/chip/chip/chip.component.d.ts.map +1 -1
  180. package/development/chip/chip/chip.component.js +1 -1
  181. package/development/{chip.component-zwTaIBf2.js → chip.component-Dfm6zi-M.js} +9 -5
  182. package/development/chip.js +1 -1
  183. package/development/chip.pure.js +1 -1
  184. package/development/{compact-paginator.component-CRojCci5.js → compact-paginator.component-D4K03FGq.js} +6 -6
  185. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  186. package/development/core/mixins/named-slot-list-mixin.js +7 -4
  187. package/development/core/mixins/panel-mixin.d.ts +0 -1
  188. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  189. package/development/core/mixins/panel-mixin.js +2 -2
  190. package/development/core/overlay/position.d.ts.map +1 -1
  191. package/development/core/overlay/position.js +4 -2
  192. package/development/core/styles/styles.d.ts +1 -0
  193. package/development/core/styles/styles.d.ts.map +1 -1
  194. package/development/core/styles/styles.js +2 -2
  195. package/development/core.d.ts +0 -1
  196. package/development/core.d.ts.map +1 -1
  197. package/development/core.js +3 -4
  198. package/development/date-input/date-input.component.d.ts.map +1 -1
  199. package/development/date-input/date-input.component.js +1 -1
  200. package/development/date-input.component-D8tOBRFO.js +302 -0
  201. package/development/date-input.js +1 -1
  202. package/development/date-input.pure.js +1 -1
  203. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  204. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  205. package/development/datepicker/common/datepicker-button.js +2 -2
  206. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  207. package/development/datepicker/datepicker/datepicker.component.js +208 -1
  208. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +0 -2
  209. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
  210. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +3 -11
  211. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +0 -2
  212. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
  213. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +3 -11
  214. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +1 -2
  215. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
  216. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +3 -11
  217. package/development/datepicker-button-rPkUZTvS.js +175 -0
  218. package/development/datepicker.js +3 -3
  219. package/development/datepicker.pure.js +3 -3
  220. package/development/dialog/dialog/dialog.component.d.ts +1 -2
  221. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  222. package/development/dialog/dialog/dialog.component.js +1 -1
  223. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  224. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  225. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  226. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  227. package/development/{dialog-actions.component-Bu950dM-.js → dialog-actions.component-BlSlGrPX.js} +1 -1
  228. package/development/{dialog-close-button.component-CxtWzXR4.js → dialog-close-button.component-BbTNGFLs.js} +1 -1
  229. package/development/{dialog-content.component-DlSxpY_e.js → dialog-content.component-B7Grxjk6.js} +1 -1
  230. package/development/{dialog-title.component-CnIk_xMF.js → dialog-title.component-6tKpHsR0.js} +1 -1
  231. package/development/{dialog.component-BTXyWi17.js → dialog.component-DjxAwBDc.js} +8 -7
  232. package/development/dialog.js +5 -5
  233. package/development/dialog.pure.js +5 -5
  234. package/development/divider/divider.component.js +1 -1
  235. package/development/{divider.component-BvmLUhzD.js → divider.component-C82x1v2R.js} +1 -1
  236. package/development/divider.js +1 -1
  237. package/development/divider.pure.js +1 -1
  238. package/development/{error.component-TvgLhaZh.js → error.component-DsJhsfir.js} +1 -1
  239. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  240. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  241. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  242. package/development/{expansion-panel-content.component-B-SV6ier.js → expansion-panel-content.component-BM_JVsIs.js} +1 -1
  243. package/development/{expansion-panel-header.component-Ok8Qmq5K.js → expansion-panel-header.component-QbxqMGKG.js} +1 -1
  244. package/development/{expansion-panel.component-q7cJOmUs.js → expansion-panel.component-BBESRMTr.js} +1 -1
  245. package/development/expansion-panel.js +3 -3
  246. package/development/expansion-panel.pure.js +3 -3
  247. package/development/file-selector/common/file-selector-common.d.ts +2 -2
  248. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  249. package/development/file-selector/common/file-selector-common.js +1 -1
  250. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  251. package/development/file-selector-common-BwkZZzA0.js +409 -0
  252. package/development/{file-selector-dropzone.component-DvIIHINv.js → file-selector-dropzone.component-DRUUWI1A.js} +1 -1
  253. package/development/file-selector.js +2 -2
  254. package/development/file-selector.pure.js +2 -2
  255. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  256. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  257. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  258. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  259. package/development/{flip-card-details.component-CKRovHqO.js → flip-card-details.component-C_8cY6Vi.js} +1 -1
  260. package/development/{flip-card-summary.component-THvJF3Cl.js → flip-card-summary.component-Dt81jqiA.js} +1 -1
  261. package/development/{flip-card.component-qnodzif2.js → flip-card.component-DJIHnUkf.js} +9 -5
  262. package/development/flip-card.js +3 -3
  263. package/development/flip-card.pure.js +3 -3
  264. package/development/footer/footer.component.d.ts.map +1 -1
  265. package/development/footer/footer.component.js +1 -1
  266. package/development/footer.component-DTyNIVCR.js +173 -0
  267. package/development/footer.js +1 -1
  268. package/development/footer.pure.js +1 -1
  269. package/development/form-field/error/error.component.js +1 -1
  270. package/development/form-field/form-field/form-field.component.js +1 -1
  271. package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts +0 -2
  272. package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts.map +1 -1
  273. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +3 -6
  274. package/development/form-field/hint/hint.component.js +1 -1
  275. package/development/{form-field.component-CdTnOAi2.js → form-field.component-D6K-EbaH.js} +1 -1
  276. package/development/form-field.js +3 -3
  277. package/development/form-field.pure.js +3 -3
  278. package/development/header/common/header-action-common.d.ts.map +1 -1
  279. package/development/header/common/header-action-common.js +1 -1
  280. package/development/header/header/header.component.js +1 -1
  281. package/development/header/header-environment/header-environment.component.js +1 -1
  282. package/development/{header-action-common-BEnsweEr.js → header-action-common-OnaZsRvd.js} +8 -3
  283. package/development/{header-environment.component-D-SLP3CC.js → header-environment.component-DfT6uNxN.js} +1 -1
  284. package/development/{header.component-BmZkCs9m.js → header.component-DQkC1zdO.js} +1 -1
  285. package/development/header.js +3 -3
  286. package/development/header.pure.js +3 -3
  287. package/development/{hint.component-D5rTFJ-O.js → hint.component-DLfPVKoX.js} +1 -1
  288. package/development/icon/icon-base.js +1 -1
  289. package/development/icon/icon.component.js +1 -1
  290. package/development/{icon-base-VYmbZT1-.js → icon-base-Sc3RF9J2.js} +1 -1
  291. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  292. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  293. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  294. package/development/{icon-sidebar-container.component-cw3kBQni.js → icon-sidebar-container.component-r000Jrld.js} +1 -1
  295. package/development/{icon-sidebar-content.component-CfkM9k--.js → icon-sidebar-content.component-CfyydnHQ.js} +1 -1
  296. package/development/{icon-sidebar.component-Cgvuxg4k.js → icon-sidebar.component-DiPgP4tF.js} +1 -1
  297. package/development/icon-sidebar.js +3 -3
  298. package/development/icon-sidebar.pure.js +3 -3
  299. package/development/icon.js +1 -1
  300. package/development/icon.pure.js +1 -1
  301. package/development/image/image.component.js +1 -1
  302. package/development/{image.component-BuAPmhIt.js → image.component-Bp14V3So.js} +1 -1
  303. package/development/image.js +1 -1
  304. package/development/image.pure.js +1 -1
  305. package/development/{inline-link-common-CONiCeR9.js → inline-link-common-BPSsiV2l.js} +2 -2
  306. package/development/journey-header/journey-header.component.js +1 -1
  307. package/development/{journey-header.component-Dvqw7fug.js → journey-header.component-vQ7AYDSM.js} +1 -1
  308. package/development/journey-header.js +1 -1
  309. package/development/journey-header.pure.js +1 -1
  310. package/development/lead-container/lead-container.component.js +1 -1
  311. package/development/{lead-container.component-B1eW6Xgb.js → lead-container.component-DoeIl1hc.js} +1 -1
  312. package/development/lead-container.js +1 -1
  313. package/development/lead-container.pure.js +1 -1
  314. package/development/link/common/block-link-common.js +1 -1
  315. package/development/link/common/inline-link-common.js +1 -1
  316. package/development/link/common/link-common.d.ts.map +1 -1
  317. package/development/link/common/link-common.js +1 -1
  318. package/development/{link-common-4Ag6Mio-.js → link-common-u_29CvHh.js} +8 -3
  319. package/development/link-list/common/link-list-base.d.ts +2 -2
  320. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  321. package/development/link-list/common/link-list-base.js +2 -2
  322. package/development/link-list/link-list.component.d.ts.map +1 -1
  323. package/development/link-list/link-list.component.js +1 -1
  324. package/development/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
  325. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  326. package/development/{link-list-anchor.component-Cotg5LDT.js → link-list-anchor.component-USmY8EgB.js} +3 -8
  327. package/development/link-list-anchor.js +1 -1
  328. package/development/link-list-anchor.pure.js +1 -1
  329. package/development/link-list-base-B7lhyRQX.js +164 -0
  330. package/development/{link-list.component-BFbrLjs0.js → link-list.component-BELz_qbY.js} +3 -8
  331. package/development/link-list.js +3 -3
  332. package/development/link-list.pure.js +3 -3
  333. package/development/link.js +3 -3
  334. package/development/link.pure.js +3 -3
  335. package/development/loading-indicator/loading-indicator.component.js +1 -1
  336. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  337. package/development/{loading-indicator-circle.component-nc-RH0jT.js → loading-indicator-circle.component-DmqQkjPz.js} +1 -1
  338. package/development/loading-indicator-circle.js +1 -1
  339. package/development/loading-indicator-circle.pure.js +1 -1
  340. package/development/{loading-indicator.component-DNCUlh6S.js → loading-indicator.component-6BcRDOoZ.js} +1 -1
  341. package/development/loading-indicator.js +1 -1
  342. package/development/loading-indicator.pure.js +1 -1
  343. package/development/logo/logo.component.js +1 -1
  344. package/development/{logo.component-tFe_T36e.js → logo.component-lqHep6rX.js} +1 -1
  345. package/development/logo.js +1 -1
  346. package/development/logo.pure.js +1 -1
  347. package/development/map-container/map-container.component.js +1 -1
  348. package/development/{map-container.component-DvHVJZEZ.js → map-container.component-BLF21LG7.js} +1 -1
  349. package/development/map-container.js +1 -1
  350. package/development/map-container.pure.js +1 -1
  351. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  352. package/development/menu/common/menu-action-common.js +1 -1
  353. package/development/menu/menu/menu.component.js +1 -1
  354. package/development/{menu-action-common-CEnwq60Z.js → menu-action-common-B_8L-wRC.js} +8 -3
  355. package/development/{menu.component-DbNRrGYy.js → menu.component-BpKGNICN.js} +1 -1
  356. package/development/menu.js +2 -2
  357. package/development/menu.pure.js +2 -2
  358. package/development/message/message.component.js +1 -1
  359. package/development/{message.component-Dzah9lXK.js → message.component-BJrDM-LZ.js} +1 -1
  360. package/development/message.js +1 -1
  361. package/development/message.pure.js +1 -1
  362. package/development/{mini-button-group.component-DNFyLMg_.js → mini-button-group.component-DAbgiDdb.js} +6 -2
  363. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  364. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  365. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts.map +1 -1
  366. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  367. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  368. package/development/{mini-calendar-day.component-Bmx2GYGZ.js → mini-calendar-day.component-WHlLpVfT.js} +2 -2
  369. package/development/{mini-calendar-month.component-CdIsxUAx.js → mini-calendar-month.component-CtNDvZLH.js} +1 -1
  370. package/development/mini-calendar.component-ypFhmHjj.js +184 -0
  371. package/development/mini-calendar.js +3 -3
  372. package/development/mini-calendar.pure.js +3 -3
  373. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  374. package/development/navigation/common/navigation-action-common.js +1 -1
  375. package/development/navigation/navigation/navigation.component.js +1 -1
  376. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  377. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  378. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  379. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  380. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  381. package/development/{navigation-action-common-Cv1AOqUk.js → navigation-action-common-CEFNy2YF.js} +6 -2
  382. package/development/{navigation-list.component-CQ4q671G.js → navigation-list.component-Djgm6YPH.js} +6 -2
  383. package/development/{navigation-marker.component-D7ks8vbC.js → navigation-marker.component-B2yzOStm.js} +6 -2
  384. package/development/{navigation-section.component-DBINlaTX.js → navigation-section.component-DumXFFfg.js} +1 -1
  385. package/development/{navigation.component-Djm0PFOA.js → navigation.component-CpoBEP55.js} +1 -1
  386. package/development/navigation.js +5 -5
  387. package/development/navigation.pure.js +5 -5
  388. package/development/notification/notification.component.js +1 -1
  389. package/development/{notification.component-BgF5aGrn.js → notification.component-CqmGbIWI.js} +1 -1
  390. package/development/notification.js +1 -1
  391. package/development/notification.pure.js +1 -1
  392. package/development/{optgroup-base-element-er7EBllh.js → optgroup-base-element-CUh4tWc1.js} +1 -1
  393. package/development/option/optgroup/optgroup-base-element.js +1 -1
  394. package/development/option/optgroup/optgroup.component.js +1 -1
  395. package/development/option/option/option-base-element.d.ts +3 -3
  396. package/development/option/option/option-base-element.d.ts.map +1 -1
  397. package/development/option/option/option-base-element.js +5 -5
  398. package/development/option/option/option.component.d.ts.map +1 -1
  399. package/development/option/option/option.component.js +1 -1
  400. package/development/option/option-hint/option-hint.component.js +1 -1
  401. package/development/{option-hint.component-DLp9rQrk.js → option-hint.component-D4P0hM0D.js} +1 -1
  402. package/development/{option.component-B2EO4N0R.js → option.component-B18Ra5d9.js} +3 -3
  403. package/development/option.js +3 -3
  404. package/development/option.pure.js +3 -3
  405. package/development/overlay/overlay-base-element.d.ts +3 -2
  406. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  407. package/development/overlay/overlay-base-element.js +6 -3
  408. package/development/overlay/overlay.component.d.ts.map +1 -1
  409. package/development/overlay/overlay.component.js +1 -1
  410. package/development/{overlay.component-BcOBxY6k.js → overlay.component-h3sOVMuU.js} +5 -9
  411. package/development/overlay.js +1 -1
  412. package/development/overlay.pure.js +1 -1
  413. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  414. package/development/paginator/common/paginator-common.js +14 -7
  415. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  416. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  417. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  418. package/development/paginator/paginator/paginator.component.js +1 -1
  419. package/development/{paginator.component-BlyTYIs0.js → paginator.component-Cn5a9c-2.js} +4 -4
  420. package/development/paginator.js +2 -2
  421. package/development/paginator.pure.js +2 -2
  422. package/development/{panel-mixin-CKHxLmjh.js → panel-mixin-X1lzGg3S.js} +12 -3
  423. package/development/popover/popover.component.d.ts +1 -1
  424. package/development/popover/popover.component.d.ts.map +1 -1
  425. package/development/popover/popover.component.js +1 -1
  426. package/development/popover.component-DT-cfDqo.js +561 -0
  427. package/development/popover.js +1 -1
  428. package/development/popover.pure.js +1 -1
  429. package/development/radio-button/common/radio-button-common.d.ts +0 -1
  430. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  431. package/development/radio-button/common/radio-button-common.js +2 -2
  432. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  433. package/development/radio-button/radio-button.component.js +1 -1
  434. package/development/radio-button-common-DUBFbGXY.js +134 -0
  435. package/development/radio-button-panel/radio-button-panel.component.d.ts +1 -2
  436. package/development/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  437. package/development/radio-button-panel/radio-button-panel.component.js +5 -12
  438. package/development/{radio-button.component-DggZ7RZD.js → radio-button.component-Cdbpqlt3.js} +4 -8
  439. package/development/radio-button.js +3 -3
  440. package/development/radio-button.pure.js +3 -3
  441. package/development/select/select.component.js +1 -1
  442. package/development/{select.component-BnHx3v3c.js → select.component-C1Xfvvii.js} +1 -1
  443. package/development/select.js +1 -1
  444. package/development/select.pure.js +1 -1
  445. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  446. package/development/{selection-action-panel.component-DvhL5Z_Q.js → selection-action-panel.component-BcchCvch.js} +1 -1
  447. package/development/selection-action-panel.js +1 -1
  448. package/development/selection-action-panel.pure.js +1 -1
  449. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  450. package/development/{selection-expansion-panel.component-D_HF9lzq.js → selection-expansion-panel.component-SdD5Vqz8.js} +1 -1
  451. package/development/selection-expansion-panel.js +1 -1
  452. package/development/selection-expansion-panel.pure.js +1 -1
  453. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  454. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  455. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  456. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  457. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  458. package/development/{sidebar-close-button.component-DYE0tK-I.js → sidebar-close-button.component-CC0QzPhd.js} +1 -1
  459. package/development/{sidebar-container.component-CC9TtB6I.js → sidebar-container.component-t80DrAww.js} +1 -1
  460. package/development/{sidebar-content.component-DbcREBUa.js → sidebar-content.component-CpaONvN0.js} +1 -1
  461. package/development/{sidebar-title.component-DBb5MfIC.js → sidebar-title.component-CS3CJ0To.js} +1 -1
  462. package/development/{sidebar.component-zMWbdz0h.js → sidebar.component-DR2JGwnM.js} +1 -1
  463. package/development/sidebar.js +5 -5
  464. package/development/sidebar.pure.js +5 -5
  465. package/development/signet/signet.component.js +1 -1
  466. package/development/{signet.component-DO73qKor.js → signet.component-CeEFPNPy.js} +1 -1
  467. package/development/signet.js +1 -1
  468. package/development/signet.pure.js +1 -1
  469. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  470. package/development/skiplink-list/skiplink-list.component.js +1 -1
  471. package/development/skiplink-list.component-wKB19gkw.js +133 -0
  472. package/development/skiplink-list.js +1 -1
  473. package/development/skiplink-list.pure.js +1 -1
  474. package/development/slider/slider.component.js +1 -1
  475. package/development/{slider.component-CXrGIpkh.js → slider.component-D4t9l9OV.js} +1 -1
  476. package/development/slider.js +1 -1
  477. package/development/slider.pure.js +1 -1
  478. package/development/status/status.component.js +1 -1
  479. package/development/{status.component-BtJ8ri61.js → status.component-BjAC7YA_.js} +1 -1
  480. package/development/status.js +1 -1
  481. package/development/status.pure.js +1 -1
  482. package/development/{step-label.component-Dfx9rLcN.js → step-label.component-BpXswj8i.js} +1 -1
  483. package/development/{step.component-D1Gq0VRW.js → step.component-DROEehLH.js} +1 -1
  484. package/development/stepper/step/step.component.js +1 -1
  485. package/development/stepper/step-label/step-label.component.js +1 -1
  486. package/development/stepper/stepper/stepper.component.js +1 -1
  487. package/development/{stepper.component-BTwJttZt.js → stepper.component-BySNJPw1.js} +1 -1
  488. package/development/stepper.js +3 -3
  489. package/development/stepper.pure.js +3 -3
  490. package/development/{styles-DcuJgwEt.js → styles-6T7UvhxK.js} +6 -2
  491. package/development/{styles-WppEBrlW.js → styles-B8pcODdC.js} +1 -1
  492. package/development/{tab-group.component-DX7BY7Xy.js → tab-group.component-CxuecHpZ.js} +1 -1
  493. package/development/{tab-label.component-Ggx6qaIk.js → tab-label.component-Dr76CFQ5.js} +1 -1
  494. package/development/{tab-nav-bar.component-BTPTHy2C.js → tab-nav-bar.component-meiT_l0B.js} +2 -1
  495. package/development/{tab.component-BVhYPy5Y.js → tab.component-CXyFknm8.js} +1 -1
  496. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  497. package/development/{table-wrapper.component-DcLwEDzr.js → table-wrapper.component-CjMOENHV.js} +1 -1
  498. package/development/table.js +1 -1
  499. package/development/table.pure.js +1 -1
  500. package/development/tabs/common/styles.js +1 -1
  501. package/development/tabs/tab/tab.component.js +1 -1
  502. package/development/tabs/tab-group/tab-group.component.js +1 -1
  503. package/development/tabs/tab-label/tab-label.component.js +1 -1
  504. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  505. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  506. package/development/tabs.js +5 -5
  507. package/development/tabs.pure.js +5 -5
  508. package/development/tag/tag/tag.component.js +1 -1
  509. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  510. package/development/tag/tag-group/tag-group.component.js +1 -1
  511. package/development/tag-group.component-L1wyub-I.js +200 -0
  512. package/development/{tag.component-Davxisfj.js → tag.component-CD64GHEg.js} +1 -1
  513. package/development/tag.js +2 -2
  514. package/development/tag.pure.js +2 -2
  515. package/development/teaser/teaser.component.js +1 -1
  516. package/development/teaser-hero/teaser-hero.component.js +1 -1
  517. package/development/{teaser-hero.component-bp9IsVmY.js → teaser-hero.component-Cwovx5MH.js} +1 -1
  518. package/development/teaser-hero.js +1 -1
  519. package/development/teaser-hero.pure.js +1 -1
  520. package/development/teaser-panel/teaser-panel.component.js +1 -1
  521. package/development/{teaser-panel.component-CjSrfJYG.js → teaser-panel.component-WJL2i741.js} +1 -1
  522. package/development/teaser-panel.js +1 -1
  523. package/development/teaser-panel.pure.js +1 -1
  524. package/development/teaser-product/common/teaser-product-common.d.ts +0 -1
  525. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  526. package/development/teaser-product/common/teaser-product-common.js +2 -2
  527. package/development/teaser-product/teaser-product/teaser-product.component.d.ts +1 -2
  528. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  529. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  530. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
  531. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +4 -4
  532. package/development/teaser-product-common-BzWTIGcp.js +87 -0
  533. package/development/teaser-product.component-C0WLn7xi.js +37 -0
  534. package/development/teaser-product.js +3 -3
  535. package/development/teaser-product.pure.js +3 -3
  536. package/development/{teaser.component-8cqR7wx4.js → teaser.component-BZ6jLwOu.js} +2 -2
  537. package/development/teaser.js +1 -1
  538. package/development/teaser.pure.js +1 -1
  539. package/development/time-input/time-input.component.d.ts.map +1 -1
  540. package/development/time-input/time-input.component.js +1 -1
  541. package/development/time-input.component-CM0e8nvQ.js +187 -0
  542. package/development/time-input.js +1 -1
  543. package/development/time-input.pure.js +1 -1
  544. package/development/timetable-form/timetable-form/timetable-form.component.d.ts.map +1 -1
  545. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  546. package/development/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +1 -1
  547. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  548. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  549. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  550. package/development/{timetable-form-details.component-B7mwIQoz.js → timetable-form-details.component-DF_c1skc.js} +2 -2
  551. package/development/{timetable-form-field.component-BIpoMaJW.js → timetable-form-field.component-BrlJuDx4.js} +1 -1
  552. package/development/{timetable-form-swap-button.component-CyHdctws.js → timetable-form-swap-button.component-Cz3FAIVE.js} +1 -1
  553. package/development/{timetable-form.component-BBkeono7.js → timetable-form.component-Ci0pxhNz.js} +2 -2
  554. package/development/timetable-form.js +4 -4
  555. package/development/timetable-form.pure.js +4 -4
  556. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  557. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  558. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  559. package/development/{timetable-occupancy-icon.component-CRayfWIo.js → timetable-occupancy-icon.component-Bi8hQJfy.js} +1 -1
  560. package/development/timetable-occupancy-icon.js +1 -1
  561. package/development/timetable-occupancy-icon.pure.js +1 -1
  562. package/development/{timetable-occupancy.component-B-uVA9KC.js → timetable-occupancy.component-CoNE3YUe.js} +10 -6
  563. package/development/timetable-occupancy.js +1 -1
  564. package/development/timetable-occupancy.pure.js +1 -1
  565. package/development/title/title-base.d.ts.map +1 -1
  566. package/development/title/title-base.js +1 -1
  567. package/development/title/title.component.js +1 -1
  568. package/development/{title-base-QBLTDdVa.js → title-base-ByMJQE3I.js} +2 -2
  569. package/development/{title.component-DeSXwF7P.js → title.component-CbbTO4LU.js} +2 -2
  570. package/development/title.js +2 -2
  571. package/development/title.pure.js +2 -2
  572. package/development/toast/toast.component.js +1 -1
  573. package/development/{toast.component-CrjaQMNl.js → toast.component-AHcIpqsE.js} +1 -1
  574. package/development/toast.js +1 -1
  575. package/development/toast.pure.js +1 -1
  576. package/development/toggle/toggle/toggle.component.js +1 -1
  577. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  578. package/development/toggle-check/toggle-check.component.js +1 -1
  579. package/development/{toggle-check.component-LYr7DJj1.js → toggle-check.component-C8ieWZGi.js} +1 -1
  580. package/development/toggle-check.js +1 -1
  581. package/development/toggle-check.pure.js +1 -1
  582. package/development/{toggle-option.component-DRAJ11fp.js → toggle-option.component-BAo2LO-4.js} +1 -1
  583. package/development/{toggle.component-CQYpVyvs.js → toggle.component-gBoiGmkG.js} +1 -1
  584. package/development/toggle.js +2 -2
  585. package/development/toggle.pure.js +2 -2
  586. package/development/tooltip/tooltip.component.js +1 -1
  587. package/development/{tooltip.component-Br7aDPFn.js → tooltip.component-Doq4t2oQ.js} +1 -1
  588. package/development/tooltip.js +1 -1
  589. package/development/tooltip.pure.js +1 -1
  590. package/development/train/train/train.component.d.ts.map +1 -1
  591. package/development/train/train/train.component.js +1 -1
  592. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  593. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  594. package/development/train/train-formation/train-formation.component.js +1 -1
  595. package/development/train/train-wagon-common.d.ts.map +1 -1
  596. package/development/train/train-wagon-common.js +1 -1
  597. package/development/{train-blocked-passage.component-BgBnEOfh.js → train-blocked-passage.component-OZovrT7K.js} +1 -1
  598. package/development/{train-formation.component-CDKR5KCm.js → train-formation.component-CT9XEGMW.js} +2 -1
  599. package/development/{train-wagon-common-S3OJdguG.js → train-wagon-common-F03qDEN2.js} +9 -4
  600. package/development/{train.component-CP9QaQk8.js → train.component-BYo4x9no.js} +7 -3
  601. package/development/train.js +4 -4
  602. package/development/train.pure.js +4 -4
  603. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  604. package/development/{visual-checkbox.component-DJ30EugM.js → visual-checkbox.component-DrpsZh5z.js} +1 -1
  605. package/development/visual-checkbox.js +1 -1
  606. package/development/visual-checkbox.pure.js +1 -1
  607. package/dialog/dialog/dialog.component.js +1 -1
  608. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  609. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  610. package/dialog/dialog-content/dialog-content.component.js +1 -1
  611. package/dialog/dialog-title/dialog-title.component.js +1 -1
  612. package/{dialog.component-ChB9gCyY.js → dialog.component-QO__vnjp.js} +8 -7
  613. package/dialog.js +5 -5
  614. package/dialog.pure.js +5 -5
  615. package/divider/divider.component.js +1 -1
  616. package/divider.js +1 -1
  617. package/divider.pure.js +1 -1
  618. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  619. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  620. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  621. package/expansion-panel.js +3 -3
  622. package/expansion-panel.pure.js +3 -3
  623. package/file-selector/common/file-selector-common.js +1 -1
  624. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  625. package/{file-selector-common-CMLaHuDP.js → file-selector-common-jpJmVqAw.js} +25 -25
  626. package/file-selector.js +2 -2
  627. package/file-selector.pure.js +2 -2
  628. package/flip-card/flip-card/flip-card.component.js +1 -1
  629. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  630. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  631. package/{flip-card.component-Cq5BUWxc.js → flip-card.component-B5LwF2C_.js} +10 -6
  632. package/flip-card.js +3 -3
  633. package/flip-card.pure.js +3 -3
  634. package/footer/footer.component.js +1 -1
  635. package/footer.component-CiGxXBJM.js +130 -0
  636. package/footer.js +1 -1
  637. package/footer.pure.js +1 -1
  638. package/form-field/error/error.component.js +1 -1
  639. package/form-field/form-field/form-field.component.js +1 -1
  640. package/form-field/form-field-text-counter/form-field-text-counter.component.js +15 -18
  641. package/form-field/hint/hint.component.js +1 -1
  642. package/form-field.js +3 -3
  643. package/form-field.pure.js +3 -3
  644. package/header/common/header-action-common.js +1 -1
  645. package/header/header/header.component.js +1 -1
  646. package/header/header-environment/header-environment.component.js +1 -1
  647. package/{header-action-common-BOKlGz-X.js → header-action-common-yOZmEFZa.js} +53 -46
  648. package/header.js +3 -3
  649. package/header.pure.js +3 -3
  650. package/icon/icon-base.js +1 -1
  651. package/icon/icon.component.js +1 -1
  652. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  653. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  654. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  655. package/icon-sidebar.js +3 -3
  656. package/icon-sidebar.pure.js +3 -3
  657. package/icon.js +1 -1
  658. package/icon.pure.js +1 -1
  659. package/image/image.component.js +1 -1
  660. package/image.js +1 -1
  661. package/image.pure.js +1 -1
  662. package/index.d.ts +0 -2
  663. package/index.js +0 -2
  664. package/{inline-link-common-DyeQzML8.js → inline-link-common-saTIMWz0.js} +1 -1
  665. package/journey-header/journey-header.component.js +1 -1
  666. package/journey-header.js +1 -1
  667. package/journey-header.pure.js +1 -1
  668. package/lead-container/lead-container.component.js +1 -1
  669. package/lead-container.js +1 -1
  670. package/lead-container.pure.js +1 -1
  671. package/link/common/block-link-common.js +1 -1
  672. package/link/common/inline-link-common.js +1 -1
  673. package/link/common/link-common.js +1 -1
  674. package/{link-common-DO7R6Wp4.js → link-common-DPzMQFnE.js} +8 -3
  675. package/link-list/common/link-list-base.js +2 -2
  676. package/link-list/link-list.component.js +1 -1
  677. package/link-list-anchor/link-list-anchor.component.js +1 -1
  678. package/{link-list-anchor.component-DAK9GUuf.js → link-list-anchor.component-C3z8Q5V2.js} +4 -9
  679. package/link-list-anchor.js +1 -1
  680. package/link-list-anchor.pure.js +1 -1
  681. package/{link-list-base-Dt7UnNwU.js → link-list-base-DQL62JCi.js} +23 -17
  682. package/{link-list.component-B0fI8akl.js → link-list.component-D69GdXfA.js} +17 -22
  683. package/link-list.js +4 -4
  684. package/link-list.pure.js +3 -3
  685. package/link.js +3 -3
  686. package/link.pure.js +3 -3
  687. package/loading-indicator/loading-indicator.component.js +1 -1
  688. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  689. package/loading-indicator-circle.js +1 -1
  690. package/loading-indicator-circle.pure.js +1 -1
  691. package/loading-indicator.js +1 -1
  692. package/loading-indicator.pure.js +1 -1
  693. package/logo/logo.component.js +1 -1
  694. package/logo.js +1 -1
  695. package/logo.pure.js +1 -1
  696. package/map-container/map-container.component.js +1 -1
  697. package/map-container.js +1 -1
  698. package/map-container.pure.js +1 -1
  699. package/menu/common/menu-action-common.js +1 -1
  700. package/menu/menu/menu.component.js +1 -1
  701. package/{menu-action-common-krzD_Ca2.js → menu-action-common-C0pXDwH9.js} +8 -3
  702. package/menu.js +2 -2
  703. package/menu.pure.js +2 -2
  704. package/message/message.component.js +1 -1
  705. package/message.js +1 -1
  706. package/message.pure.js +1 -1
  707. package/{mini-button-group.component-BHbNqePj.js → mini-button-group.component-t9YZBv-8.js} +5 -1
  708. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  709. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  710. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  711. package/{mini-calendar-day.component-0lJIxizR.js → mini-calendar-day.component-BA_85Nbw.js} +1 -1
  712. package/{mini-calendar.component-DjQYQ3Yf.js → mini-calendar.component-DEOa6BV0.js} +1 -1
  713. package/mini-calendar.js +3 -3
  714. package/mini-calendar.pure.js +3 -3
  715. package/navigation/common/navigation-action-common.js +1 -1
  716. package/navigation/navigation/navigation.component.js +1 -1
  717. package/navigation/navigation-list/navigation-list.component.js +1 -1
  718. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  719. package/navigation/navigation-section/navigation-section.component.js +1 -1
  720. package/{navigation-action-common-BKI1MS1v.js → navigation-action-common-BoxkAi8d.js} +5 -1
  721. package/{navigation-list.component-BX-kv06z.js → navigation-list.component-DbaRXKc8.js} +5 -1
  722. package/{navigation-marker.component-iSodFQRj.js → navigation-marker.component-KLFGeUft.js} +5 -1
  723. package/navigation.js +5 -5
  724. package/navigation.pure.js +5 -5
  725. package/notification/notification.component.js +1 -1
  726. package/notification.js +1 -1
  727. package/notification.pure.js +1 -1
  728. package/off-brand-theme.css +1 -3
  729. package/option/optgroup/optgroup-base-element.js +1 -1
  730. package/option/optgroup/optgroup.component.js +1 -1
  731. package/option/option/option-base-element.js +24 -24
  732. package/option/option/option.component.js +1 -1
  733. package/option/option-hint/option-hint.component.js +1 -1
  734. package/{option.component-B8PivDHD.js → option.component-DCBEIrw4.js} +6 -6
  735. package/option.js +3 -3
  736. package/option.pure.js +3 -3
  737. package/overlay/overlay-base-element.js +25 -22
  738. package/overlay/overlay.component.js +1 -1
  739. package/{overlay.component-C6i5RA4B.js → overlay.component-DNFt8QLV.js} +23 -27
  740. package/overlay.js +1 -1
  741. package/overlay.pure.js +1 -1
  742. package/package.json +2 -2
  743. package/paginator/common/paginator-common.js +275 -266
  744. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  745. package/paginator/paginator/paginator.component.js +1 -1
  746. package/{paginator.component-DA_wUypF.js → paginator.component-BtBmabiW.js} +31 -31
  747. package/paginator.js +2 -2
  748. package/paginator.pure.js +2 -2
  749. package/panel-mixin-DcdteEmP.js +120 -0
  750. package/popover/popover.component.js +1 -1
  751. package/{popover.component-BkhmysoH.js → popover.component-DnY9obd7.js} +67 -47
  752. package/popover.js +1 -1
  753. package/popover.pure.js +1 -1
  754. package/radio-button/common/radio-button-common.js +2 -2
  755. package/radio-button/radio-button.component.js +1 -1
  756. package/radio-button-common-CowDWcBS.js +89 -0
  757. package/radio-button-panel/radio-button-panel.component.js +12 -19
  758. package/{radio-button.component-v5czJYC3.js → radio-button.component-B80224NM.js} +18 -22
  759. package/radio-button.js +4 -4
  760. package/radio-button.pure.js +3 -3
  761. package/safety-theme.css +1 -3
  762. package/select/select.component.js +1 -1
  763. package/select.js +1 -1
  764. package/select.pure.js +1 -1
  765. package/selection-action-panel/selection-action-panel.component.js +1 -1
  766. package/selection-action-panel.js +1 -1
  767. package/selection-action-panel.pure.js +1 -1
  768. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  769. package/selection-expansion-panel.js +1 -1
  770. package/selection-expansion-panel.pure.js +1 -1
  771. package/sidebar/sidebar/sidebar.component.js +1 -1
  772. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  773. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  774. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  775. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  776. package/sidebar.js +5 -5
  777. package/sidebar.pure.js +5 -5
  778. package/signet/signet.component.js +1 -1
  779. package/signet.js +1 -1
  780. package/signet.pure.js +1 -1
  781. package/skiplink-list/skiplink-list.component.js +1 -1
  782. package/{skiplink-list.component-By3lc_fn.js → skiplink-list.component-D9xJZ_t5.js} +7 -3
  783. package/skiplink-list.js +1 -1
  784. package/skiplink-list.pure.js +1 -1
  785. package/slider/slider.component.js +1 -1
  786. package/slider.js +1 -1
  787. package/slider.pure.js +1 -1
  788. package/standard-theme.css +1 -3
  789. package/status/status.component.js +1 -1
  790. package/status.js +1 -1
  791. package/status.pure.js +1 -1
  792. package/stepper/step/step.component.js +1 -1
  793. package/stepper/step-label/step-label.component.js +1 -1
  794. package/stepper/stepper/stepper.component.js +1 -1
  795. package/stepper.js +3 -3
  796. package/stepper.pure.js +3 -3
  797. package/{styles-swTeDfst.js → styles-D5okOWF1.js} +2 -2
  798. package/{tab-nav-bar.component-C6ZRnHq_.js → tab-nav-bar.component-3bbum8b-.js} +1 -0
  799. package/table/table-wrapper/table-wrapper.component.js +1 -1
  800. package/table.js +1 -1
  801. package/table.pure.js +1 -1
  802. package/tabs/common/styles.js +1 -1
  803. package/tabs/tab/tab.component.js +1 -1
  804. package/tabs/tab-group/tab-group.component.js +1 -1
  805. package/tabs/tab-label/tab-label.component.js +1 -1
  806. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  807. package/tabs.js +5 -5
  808. package/tabs.pure.js +5 -5
  809. package/tag/tag/tag.component.js +1 -1
  810. package/tag/tag-group/tag-group.component.js +1 -1
  811. package/{tag-group.component-Bha1unpW.js → tag-group.component-CBYyds-0.js} +5 -1
  812. package/tag.js +2 -2
  813. package/tag.pure.js +2 -2
  814. package/teaser/teaser.component.js +1 -1
  815. package/teaser-hero/teaser-hero.component.js +1 -1
  816. package/teaser-hero.js +1 -1
  817. package/teaser-hero.pure.js +1 -1
  818. package/teaser-panel/teaser-panel.component.js +1 -1
  819. package/teaser-panel.js +1 -1
  820. package/teaser-panel.pure.js +1 -1
  821. package/teaser-product/common/teaser-product-common.js +2 -2
  822. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  823. package/teaser-product/teaser-product-static/teaser-product-static.component.js +5 -5
  824. package/teaser-product-common-CtbFDRqf.js +72 -0
  825. package/{teaser-product.component-tut8eGiy.js → teaser-product.component-BO58I4Hg.js} +8 -15
  826. package/teaser-product.js +5 -5
  827. package/teaser-product.pure.js +4 -4
  828. package/{teaser.component-Bf74T58g.js → teaser.component-C6-OhHMB.js} +1 -1
  829. package/teaser.js +1 -1
  830. package/teaser.pure.js +1 -1
  831. package/time-input/time-input.component.js +1 -1
  832. package/{time-input.component-BVoO7JLV.js → time-input.component-B-IERWbx.js} +1 -1
  833. package/time-input.js +1 -1
  834. package/time-input.pure.js +1 -1
  835. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  836. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  837. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  838. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  839. package/{timetable-form-details.component-BQmF3WLu.js → timetable-form-details.component-CnFKVZEa.js} +1 -1
  840. package/{timetable-form.component-AbZF15Tg.js → timetable-form.component-DS6RckEP.js} +1 -1
  841. package/timetable-form.js +4 -4
  842. package/timetable-form.pure.js +4 -4
  843. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  844. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  845. package/timetable-occupancy-icon.js +1 -1
  846. package/timetable-occupancy-icon.pure.js +1 -1
  847. package/{timetable-occupancy.component-Dq9RM6qS.js → timetable-occupancy.component-D87hnywl.js} +10 -6
  848. package/timetable-occupancy.js +1 -1
  849. package/timetable-occupancy.pure.js +1 -1
  850. package/title/title-base.js +1 -1
  851. package/title/title.component.js +1 -1
  852. package/{title-base-CBTQR0xw.js → title-base-Df2vDqJ7.js} +1 -1
  853. package/{title.component-DzmgLLrE.js → title.component-D52MY-b3.js} +1 -1
  854. package/title.js +2 -2
  855. package/title.pure.js +2 -2
  856. package/toast/toast.component.js +1 -1
  857. package/toast.js +1 -1
  858. package/toast.pure.js +1 -1
  859. package/toggle/toggle/toggle.component.js +1 -1
  860. package/toggle/toggle-option/toggle-option.component.js +1 -1
  861. package/toggle-check/toggle-check.component.js +1 -1
  862. package/toggle-check.js +1 -1
  863. package/toggle-check.pure.js +1 -1
  864. package/toggle.js +2 -2
  865. package/toggle.pure.js +2 -2
  866. package/tooltip/tooltip.component.js +1 -1
  867. package/tooltip.js +1 -1
  868. package/tooltip.pure.js +1 -1
  869. package/train/train/train.component.js +1 -1
  870. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  871. package/train/train-formation/train-formation.component.js +1 -1
  872. package/train/train-wagon-common.js +1 -1
  873. package/{train-formation.component-6XQVXPue.js → train-formation.component-mZej4Z1v.js} +1 -0
  874. package/{train-wagon-common-DTN_G78z.js → train-wagon-common-Chw0-9Xv.js} +281 -274
  875. package/{train.component-3vmLxVCZ.js → train.component-iMqXsF19.js} +6 -2
  876. package/train.js +4 -4
  877. package/train.pure.js +4 -4
  878. package/visual-checkbox/visual-checkbox.component.js +1 -1
  879. package/visual-checkbox.js +1 -1
  880. package/visual-checkbox.pure.js +1 -1
  881. package/calendar-cell-base-element-Bip0m9Wr.js +0 -21
  882. package/checkbox-common-DSmxKbmR.js +0 -67
  883. package/core/screen-reader-only/screen-reader-only.component.js +0 -2
  884. package/datepicker.component-CNQGkdr-.js +0 -154
  885. package/development/alert-group.component-D4KxKTd2.js +0 -186
  886. package/development/calendar-day.component-CnNml44_.js +0 -144
  887. package/development/calendar.component-B5dz7mau.js +0 -1451
  888. package/development/card-action-common-HYrFMTkA.js +0 -115
  889. package/development/carousel-list.component-z40-4ANn.js +0 -133
  890. package/development/carousel.component-BHYBvOm7.js +0 -142
  891. package/development/checkbox-common-DOoEKgML.js +0 -84
  892. package/development/core/screen-reader-only/screen-reader-only.component.d.ts +0 -18
  893. package/development/core/screen-reader-only/screen-reader-only.component.d.ts.map +0 -1
  894. package/development/core/screen-reader-only/screen-reader-only.component.js +0 -2
  895. package/development/date-input.component-osVJFOS-.js +0 -302
  896. package/development/datepicker-button-BI5R118p.js +0 -166
  897. package/development/datepicker.component-Chnvwnp7.js +0 -212
  898. package/development/file-selector-common-BX5f18cJ.js +0 -409
  899. package/development/footer.component-kFeZqO-Q.js +0 -169
  900. package/development/link-list-base-B7vidwUW.js +0 -156
  901. package/development/mini-calendar.component-Ddxgy4Tj.js +0 -184
  902. package/development/popover.component-DM9Bn8xl.js +0 -535
  903. package/development/radio-button-common-ZMs5IFm2.js +0 -125
  904. package/development/screen-reader-only.component-D60AmiFy.js +0 -26
  905. package/development/skiplink-list.component-DqYT2mmv.js +0 -129
  906. package/development/tag-group.component-SEbOfnip.js +0 -196
  907. package/development/teaser-product-common-Q9KK6514.js +0 -78
  908. package/development/teaser-product.component-C5wV0a_c.js +0 -44
  909. package/development/time-input.component-x-QOtbwE.js +0 -187
  910. package/footer.component-CdTEaV6u.js +0 -126
  911. package/panel-mixin-By8Uy5yz.js +0 -113
  912. package/radio-button-common-iNYco_B8.js +0 -80
  913. package/screen-reader-only.component-B08Bt5Ct.js +0 -16
  914. package/teaser-product-common-DvenwiUs.js +0 -63
  915. /package/{dialog-actions.component-DjBJ65tV.js → dialog-actions.component-CqeDlr0B.js} +0 -0
  916. /package/{dialog-close-button.component-CLWP-IVb.js → dialog-close-button.component-DuiEzbQJ.js} +0 -0
  917. /package/{dialog-content.component-C_Gr8BNL.js → dialog-content.component-are-UBx3.js} +0 -0
  918. /package/{dialog-title.component-Cm-QxTF7.js → dialog-title.component-DLD2RVTt.js} +0 -0
  919. /package/{divider.component-Biqv6ZpH.js → divider.component-CBJzhdCf.js} +0 -0
  920. /package/{error.component-D3JgDJfN.js → error.component-BQunFrfb.js} +0 -0
  921. /package/{expansion-panel-content.component-CL_uEP-7.js → expansion-panel-content.component-BUIoU-or.js} +0 -0
  922. /package/{expansion-panel-header.component-DYvq-uUi.js → expansion-panel-header.component-BEpspobZ.js} +0 -0
  923. /package/{expansion-panel.component-BYOTclLb.js → expansion-panel.component-CsWsLEVk.js} +0 -0
  924. /package/{file-selector-dropzone.component-DYLTIaiE.js → file-selector-dropzone.component-DDRTu6p2.js} +0 -0
  925. /package/{flip-card-details.component-DXpqywbn.js → flip-card-details.component-BimJHkPF.js} +0 -0
  926. /package/{flip-card-summary.component-X3PL0o4l.js → flip-card-summary.component-BddrB2kn.js} +0 -0
  927. /package/{form-field.component-Dtzbp6-e.js → form-field.component-AvB2mmM3.js} +0 -0
  928. /package/{header-environment.component-BXPJRKXx.js → header-environment.component-BpuOXQN7.js} +0 -0
  929. /package/{header.component-DoAFSXgO.js → header.component-DWkBSP4V.js} +0 -0
  930. /package/{hint.component-BB_h0G6v.js → hint.component-BmPr9V0f.js} +0 -0
  931. /package/{icon-base-BRde2Po9.js → icon-base-B1dFqEI3.js} +0 -0
  932. /package/{icon-sidebar-container.component-BhgNmjw4.js → icon-sidebar-container.component-Iowa8Yl4.js} +0 -0
  933. /package/{icon-sidebar-content.component-lFstg91Y.js → icon-sidebar-content.component-D1JuPJcI.js} +0 -0
  934. /package/{icon-sidebar.component-D0TtF-kR.js → icon-sidebar.component-DeUHylZw.js} +0 -0
  935. /package/{image.component-BPXQC-6E.js → image.component-Dcajfjbs.js} +0 -0
  936. /package/{journey-header.component-DPqv2v3z.js → journey-header.component-5JGTTMs7.js} +0 -0
  937. /package/{lead-container.component-BX5mBnB5.js → lead-container.component-CVQGE7o8.js} +0 -0
  938. /package/{loading-indicator-circle.component-B3gn0-ee.js → loading-indicator-circle.component-CgqadcUv.js} +0 -0
  939. /package/{loading-indicator.component-DgYCAAkf.js → loading-indicator.component-DgNER2FZ.js} +0 -0
  940. /package/{logo.component-CaIUvKBz.js → logo.component-BHvsB47f.js} +0 -0
  941. /package/{map-container.component-BlrPWANi.js → map-container.component-Btnl3n9d.js} +0 -0
  942. /package/{menu.component-KdXwqe55.js → menu.component-CpNMheMG.js} +0 -0
  943. /package/{message.component-CF-_MD7m.js → message.component-CVwD82YK.js} +0 -0
  944. /package/{mini-calendar-month.component-C1oHh5pA.js → mini-calendar-month.component-BKvVAnIw.js} +0 -0
  945. /package/{navigation-section.component-BkhBZ4vH.js → navigation-section.component-219JlVIe.js} +0 -0
  946. /package/{navigation.component-BFejmwjr.js → navigation.component-gLrMCbh9.js} +0 -0
  947. /package/{notification.component-D9oxjMJs.js → notification.component-6pJdPrUO.js} +0 -0
  948. /package/{optgroup-base-element-BkboZL9_.js → optgroup-base-element-czVSe8WD.js} +0 -0
  949. /package/{option-hint.component-B388JuQb.js → option-hint.component-OwZnq0ZX.js} +0 -0
  950. /package/{select.component-De-aDcuf.js → select.component-Bhvd_sUV.js} +0 -0
  951. /package/{selection-action-panel.component-CRk9svQp.js → selection-action-panel.component-CI4IJD4U.js} +0 -0
  952. /package/{selection-expansion-panel.component-XKyTzHtv.js → selection-expansion-panel.component-nCD85lWJ.js} +0 -0
  953. /package/{sidebar-close-button.component-YZyIVv1P.js → sidebar-close-button.component-DZNZH9Zo.js} +0 -0
  954. /package/{sidebar-container.component-BRTbHYKk.js → sidebar-container.component-CrtKaMdN.js} +0 -0
  955. /package/{sidebar-content.component-CYupfsq_.js → sidebar-content.component-BE7w5j49.js} +0 -0
  956. /package/{sidebar-title.component-W_fxPBDi.js → sidebar-title.component-CBlyUcJi.js} +0 -0
  957. /package/{sidebar.component-Sw06otwx.js → sidebar.component-Dpf9jZ1P.js} +0 -0
  958. /package/{signet.component-BXAwmsGx.js → signet.component-DyYwAAg6.js} +0 -0
  959. /package/{slider.component-DfMkuXac.js → slider.component-DmPbclBS.js} +0 -0
  960. /package/{status.component-5SKEusnj.js → status.component-Dsh4GYvR.js} +0 -0
  961. /package/{step-label.component-DM7lQw8b.js → step-label.component-BmrquHP7.js} +0 -0
  962. /package/{step.component-DuLOqjZk.js → step.component-Nm2JoUGp.js} +0 -0
  963. /package/{stepper.component-8IXNrdx7.js → stepper.component-C3tYful_.js} +0 -0
  964. /package/{styles-DisU4TWi.js → styles-C_iNbDG0.js} +0 -0
  965. /package/{tab-group.component-B3uz-8FA.js → tab-group.component-CYbbE0J6.js} +0 -0
  966. /package/{tab-label.component-JjktN30A.js → tab-label.component-X6kvS5vX.js} +0 -0
  967. /package/{tab.component-D6hfhlZw.js → tab.component-B442rVEv.js} +0 -0
  968. /package/{table-wrapper.component-Dxb8kzV3.js → table-wrapper.component-DGL8RaxF.js} +0 -0
  969. /package/{tag.component-BGYVbfUx.js → tag.component-Bvf5GXDs.js} +0 -0
  970. /package/{teaser-hero.component-By1HInfz.js → teaser-hero.component-UawEEVTD.js} +0 -0
  971. /package/{teaser-panel.component-C4auDYCc.js → teaser-panel.component-DMVrPYil.js} +0 -0
  972. /package/{timetable-form-field.component-DrQuTOJr.js → timetable-form-field.component-D1-gyKZB.js} +0 -0
  973. /package/{timetable-form-swap-button.component-D9wBQQkG.js → timetable-form-swap-button.component-DsuJq-fr.js} +0 -0
  974. /package/{timetable-occupancy-icon.component-B6pF-j0D.js → timetable-occupancy-icon.component-DKhtb4y_.js} +0 -0
  975. /package/{toast.component-dNIDSiAM.js → toast.component-3giFSW26.js} +0 -0
  976. /package/{toggle-check.component-WVQ4NM-R.js → toggle-check.component-B9QBrJ-g.js} +0 -0
  977. /package/{toggle-option.component-DeePQ-NW.js → toggle-option.component-lAPXLkh7.js} +0 -0
  978. /package/{toggle.component-BGgAnHau.js → toggle.component-f4ACgRwJ.js} +0 -0
  979. /package/{tooltip.component-Bp-8vRoA.js → tooltip.component-CekGYat7.js} +0 -0
  980. /package/{train-blocked-passage.component-voZ8fxiB.js → train-blocked-passage.component-Dv6K-QKW.js} +0 -0
  981. /package/{visual-checkbox.component-BsjmJgcn.js → visual-checkbox.component-ffjXxXG1.js} +0 -0
@@ -46,7 +46,11 @@ var SbbNavigationMarkerElement = (() => {
46
46
  this.elementName = "sbb-navigation-marker";
47
47
  }
48
48
  static {
49
- this.styles = [boxSizingStyles, unsafeCSS(navigation_marker_default)];
49
+ this.styles = [
50
+ super.styles ?? [],
51
+ boxSizingStyles,
52
+ unsafeCSS(navigation_marker_default)
53
+ ];
50
54
  }
51
55
  #size_accessor_storage;
52
56
  /**
@@ -118,4 +122,4 @@ var SbbNavigationMarkerElement = (() => {
118
122
  //#endregion
119
123
  export { SbbNavigationMarkerElement as t };
120
124
 
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LUQ3a3M4dmJDLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24tbWFya2VyL25hdmlnYXRpb24tbWFya2VyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbWFyZ2luLWJsb2NrOiBjYWxjKFxuICAgIDFlbSAqIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci10eXBvLWxpbmUtaGVpZ2h0KSAvIDIgLSB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItYm9yZGVyKSAvXG4gICAgICAyXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtzaXplPSdsJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy1oZWFkaW5nKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LWhlYWRpbmcpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci13aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDgpfTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItdHlwby1saW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14OiBjYWxjKFxuICAgIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCkgLSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeClcbiAgKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpXG4gICk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXh4cyk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tbWFya2VyIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14KTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLXBvc2l0aW9uLXkpO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItd2lkdGgpO1xuICAgIGJvcmRlci1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWJvcmRlcikgc29saWQgdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLW1hcmdpbi1ibG9jayk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eCkpO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgICAgcHJvcGVydHk6IG9wYWNpdHksIGluc2V0LWJsb2NrLXN0YXJ0O1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShoYXMtYWN0aXZlLWFjdGlvbikpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBib3JkZXItY29sb3I6IENhbnZhc1RleHQ7XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKSkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBTYmJFbGVtZW50LFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1tYXJrZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2Agd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2AgZWxlbWVudHMgaW50byB0aGUgYHNiYi1uYXZpZ2F0aW9uLW1hcmtlcmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxcbiAgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1uYXZpZ2F0aW9uLW1hcmtlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFtcbiAgICAnc2JiLW5hdmlnYXRpb24tYnV0dG9uJyxcbiAgICAnc2JiLW5hdmlnYXRpb24tbGluaycsXG4gIF07XG5cbiAgLyoqXG4gICAqIE1hcmtlciBzaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIGwuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbCcgfCAncycgPSAnbCc7XG5cbiAgcHJpdmF0ZSBfY3VycmVudEFjdGl2ZUFjdGlvbj86IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldE1hcmtlclBvc2l0aW9uKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fdXBkYXRlTWFya2VyQWN0aW9ucygpO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtYWN0aXZlLWFjdGlvbicsICEhdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVNYXJrZXJBY3Rpb25zKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMubGlzdENoaWxkcmVuKSB7XG4gICAgICBhY3Rpb24uc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uID0gdGhpcy5saXN0Q2hpbGRyZW4uZmluZCgoYWN0aW9uKSA9PlxuICAgICAgYWN0aW9uLm1hdGNoZXMoJzpzdGF0ZShhY3Rpb24tYWN0aXZlKScpLFxuICAgICk7XG4gICAgdGhpcy5fc2V0TWFya2VyUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0FjdGl2ZUFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudDtcbiAgICBpZiAoYWN0aXZlQWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdChhY3RpdmVBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoYWN0aW9uOiBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzZXQoKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcihhY3Rpb24pLmFkZCgnYWN0aW9uLWFjdGl2ZScpO1xuICAgIHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24gPSBhY3Rpb247XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJQb3NpdGlvbigpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fc2V0TWFya2VyUG9zaXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pIHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pLmRlbGV0ZSgnYWN0aW9uLWFjdGl2ZScpO1xuICAgICAgdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbi5jb25uZWN0ZWRTZWN0aW9uPy5jbG9zZSgpO1xuICAgICAgdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRNYXJrZXJQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdENoaWxkcmVuLmluZGV4T2YodGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbikhO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxMSUVsZW1lbnQ+KFxuICAgICAgYGxpOm50aC1jaGlsZCgke2luZGV4ICsgMX0pYCxcbiAgICApPy5vZmZzZXRUb3A7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi15JywgYCR7dmFsdWV9cHhgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJMaXN0KCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLW1hcmtlcic6IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50O1xuICB9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
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LUIyeXpPU3RtLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24tbWFya2VyL25hdmlnYXRpb24tbWFya2VyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbWFyZ2luLWJsb2NrOiBjYWxjKFxuICAgIDFlbSAqIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci10eXBvLWxpbmUtaGVpZ2h0KSAvIDIgLSB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItYm9yZGVyKSAvXG4gICAgICAyXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtzaXplPSdsJ10pIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy1oZWFkaW5nKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LWhlYWRpbmcpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci13aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDgpfTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItdHlwby1saW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14OiBjYWxjKFxuICAgIHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCkgLSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeClcbiAgKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpXG4gICk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXh4cyk7XG4gIC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tbWFya2VyIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wYWRkaW5nLWlubGluZS1zdGFydCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItbGluZS1oZWlnaHQpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWxldHRlci1zcGFjaW5nKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLW1hcmtlci1wb3NpdGlvbi14KTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLXBvc2l0aW9uLXkpO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJrZXItd2lkdGgpO1xuICAgIGJvcmRlci1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLWJvcmRlcikgc29saWQgdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tbWFya2VyLW1hcmdpbi1ibG9jayk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eCkpO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgICAgcHJvcGVydHk6IG9wYWNpdHksIGluc2V0LWJsb2NrLXN0YXJ0O1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShoYXMtYWN0aXZlLWFjdGlvbikpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBib3JkZXItY29sb3I6IENhbnZhc1RleHQ7XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKSkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBTYmJFbGVtZW50LFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1tYXJrZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2Agd2l0aGluIGEgYHNiYi1uYXZpZ2F0aW9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW5hdmlnYXRpb24tYnV0dG9uYC9gc2JiLW5hdmlnYXRpb24tbGlua2AgZWxlbWVudHMgaW50byB0aGUgYHNiYi1uYXZpZ2F0aW9uLW1hcmtlcmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uTWFya2VyRWxlbWVudCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpbjxcbiAgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1uYXZpZ2F0aW9uLW1hcmtlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtcbiAgICBzdXBlci5zdHlsZXMgPz8gW10sXG4gICAgYm94U2l6aW5nU3R5bGVzLFxuICAgIHVuc2FmZUNTUyhzdHlsZSksXG4gIF07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gW1xuICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24nLFxuICAgICdzYmItbmF2aWdhdGlvbi1saW5rJyxcbiAgXTtcblxuICAvKipcbiAgICogTWFya2VyIHNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdsJyB8ICdzJyA9ICdsJztcblxuICBwcml2YXRlIF9jdXJyZW50QWN0aXZlQWN0aW9uPzogU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fc2V0TWFya2VyUG9zaXRpb24oKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLl91cGRhdGVNYXJrZXJBY3Rpb25zKCk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2hhcy1hY3RpdmUtYWN0aW9uJywgISF0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU1hcmtlckFjdGlvbnMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5saXN0Q2hpbGRyZW4pIHtcbiAgICAgIGFjdGlvbi5zaXplID0gdGhpcy5zaXplO1xuICAgIH1cblxuICAgIHRoaXMuX2N1cnJlbnRBY3RpdmVBY3Rpb24gPSB0aGlzLmxpc3RDaGlsZHJlbi5maW5kKChhY3Rpb24pID0+XG4gICAgICBhY3Rpb24ubWF0Y2hlcygnOnN0YXRlKGFjdGlvbi1hY3RpdmUpJyksXG4gICAgKTtcbiAgICB0aGlzLl9zZXRNYXJrZXJQb3NpdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fY2hlY2tBY3RpdmVBY3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICc6aXMoc2JiLW5hdmlnYXRpb24tYnV0dG9uLCBzYmItbmF2aWdhdGlvbi1saW5rKS5zYmItYWN0aXZlJyxcbiAgICApIGFzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50O1xuICAgIGlmIChhY3RpdmVBY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0KGFjdGl2ZUFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdChhY3Rpb246IFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCFhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIMm1c3RhdGVDb250cm9sbGVyKGFjdGlvbikuYWRkKCdhY3Rpb24tYWN0aXZlJyk7XG4gICAgdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbiA9IGFjdGlvbjtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE1hcmtlclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRNYXJrZXJQb3NpdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbikge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIodGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbikuZGVsZXRlKCdhY3Rpb24tYWN0aXZlJyk7XG4gICAgICB0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uLmNvbm5lY3RlZFNlY3Rpb24/LmNsb3NlKCk7XG4gICAgICB0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY3VycmVudEFjdGl2ZUFjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5saXN0Q2hpbGRyZW4uaW5kZXhPZih0aGlzLl9jdXJyZW50QWN0aXZlQWN0aW9uKSE7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTExJRWxlbWVudD4oXG4gICAgICBgbGk6bnRoLWNoaWxkKCR7aW5kZXggKyAxfSlgLFxuICAgICk/Lm9mZnNldFRvcDtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLW5hdmlnYXRpb24tbWFya2VyLXBvc2l0aW9uLXknLCBgJHt2YWx1ZX1weGApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlckxpc3QoKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24tbWFya2VyJzogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUNxQmEsb0NBQTBCO21CQUFTLHNCQUc5QyxXQUFXOzs7O2NBSEEsbUNBQW1DLFlBR25DOzs7dUJBZVYsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFBQyxnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBZGpCLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCO0lBQzlDLE1BQU0sVUFBVSxFQUFFO0lBQ2xCO0lBQ0EsVUFBVSwwQkFBQTtJQUNYOztFQVM0Qjs7OztFQUFBLElBQWdCLE9BQUk7QUFBQSxVQUFBLE1BQUE7O0VBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLFNBQUEsd0JBQUE7O0VBSWpELGNBQUE7QUFDRSxVQUFPO0FBYm1CLFFBQUEsc0JBQXNCLENBQ2hELHlCQUNBLHNCQUNEO0FBSzRDLFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBa0IsSUFBRztBQUUxRCxRQUFBLHVCQUFvQixrQkFBQSxNQUFBLHdCQUFBO0FBSzFCLFFBQUssY0FDSCxJQUFJLGlCQUFpQixNQUFNO0lBQ3pCLGFBQWE7SUFDYixnQkFBZ0IsS0FBSyxvQkFBQTtJQUN0QixDQUFDLENBQ0g7O0VBR2dCLFdBQVcsbUJBQXlEO0FBQ3JGLFNBQU0sV0FBVyxrQkFBa0I7QUFFbkMsT0FBSSxrQkFBa0IsSUFBSSxPQUFPLElBQUksa0JBQWtCLElBQUksZUFBZSxDQUN4RSxNQUFLLHNCQUFzQjtBQUU3QixRQUFLLFlBQVkscUJBQXFCLENBQUMsQ0FBQyxLQUFLLHFCQUFxQjs7RUFHNUQsdUJBQW9CO0FBQzFCLFFBQUssTUFBTSxVQUFVLEtBQUssYUFDeEIsUUFBTyxPQUFPLEtBQUs7QUFHckIsUUFBSyx1QkFBdUIsS0FBSyxhQUFhLE1BQU0sV0FDbEQsT0FBTyxRQUFRLG9EQUF3QixDQUN4QztBQUNELFFBQUssb0JBQW9COztFQUdYLG9CQUFpQjtBQUMvQixTQUFNLG1CQUFtQjtBQUN6QixRQUFLLG9CQUFvQjs7RUFHbkIscUJBQWtCO0dBQ3hCLE1BQU0sZUFBZSxLQUFLLGNBQ3hCLDZEQUN3RDtBQUMxRCxPQUFJLGFBQ0YsTUFBSyxPQUFPLGFBQWE7O0VBSXRCLE9BQU8sUUFBNkQ7QUFDekUsT0FBSSxDQUFDLE9BQ0g7QUFFRixRQUFLLE9BQU87QUFDWixvQkFBaUIsT0FBTyxDQUFDLElBQUksZ0JBQWdCO0FBQzdDLFFBQUssdUJBQXVCO0FBQzVCLG9CQUFpQixLQUFLLG9CQUFvQixDQUFDOztFQUcxQixhQUFhLG1CQUF5RDtBQUN2RixTQUFNLGFBQWEsa0JBQWtCO0FBRXJDLG9CQUFpQixLQUFLLG9CQUFvQixDQUFDOztFQUd0QyxRQUFLO0FBQ1YsT0FBSSxLQUFLLHNCQUFzQjtBQUM3QixxQkFBaUIsS0FBSyxxQkFBcUIsQ0FBQyxPQUFPLGdCQUFnQjtBQUNuRSxTQUFLLHFCQUFxQixrQkFBa0IsT0FBTztBQUNuRCxTQUFLLHVCQUF1QixLQUFBOzs7RUFJeEIscUJBQWtCO0FBQ3hCLE9BQUksQ0FBQyxLQUFLLHFCQUNSO0dBR0YsTUFBTSxRQUFRLEtBQUssYUFBYSxRQUFRLEtBQUsscUJBQXNCO0dBQ25FLE1BQU0sUUFBUSxLQUFLLFdBQVksY0FDN0IsZ0JBQWdCLFFBQVEsRUFBQyxHQUMxQixFQUFFO0FBQ0gsT0FBSSxTQUFTLEtBQ1gsTUFBSyxPQUFPLFlBQVksc0NBQXNDLEdBQUcsTUFBSyxJQUFLOztFQUk1RCxTQUFNO0FBQ3ZCLFVBQU8sS0FBSyxZQUFZIn0=
@@ -343,4 +343,4 @@ var SbbNavigationSectionElement = (() => {
343
343
  //#endregion
344
344
  export { SbbNavigationSectionElement as t };
345
345
 
346
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC1EQklObGFUWC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG5cbiAgLy8gV2UgaGF2ZSB0byBwbGFjZSB0aGUgc3R5bGVzIG9uIHRoZSBob3N0IGFzIGl0IGhhcyB0byBiZSBhbGlnbmVkIG9uIHRoZSBncmlkIG9mIHRoZSBuYXZpZ2F0aW9uXG4gIGRpc3BsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheSwgbm9uZSk7XG4gIHBvc2l0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvc2l0aW9uKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aDogY2FsYyhcbiAgICAgIDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpICsgdmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSlcbiAgICApO1xuXG4gICAgdHJhbnNsYXRlOiBjYWxjKHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpICogLTEpIDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGFic29sdXRlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0KTtcbn1cblxuLy8gQWx3YXlzIHBsYWNlIHRoZSBzYmItYnV0dG9uIG9uIGEgbmV3IHJvd1xuOjpzbG90dGVkKDpzdGF0ZShzYmItYnV0dG9uKSkge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWhlaWdodCk7XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb2xvciwgdmFyKC0tc2JiLWNvbG9yLTEtbmVnYXRpdmUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyIHtcbiAgQGluY2x1ZGUgc2JiLnNjcm9sbGJhcigkbmVnYXRpdmU6IHRydWUpO1xuXG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyA0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2xhdGU6IGNhbGMoKDEwMCUgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkpICogLTEpIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctaGVhZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC1oZWFkaW5nKTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLWwpIHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgZGVsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2xhdGU7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zbGF0ZTogMCAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5Hb0JhY2ssXG4gIGlkUmVmZXJlbmNlLFxuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3RvcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQmVsb3csXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICB0eXBlIFNiYk9wZW5lZENsb3NlZFN0YXRlLFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3IgYHNiYi1uYXZpZ2F0aW9uLWxpc3RgIHdpdGhpbiBhIGBzYmItbmF2aWdhdGlvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBgc2JiLW5hdmlnYXRpb24tc2VjdGlvbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIG5hdiBlbGVtZW50IGFuZCBpcyByZWFkIGFzIGEgdGl0bGUgb2YgdGhlIG5hdmlnYXRpb24tc2VjdGlvbi5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFIaWRkZW4gPSB0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyA/ICd0cnVlJyA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3RMZXZlbE5hdmlnYXRpb24/OiBTYmJOYXZpZ2F0aW9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2xhc3RLZXlkb3duRXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyQ29udHJvbGxlciA9IG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHtcbiAgICBbU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93XTogKG1hdGNoZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJykge1xuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQobWF0Y2hlcyk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50ID0gZTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1c291dCcsIChlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGUucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICF0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkgJiZcbiAgICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyAmJlxuICAgICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50Py5rZXkgPT09ICdUYWInICYmXG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkVsZW1lbnQgPSB0aGlzLmNsb3Nlc3Q8U2JiTmF2aWdhdGlvbkVsZW1lbnQ+KCdzYmItbmF2aWdhdGlvbicpO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgbmF2aWdhdGlvbkVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KElTX0ZPQ1VTQUJMRV9RVUVSWSkgPz8gW10sXG4gICAgICAgICkuZmlsdGVyKChlKSA9PiAhdGhpcy5jb250YWlucyhlKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhc3RLZXlkb3duRXZlbnQuc2hpZnRLZXkgfHwgIWZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IGZvY3VzYWJsZUVsZW1lbnRzLmluZGV4T2YodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICAgIChmb2N1c2FibGVFbGVtZW50c1t0cmlnZ2VySW5kZXggKyAxXSA/PyBuYXZpZ2F0aW9uRWxlbWVudCEuY2xvc2VCdXR0b24pPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8ICF0aGlzLmhhc1VwZGF0ZWQgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc05hdmlnYXRpb25CdXR0b24odGhpcy5fdHJpZ2dlckVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25vcGVuaW5nJykpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICd0cnVlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5pbmVydCA9IGZhbHNlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lcicpPy5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICBpZiAodGhpcy5faXNCZWxvd0xhcmdlKCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPy5hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVuYXZpZ2F0aW9uc2VjdGlvbmNsb3NpbmcnKSk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOYXZpZ2F0aW9uQnV0dG9uKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHRyaWdnZXIgaXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0cmlnZ2VyPy5sb2NhbE5hbWUgPT09ICdzYmItbmF2aWdhdGlvbi1idXR0b24nO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkluZXJ0KGlzQmVsb3dMYXJnZTogYm9vbGVhbiA9IHRoaXMuX2lzQmVsb3dMYXJnZSgpKTogdm9pZCB7XG4gICAgY29uc3QgbmF2aWdhdGlvbkNvbnRlbnQgPSB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8ubmF2aWdhdGlvbkNvbnRlbnQ7XG4gICAgaWYgKG5hdmlnYXRpb25Db250ZW50KSB7XG4gICAgICBuYXZpZ2F0aW9uQ29udGVudC5pbmVydCA9IGlzQmVsb3dMYXJnZSAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2VkJztcbiAgICB9XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAgICc6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5mb3JFYWNoKChhY3Rpb24pID0+IMm1c3RhdGVDb250cm9sbGVyKGFjdGlvbikuZGVsZXRlKCdhY3Rpb24tYWN0aXZlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiBhY3Rpb24gY2xpY2sgb3Igc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZSBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgd2FzIHRyaWdnZXJlZCBvbiBhbiBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIHRoZSBzZWN0aW9uLlxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICAgLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0Nsb3NlRWxlbWVudChlbCkpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgICAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgfHxcbiAgICAgICAgICBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZScpKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNCZWxvd0xhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYU1hdGNoZXJDb250cm9sbGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93KSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScsXG4gICAgKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50KT8udG9nZ2xlKCdhY3Rpb24tYWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICduYXZpZ2F0aW9uLXNlY3Rpb24nO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPG5hdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25cIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0keyF0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/ICd0aXRsZScgOiBub3RoaW5nfVxuICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIDogbm90aGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fYmFja1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2VcbiAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX190aXRsZVwiIGlkPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUM2Q2EscUNBQTJCO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Y0FBcEYsb0NBQW9DLFlB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
346
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC1EdW1YRkZmZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG5cbiAgLy8gV2UgaGF2ZSB0byBwbGFjZSB0aGUgc3R5bGVzIG9uIHRoZSBob3N0IGFzIGl0IGhhcyB0byBiZSBhbGlnbmVkIG9uIHRoZSBncmlkIG9mIHRoZSBuYXZpZ2F0aW9uXG4gIGRpc3BsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheSwgbm9uZSk7XG4gIHBvc2l0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvc2l0aW9uKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aDogY2FsYyhcbiAgICAgIDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpICsgdmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSlcbiAgICApO1xuXG4gICAgdHJhbnNsYXRlOiBjYWxjKHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpICogLTEpIDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGFic29sdXRlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0KTtcbn1cblxuLy8gQWx3YXlzIHBsYWNlIHRoZSBzYmItYnV0dG9uIG9uIGEgbmV3IHJvd1xuOjpzbG90dGVkKDpzdGF0ZShzYmItYnV0dG9uKSkge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWhlaWdodCk7XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb2xvciwgdmFyKC0tc2JiLWNvbG9yLTEtbmVnYXRpdmUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyIHtcbiAgQGluY2x1ZGUgc2JiLnNjcm9sbGJhcigkbmVnYXRpdmU6IHRydWUpO1xuXG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyA0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2xhdGU6IGNhbGMoKDEwMCUgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkpICogLTEpIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctaGVhZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC1oZWFkaW5nKTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLWwpIHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgZGVsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2xhdGU7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zbGF0ZTogMCAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5Hb0JhY2ssXG4gIGlkUmVmZXJlbmNlLFxuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBvbWl0RW1wdHlDb252ZXJ0ZXIsXG4gIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3RvcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFNtYWxsQW5kQmVsb3csXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICB0eXBlIFNiYk9wZW5lZENsb3NlZFN0YXRlLFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3IgYHNiYi1uYXZpZ2F0aW9uLWxpc3RgIHdpdGhpbiBhIGBzYmItbmF2aWdhdGlvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBgc2JiLW5hdmlnYXRpb24tc2VjdGlvbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIG5hdiBlbGVtZW50IGFuZCBpcyByZWFkIGFzIGEgdGl0bGUgb2YgdGhlIG5hdmlnYXRpb24tc2VjdGlvbi5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFIaWRkZW4gPSB0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyA/ICd0cnVlJyA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3RMZXZlbE5hdmlnYXRpb24/OiBTYmJOYXZpZ2F0aW9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2xhc3RLZXlkb3duRXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyQ29udHJvbGxlciA9IG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHtcbiAgICBbU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93XTogKG1hdGNoZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJykge1xuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQobWF0Y2hlcyk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50ID0gZTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1c291dCcsIChlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGUucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICF0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkgJiZcbiAgICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyAmJlxuICAgICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50Py5rZXkgPT09ICdUYWInICYmXG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkVsZW1lbnQgPSB0aGlzLmNsb3Nlc3Q8U2JiTmF2aWdhdGlvbkVsZW1lbnQ+KCdzYmItbmF2aWdhdGlvbicpO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgbmF2aWdhdGlvbkVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KElTX0ZPQ1VTQUJMRV9RVUVSWSkgPz8gW10sXG4gICAgICAgICkuZmlsdGVyKChlKSA9PiAhdGhpcy5jb250YWlucyhlKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhc3RLZXlkb3duRXZlbnQuc2hpZnRLZXkgfHwgIWZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IGZvY3VzYWJsZUVsZW1lbnRzLmluZGV4T2YodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICAgIChmb2N1c2FibGVFbGVtZW50c1t0cmlnZ2VySW5kZXggKyAxXSA/PyBuYXZpZ2F0aW9uRWxlbWVudCEuY2xvc2VCdXR0b24pPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8ICF0aGlzLmhhc1VwZGF0ZWQgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc05hdmlnYXRpb25CdXR0b24odGhpcy5fdHJpZ2dlckVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25vcGVuaW5nJykpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICd0cnVlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5pbmVydCA9IGZhbHNlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lcicpPy5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICBpZiAodGhpcy5faXNCZWxvd0xhcmdlKCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPy5hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVuYXZpZ2F0aW9uc2VjdGlvbmNsb3NpbmcnKSk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOYXZpZ2F0aW9uQnV0dG9uKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHRyaWdnZXIgaXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0cmlnZ2VyPy5sb2NhbE5hbWUgPT09ICdzYmItbmF2aWdhdGlvbi1idXR0b24nO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkluZXJ0KGlzQmVsb3dMYXJnZTogYm9vbGVhbiA9IHRoaXMuX2lzQmVsb3dMYXJnZSgpKTogdm9pZCB7XG4gICAgY29uc3QgbmF2aWdhdGlvbkNvbnRlbnQgPSB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8ubmF2aWdhdGlvbkNvbnRlbnQ7XG4gICAgaWYgKG5hdmlnYXRpb25Db250ZW50KSB7XG4gICAgICBuYXZpZ2F0aW9uQ29udGVudC5pbmVydCA9IGlzQmVsb3dMYXJnZSAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2VkJztcbiAgICB9XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAgICc6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5mb3JFYWNoKChhY3Rpb24pID0+IMm1c3RhdGVDb250cm9sbGVyKGFjdGlvbikuZGVsZXRlKCdhY3Rpb24tYWN0aXZlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiBhY3Rpb24gY2xpY2sgb3Igc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZSBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgd2FzIHRyaWdnZXJlZCBvbiBhbiBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIHRoZSBzZWN0aW9uLlxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICAgLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0Nsb3NlRWxlbWVudChlbCkpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgICAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgfHxcbiAgICAgICAgICBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZScpKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNCZWxvd0xhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYU1hdGNoZXJDb250cm9sbGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93KSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScsXG4gICAgKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50KT8udG9nZ2xlKCdhY3Rpb24tYWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICduYXZpZ2F0aW9uLXNlY3Rpb24nO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPG5hdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25cIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0keyF0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/ICd0aXRsZScgOiBub3RoaW5nfVxuICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIDogbm90aGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fYmFja1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2VcbiAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX190aXRsZVwiIGlkPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUM2Q2EscUNBQTJCO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Y0FBcEYsb0NBQW9DLFlB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
@@ -312,4 +312,4 @@ var SbbNavigationElement = (() => {
312
312
  //#endregion
313
313
  export { SbbNavigationElement as t };
314
314
 
315
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtRGptMFBGT0EuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tM3gpXG4gICk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLWNsb3NlO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAtMTAwJSAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogJ2xhcmdlJykge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZXhwYW5kZWQtd2lkdGg6IDEwMGR2dztcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIuZ3JpZC1iYXNlO1xuXG4gIHBhZGRpbmctaW5saW5lOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcblxuICAgIC8vIE5hdmlnYXRpb24gYmFja2Ryb3AgKG5vdCB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5KTtcblxuICAgICAgYW5pbWF0aW9uOiB7XG4gICAgICAgIG5hbWU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLWFuaW1hdGlvbi1uYW1lKTtcbiAgICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eSwgaGlkZGVuKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cywgbm9uZSk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQsIDApO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb25fX3dyYXBwZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWV4cGFuZGVkLXdpZHRoKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpICsgMSk7XG59XG5cbi5zYmItbmF2aWdhdGlvbl9fY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zbGF0ZSk7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXIoJG5lZ2F0aXZlOiB0cnVlKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQpIHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb250ZW50LXRyYW5zbGF0ZSk7XG59XG5cbjo6c2xvdHRlZCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IC0xMDAlIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1vcGVuIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1jbG9zZSB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIFNiYkluZXJ0Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIG5hdmlnYXRpb24gbWVudSwgd3JhcHBpbmcgb25lIG9yIG1vcmUgYHNiYi1uYXZpZ2F0aW9uLSpgIGNvbXBvbmVudHMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbmAvYHNiYi1uYXZpZ2F0aW9uLWxpbmtgIGVsZW1lbnRzIGludG8gdGhlIHNiYi1uYXZpZ2F0aW9uIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvblwiXG4gICAgICAgICAgJHtyZWYoKG5hdmlnYXRpb25SZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25SZWYgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9faGVhZGVyXCI+JHtjbG9zZUJ1dHRvbn08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzbG90IG5hbWU9XCJuYXZpZ2F0aW9uLXNlY3Rpb25cIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbmF2aWdhdGlvbic6IFNiYk5hdmlnYXRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDc0NBLElBQU0sZ0JBQWdCOzs7Ozs7Ozs7SUFVVCw4QkFBb0I7bUJBQVMsd0JBQXdCLHdCQUF3Qjs7Ozs7Ozs7OztjQUE3RSw2QkFBNkIsWUFBZ0Q7OzswQkFXdkYsYUFBYSxFQUNiLFVBQVUsQ0FBQTswQ0FJVixXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsNkJBQTZCLENBQUMsQ0FBQTsyQ0FJcEQsT0FBTyxDQUFBO0FBUlIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFLdkIsZ0JBQUEsTUFBQSxNQUFBLHFDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsNkJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBdUIsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUF2QiwwQkFBdUI7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1Q0FBQSwyQ0FBQTtBQUc5QixnQkFBQSxNQUFBLE1BQUEsc0NBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSw4QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFpQjtLQUF3QixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQXhCLDJCQUF3Qjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHdDQUFBLDRDQUFBOzs7Ozs7Ozs7QUFwQmxCLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLHNCQUF3QyxDQUFDLDRCQUE0Qjs7O0FBQzVELFFBQUEsT0FBTzs7O0FBQ2hCLFFBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxtQkFBTSxDQUFDOztFQVNuRjs7Ozs7O0VBQUEsSUFBZ0IsVUFBTztBQUFBLFVBQUEsTUFBQTs7RUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEsU0FBQSwyQkFBQTs7RUFLdkI7O0VBQUEsSUFBZ0IsMEJBQXVCO0FBQUEsVUFBQSxNQUFBOztFQUF2QyxJQUFnQix3QkFBdUIsT0FBQTtBQUFBLFNBQUEsMkNBQUE7O0VBRzlCOztFQUFBLElBQWlCLDJCQUF3QjtBQUFBLFVBQUEsTUFBQTs7RUFBekMsSUFBaUIseUJBQXdCLE9BQUE7QUFBQSxTQUFBLDRDQUFBOzs7RUFHbEQsSUFBVywwQkFBdUI7QUFDaEMsVUFBTyxLQUFLOzs7RUFJZCxJQUFXLGNBQVc7QUFDcEIsVUFBTyxLQUFLLFlBQVksY0FBYywrQkFBK0IsSUFBSTs7O0VBSTNFLElBQVcsb0JBQWlCO0FBQzFCLFVBQU8sS0FBSyxZQUFZLGNBQWMsMkJBQTJCLElBQUk7O0VBa0J2RSxjQUFBO0FBQ0UsVUFBTztBQXpDTyxTQUFBLDJCQUFBLGtCQUFBLE1BQUEsdUJBQThCLEtBQUk7QUFLbEMsU0FBQSw0Q0FBQSxrQkFBQSxNQUFBLDJCQUFBLEVBQUEsa0JBQUEsTUFBQSx1Q0FBa0MsR0FBRTtBQUcxQixTQUFBLDZDQUFBLGtCQUFBLE1BQUEsMkNBQUEsRUFBQSxrQkFBQSxNQUFBLHdDQUErRCxLQUFJO0FBaUJyRixRQUFBLGNBQVcsa0JBQUEsTUFBQSw0Q0FBQTtBQUNYLFFBQUEsa0JBQXNDO0FBRXRDLFFBQUEsWUFBWSxJQUFJLHNCQUFzQixLQUFLO0FBQzNDLFFBQUEsbUJBQW1CLElBQUksbUJBQW1CLEtBQUs7QUFDL0MsUUFBQSw4QkFBOEIsSUFBSSw4QkFBOEIsS0FBSztBQUNyRSxRQUFBLHVCQUF1QixJQUFJLHVCQUF1QixLQUFLO0FBQ3ZELFFBQUEsaUJBQWlCLElBQUksa0JBQWtCO0FBQ3ZDLFFBQUEsa0NBQTJDO0FBQzNDLFFBQUEseUJBQStEO0FBQy9ELFFBQUEsNEJBQTRCLElBQUksaUJBQWlCLE1BQU07SUFDN0QsYUFBYTtJQUNiLGdCQUFnQixLQUFLLHFCQUFBO0lBQ3RCLENBQUM7QUErS00sUUFBQSx3QkFBd0IsVUFBNkI7QUFDM0QsU0FBSyxrQ0FDSCxpQkFBaUIsS0FBSyxhQUFhLE1BQU0sSUFDekMsaUJBQ0UsS0FBSyxjQUFjLHdFQUE2QyxFQUFFLFlBQVksY0FDNUUsNkJBQ2MsRUFDaEIsTUFDRDs7QUFJRyxRQUFBLHlCQUF5QixVQUE2QjtBQUM1RCxRQUFJLENBQUMsS0FBSyxtQ0FBbUMsQ0FBQyxpQkFBaUIsS0FBSyxhQUFhLE1BQU0sQ0FDckYsTUFBSyxPQUFPOztBQXpMZCxRQUFLLG1CQUFtQixVQUFVLFVBQVUsS0FBSyx1QkFBdUIsTUFBTSxDQUFDO0FBQy9FLFFBQUssbUJBQW1CLGNBQWMsVUFBVSxLQUFLLHNCQUFzQixNQUFNLENBQUM7QUFDbEYsUUFBSyxtQkFBbUIsZ0JBQWdCLFVBQVUsS0FBSyxxQkFBcUIsTUFBTSxDQUFDO0FBQ25GLFFBQUssbUJBQ0gsOEJBQ0MsVUFBUztBQUNSLFNBQUssMkJBQTJCLE1BQU07QUFDdEMsU0FBSyxZQUFZLCtCQUErQixDQUFDLENBQUMsS0FBSyx5QkFBeUI7TUFFbEYsRUFBRSxTQUFTLE1BQU0sQ0FDbEI7QUFDRCxRQUFLLG1CQUNILDhCQUNDLFVBQVM7QUFDUixRQUFJLEtBQUssNkJBQTZCLE1BQU0sUUFBUTtBQUNsRCxVQUFLLDJCQUEyQjtBQUNoQyxVQUFLLFVBQVUsT0FBTyxPQUFPLDhCQUE4Qjs7TUFHL0QsRUFBRSxTQUFTLE1BQU0sQ0FDbEI7OztFQUlJLE9BQUk7QUFDVCxPQUFJLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBSyxjQUFjLENBQUMsS0FBSyx5QkFBeUIsQ0FDaEY7QUFHRixRQUFLLGVBQWU7QUFDcEIsUUFBSyxRQUFRO0FBQ2IsUUFBSyxxQkFBcUI7QUFDMUIsUUFBSyxxQkFBcUI7QUFDMUIsUUFBSyxhQUFhO0FBR2xCLFFBQUssZUFBZSxlQUFlO0FBQ25DLE9BQUksS0FBSyxnQkFDUCxNQUFLLGdCQUFnQixlQUFlO0FBS3RDLE9BQUksS0FBSywwQkFBMEIsQ0FDakMsTUFBSyxnQkFBZ0I7O0VBSWpCLHNCQUFtQjtBQUNKLFFBQUssY0FDeEIsbUNBRUYsRUFBYyxrQkFBa0IsTUFBTTs7RUFHaEMsc0JBQW1CO0FBQ0gsU0FBTSxLQUMxQixLQUFLLGlCQUFpQiw2REFBNkQsQ0FFckYsRUFBZSxTQUFTLFdBQVcsT0FBTyxRQUFRLE9BQU8sT0FBTyxDQUFDOzs7RUFJNUQsUUFBSztBQUNWLE9BQUksS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFLLDBCQUEwQixDQUM3RDtBQUdGLFFBQUssUUFBUTtBQUNiLFFBQUssYUFBYTtBQUNsQixPQUFJLEtBQUssZ0JBQ1AsTUFBSyxnQkFBZ0IsZUFBZTtBQUt0QyxPQUFJLEtBQUssMEJBQTBCLENBQ2pDLE1BQUssZ0JBQWdCOztFQUlqQiwyQkFBd0I7QUFDOUIsVUFBTyx3QkFBd0IsTUFBTSxzQ0FBc0M7O0VBR3JFLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLFFBQUssZUFBZTtBQUNwQixRQUFLLG1CQUFtQixTQUFTLEdBQUcsRUFBRTtBQUN0QyxRQUFLLGlCQUFpQixZQUFZO0FBQ2xDLFFBQUssaUJBQWlCLE9BQU87QUFDN0IsUUFBSyw0QkFBNEIsWUFBWTtBQUM3QyxRQUFLLG9CQUFvQjtBQUN6QixRQUFLLDBCQUEwQixVQUFVLEtBQUs7QUFDOUMsUUFBSyxlQUFlO0FBQ3BCLFFBQUsscUJBQXFCLFVBQVU7QUFHcEMsUUFBSyxlQUFlLGNBQWM7QUFDbEMsUUFBSyxnQkFBZ0I7O0VBR2YsaUJBQWM7QUFDcEIsUUFBSyxRQUFRO0FBQ2IsUUFBSywwQkFBMEIsUUFBUSxLQUFLO0FBQzVDLFFBQUssaUJBQWlCLFVBQVU7QUFDaEMsUUFBSyw0QkFBNEIsU0FBUztBQUMxQyxRQUFLLHFCQUFxQixxQkFBcUI7QUFDL0MsUUFBSyxxQkFBcUIsVUFBVTtBQUNwQyxRQUFLLGdCQUFnQjtBQUNyQixRQUFLLG1CQUFtQjs7RUFLbEIsb0JBQWlCO0FBQ3ZCLE9BQUksS0FBSyxZQUFZLEtBQUssZ0JBQ3hCO0FBR0YsUUFBSyx5QkFBeUIsT0FBTztBQUNyQyxzQ0FBbUMsS0FBSyxnQkFBZ0I7QUFDeEQsUUFBSyxrQkFBa0IsS0FBSztBQUU1QixPQUFJLENBQUMsS0FBSyxnQkFDUjtBQUdGLG1DQUFnQyxNQUFNLEtBQUssaUJBQWlCLFFBQVEsS0FBSyxNQUFNO0FBQy9FLFFBQUssMEJBQTBCLElBQUksaUJBQWlCO0FBQ3BELFFBQUssZ0JBQWdCLGlCQUFpQixlQUFlLEtBQUssTUFBTSxFQUFFLEVBQ2hFLFFBQVEsS0FBSyx3QkFBd0IsUUFDdEMsQ0FBQzs7RUFLSSxnQkFBZ0IsT0FBcUI7QUFDM0MsT0FBSSxNQUFNLGtCQUFrQixVQUFVLEtBQUssVUFBVSxVQUNuRCxNQUFLLGdCQUFnQjtZQUNaLE1BQU0sa0JBQWtCLFdBQVcsS0FBSyxVQUFVLFVBQzNELE1BQUssZ0JBQWdCOztFQUlqQixnQkFBYTtBQUNHLFNBQU0sS0FDMUIsS0FBSyxpQkFDSCxvSEFDRCxDQUVILEVBQWUsU0FBUyxXQUFXLE9BQU8sUUFBUSxPQUFPLENBQUM7O0VBR3BELHVCQUF1QixPQUFZO0FBSXpDLE9BSDZCLE1BQzFCLGNBQWMsQ0FDZCxRQUFRLE9BQU8sY0FBYyxPQUFPLFlBQ25DLENBQXFCLE1BQU0sT0FBTyxLQUFLLGdCQUFnQixHQUFrQixDQUFDLENBQzVFLE1BQUssT0FBTzs7RUFJUixnQkFBZ0IsU0FBb0I7QUFDMUMsVUFDRSxRQUFRLGFBQWEsT0FDcEIsUUFBUSxhQUFhLHVCQUF1QixJQUFJLENBQUMsUUFBUSxhQUFhLFdBQVc7O0VBdUI5RSxzQkFBbUI7QUFDekIsT0FBSSxLQUFLLFVBQVUsU0FDakI7QUFHRixPQUFJLEtBQUssdUJBQ1AsY0FBYSxLQUFLLHVCQUF1QjtBQUczQyxRQUFLLFVBQVUsT0FBTyxJQUFJLDJCQUEyQjtBQUdyRCxRQUFLLHlCQUF5QixpQkFDdEIsS0FBSyxVQUFVLE9BQU8sT0FBTywyQkFBMkIsRUFDOUQsY0FDRDs7RUFHYSxvQkFBaUI7QUFDL0IsU0FBTSxtQkFBbUI7QUFDekIsUUFBSyxVQUFVO0FBQ2YsT0FBSSxLQUFLLFdBQ1AsTUFBSyxtQkFBbUI7O0VBSVosdUJBQW9CO0FBQ2xDLFNBQU0sc0JBQXNCO0FBQzVCLFFBQUssa0JBQWtCO0FBQ3ZCLFFBQUsseUJBQXlCLE9BQU87QUFDckMsUUFBSyxlQUFlLGNBQWM7O0VBR3BCLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0FBRTdCLFNBQU0sY0FBYyxNQUFNLFVBQVUsUUFBUTtBQUU1QyxPQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsU0FBUyxjQUFjLEtBQUssV0FDckQsTUFBSyxtQkFBbUI7O0VBSVQsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUNyQyxRQUFLLG1CQUFtQjs7RUFHUCxTQUFNO0dBQ3ZCLE1BQU0sY0FBYyxJQUFJOzs7O3FCQUlQLEtBQUssMkJBQTJCLG9CQUFvQixLQUFLLFVBQVUsU0FBQTs7Ozs7Ozs7QUFTcEYsVUFBTyxJQUFJOzs7OzBCQUlXLEtBQUssZ0JBQUE7O1lBRW5CLEtBQUssa0JBQTZCLEtBQUssY0FBYyxjQUFpQyxDQUFBOztnREFFbEQsWUFBVyJ9
315
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtQ3BvQkVQNTUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tM3gpXG4gICk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLWNsb3NlO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAtMTAwJSAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogJ2xhcmdlJykge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZXhwYW5kZWQtd2lkdGg6IDEwMGR2dztcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIuZ3JpZC1iYXNlO1xuXG4gIHBhZGRpbmctaW5saW5lOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcblxuICAgIC8vIE5hdmlnYXRpb24gYmFja2Ryb3AgKG5vdCB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5KTtcblxuICAgICAgYW5pbWF0aW9uOiB7XG4gICAgICAgIG5hbWU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLWFuaW1hdGlvbi1uYW1lKTtcbiAgICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eSwgaGlkZGVuKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cywgbm9uZSk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQsIDApO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb25fX3dyYXBwZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWV4cGFuZGVkLXdpZHRoKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpICsgMSk7XG59XG5cbi5zYmItbmF2aWdhdGlvbl9fY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zbGF0ZSk7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXIoJG5lZ2F0aXZlOiB0cnVlKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQpIHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb250ZW50LXRyYW5zbGF0ZSk7XG59XG5cbjo6c2xvdHRlZCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IC0xMDAlIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1vcGVuIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1jbG9zZSB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIFNiYkluZXJ0Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIG5hdmlnYXRpb24gbWVudSwgd3JhcHBpbmcgb25lIG9yIG1vcmUgYHNiYi1uYXZpZ2F0aW9uLSpgIGNvbXBvbmVudHMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbmAvYHNiYi1uYXZpZ2F0aW9uLWxpbmtgIGVsZW1lbnRzIGludG8gdGhlIHNiYi1uYXZpZ2F0aW9uIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvblwiXG4gICAgICAgICAgJHtyZWYoKG5hdmlnYXRpb25SZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25SZWYgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9faGVhZGVyXCI+JHtjbG9zZUJ1dHRvbn08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzbG90IG5hbWU9XCJuYXZpZ2F0aW9uLXNlY3Rpb25cIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbmF2aWdhdGlvbic6IFNiYk5hdmlnYXRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDc0NBLElBQU0sZ0JBQWdCOzs7Ozs7Ozs7SUFVVCw4QkFBb0I7bUJBQVMsd0JBQXdCLHdCQUF3Qjs7Ozs7Ozs7OztjQUE3RSw2QkFBNkIsWUFBZ0Q7OzswQkFXdkYsYUFBYSxFQUNiLFVBQVUsQ0FBQTswQ0FJVixXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsNkJBQTZCLENBQUMsQ0FBQTsyQ0FJcEQsT0FBTyxDQUFBO0FBUlIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFLdkIsZ0JBQUEsTUFBQSxNQUFBLHFDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsNkJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBdUIsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUF2QiwwQkFBdUI7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1Q0FBQSwyQ0FBQTtBQUc5QixnQkFBQSxNQUFBLE1BQUEsc0NBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSw4QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFpQjtLQUF3QixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQXhCLDJCQUF3Qjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHdDQUFBLDRDQUFBOzs7Ozs7Ozs7QUFwQmxCLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLHNCQUF3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
@@ -1,10 +1,10 @@
1
- import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-Cv1AOqUk.js";
1
+ import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-CEFNy2YF.js";
2
2
  import { SbbNavigationButtonElement } from "./navigation/navigation-button/navigation-button.component.js";
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
- import { t as SbbNavigationListElement } from "./navigation-list.component-CQ4q671G.js";
5
- import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D7ks8vbC.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DBINlaTX.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-Djm0PFOA.js";
4
+ import { t as SbbNavigationListElement } from "./navigation-list.component-Djgm6YPH.js";
5
+ import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-B2yzOStm.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-DumXFFfg.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-CpoBEP55.js";
8
8
  import "./navigation.pure.js";
9
9
  //#region src/elements/navigation.ts
10
10
  /** @entrypoint */
@@ -1,8 +1,8 @@
1
- import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-Cv1AOqUk.js";
1
+ import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-CEFNy2YF.js";
2
2
  import { SbbNavigationButtonElement } from "./navigation/navigation-button/navigation-button.component.js";
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
- import { t as SbbNavigationListElement } from "./navigation-list.component-CQ4q671G.js";
5
- import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D7ks8vbC.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DBINlaTX.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-Djm0PFOA.js";
4
+ import { t as SbbNavigationListElement } from "./navigation-list.component-Djgm6YPH.js";
5
+ import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-B2yzOStm.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-DumXFFfg.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-CpoBEP55.js";
8
8
  export { SbbNavigationActionCommonElementMixin, SbbNavigationButtonElement, SbbNavigationElement, SbbNavigationLinkElement, SbbNavigationListElement, SbbNavigationMarkerElement, SbbNavigationSectionElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbNotificationElement } from "../notification.component-BgF5aGrn.js";
1
+ import { t as SbbNotificationElement } from "../notification.component-CqmGbIWI.js";
2
2
  export { SbbNotificationElement };
@@ -268,4 +268,4 @@ var SbbNotificationElement = (() => {
268
268
  //#endregion
269
269
  export { SbbNotificationElement as t };
270
270
 
271
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC1CZ0Y1YUdybi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4vLyBPcGVuL0Nsb3NlIGFuaW1hdGlvbiB2YXJzXG4kb3Blbi1hbmltLW1hcmdpbi1mcm9tOiAwO1xuJG9wZW4tYW5pbS1tYXJnaW4tdG86IHZhcigtLXNiYi1ub3RpZmljYXRpb24tbWFyZ2luLCAwKTtcbiRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tOiAwO1xuJG9wZW4tYW5pbS1vcGFjaXR5LXRvOiAxO1xuJG9wZW4tYW5pbS1oZWlnaHQtZnJvbTogMDtcbiRvcGVuLWFuaW0taGVpZ2h0LXRvOiBjYWxjKFxuICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWhlaWdodCkgKyAodmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpICogMilcbik7XG5cbjpob3N0IHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgNSUsIHdoaXRlKSxcbiAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKSAzNSUsIHdoaXRlKVxuICApO1xuICAtLXNiYi1ub3RpZmljYXRpb24taWNvbi1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci1yYWRpdXMtc3RhcnQ6IGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC8gMik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1mb250LXNpemU6IDFlbTtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWluc2V0LWlubGluZS1zdGFydDogY2FsYyhcbiAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aClcbiAgKTtcblxuICAvLyBBcyB0aGUgbm90aWZpY2F0aW9uIGhhcyBhbHdheXMgYSBsaWdodCBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgbm90aWZpY2F0aW9uIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG4vLyBCeSBkZWZhdWx0LCB0aGUgb3BlbiBhbmltYXRpb24gaXMgZGlzYWJsZWRcbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKTpub3QoW2FuaW1hdGlvbj0nb3BlbiddLCBbYW5pbWF0aW9uPSdhbGwnXSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZyk6bm90KFthbmltYXRpb249J2Nsb3NlJ10sIFthbmltYXRpb249J2FsbCddKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoOnN0YXRlKHNsb3R0ZWQtdGl0bGUpKSB7XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWZvbnQtc2l6ZTogdmFyKC0tc2JiLWhlYWRpbmctZm9udC1zaXplLTUpO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1saW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtaGVhZGluZyk7XG59XG5cbjpob3N0KDpzdGF0ZShzbG90dGVkLXRpdGxlKVtzaXplPSdzJ10pIHtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNik7XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHh4cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHh4cylcbiAgICB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpO1xuICB9XG59XG5cbi8vIFR5cGVzXG46aG9zdCg6aXMoOm5vdChbdHlwZV0pLCBbdHlwZT0naW5mbyddKSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29sb3IpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAyMCU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogMjAlO1xufVxuXG46aG9zdChbdHlwZT0nbm90ZSddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itc2t5KTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodDogMjAlO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWRhcms6IDIwJTtcbn1cblxuOmhvc3QoW3R5cGU9J3N1Y2Nlc3MnXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXN1Y2Nlc3MpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAxNSU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogMzAlO1xufVxuXG46aG9zdChbdHlwZT0nd2FybiddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itd2FybmluZyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodDogMjUlO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWRhcms6IDQwJTtcbn1cblxuOmhvc3QoW3R5cGU9J2Vycm9yJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3I6IHZhcigtLXNiYi1jb2xvci1lcnJvcik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQ6IDEwJTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1kYXJrOiAyNSU7XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLV9zYmItbm90aWZpY2F0aW9uLWluc2V0LWlubGluZS1zdGFydCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pbnNldC1pbmxpbmUtc3RhcnQpKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXJhZGl1cy1zdGFydClcbiAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIG1heC1oZWlnaHQ6ICN7JG9wZW4tYW5pbS1oZWlnaHQtZnJvbX07XG4gIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi1mcm9tfTtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aCkgKiAtMSlcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKSBjYWxjKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXdpZHRoKSAqIC0xKVxuICAgICAgY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgKiAtMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LXRvfTtcbiAgICBtYXJnaW46ICN7JG9wZW4tYW5pbS1tYXJnaW4tdG99O1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSAmIHtcbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBmaWxsLW1vZGU6IGZvcndhcmRzO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZSwgY2xvc2UtaGVpZ2h0O1xuICAgICAgZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1ub3RpZmljYXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICAgIGRlbGF5OiAwcywgdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTJ4KSk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctYmxvY2spO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIGNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KVxuICAgIGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpKVxuICAgIGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpKVxuICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0byBhdXRvO1xuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX19pY29uLFxuOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIGNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3IpO1xuICBhbGlnbi1zZWxmOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tYWxpZ24tc2VsZik7XG5cbiAgLy8gVGhpcyBpcyBhbiB1bmRvY3VtZW50ZWQgZmVhdHVyZSBmb3Igc2JiLmNoLCB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGhpZGUgdGhlIGljb24uXG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tc2l6ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogbWF4KFxuICAgICAgMHJlbSxcbiAgICAgIGNhbGMoXG4gICAgICAgIChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplKSAqXG4gICAgICAgICAgICAgICAgICB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtbGluZS1oZWlnaHQpXG4gICAgICAgICAgICAgICkgLSB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKVxuICAgICAgICAgICkgL1xuICAgICAgICAgIDJcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX19jb250ZW50IHtcbiAgLy8gVGhlIGNvbnRlbnQgb2YgdGhlIG5vdGlmaWNhdGlvbiBpcyBhbHdheXMgZGlzcGxheWVkIGluIHBvc2l0aXZlIG1vZGUsXG4gIC8vIHRoZXJlZm9yZSwgdG8gaGF2ZSBzbG90dGVkIGNvbnRlbnQgY29ycmVjdGx5IGRpc3BsYXksIHdlIG5lZWQgb25seSBhbGxvdyBsaWdodCBtb2RlLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG4gIG9yZGVyOiAzO1xuICBncmlkLWFyZWE6IDIgLyAxIC8gMyAvIDM7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1jb250ZW50LW1hcmdpbi1ibG9jay1zdGFydCk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG9yZGVyOiBpbml0aWFsO1xuICAgIGdyaWQtYXJlYTogaW5pdGlhbDtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29udGVudC1wYWRkaW5nLWlubGluZSk7XG4gIH1cbn1cblxuLnNiYi1ub3RpZmljYXRpb25fX3RleHQge1xuICAvLyBSZXNldCBwYXJhZ3JhcGggc3R5bGVzXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2JiLW5vdGlmaWNhdGlvbl9fZGl2aWRlciB7XG4gIC0tc2JiLWRpdmlkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgY29sb3ItbWl4KFxuICAgICAgaW4gc3JnYixcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQpLFxuICAgICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKVxuICAgICksXG4gICAgY29sb3ItbWl4KFxuICAgICAgaW4gc3JnYixcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyayksXG4gICAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3IpXG4gICAgKVxuICApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY2xvc2Utd3JhcHBlci1nYXApO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSAqIDIpKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LWZyb219O1xuICAgIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi1mcm9tfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC10b307XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLXRvfTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICAgIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi10b307XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLWZyb219O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2UtaGVpZ2h0IHtcbiAgZnJvbSB7XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC10b307XG4gIH1cblxuICB0byB7XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC1mcm9tfTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXRpdGxlKSB7XG4gIC8vIE92ZXJ3cml0ZSBzYmItdGl0bGUgZGVmYXVsdCBtYXJnaW5cbiAgbWFyZ2luOiAwO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGkxOG5DbG9zZU5vdGlmaWNhdGlvbixcbiAgaXNMZWFuLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgU2JiRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICB0eXBlIFNiYk9wZW5lZENsb3NlZFN0YXRlLFxuICBTYmJSZWFkb25seU1peGluLFxufSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUVsZW1lbnQgfSBmcm9tICcuLi90aXRsZS5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbm90aWZpY2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3Qgbm90aWZpY2F0aW9uVHlwZXMgPSBuZXcgTWFwKFtcbiAgWydpbmZvJywgJ2NpcmNsZS1pbmZvcm1hdGlvbi1zbWFsbCddLFxuICBbJ25vdGUnLCAnY2lyY2xlLWluZm9ybWF0aW9uLXNtYWxsJ10sXG4gIFsnc3VjY2VzcycsICdjaXJjbGUtdGljay1zbWFsbCddLFxuICBbJ3dhcm4nLCAnY2lyY2xlLWV4Y2xhbWF0aW9uLXBvaW50LXNtYWxsJ10sXG4gIFsnZXJyb3InLCAnY2lyY2xlLWNyb3NzLXNtYWxsJ10sXG5dKTtcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBtZXNzYWdlcyB3aGljaCByZXF1aXJlIGEgdXNlcidzIGF0dGVudGlvbiB3aXRob3V0IGludGVycnVwdGluZyBpdHMgdGFza3MuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1ub3RpZmljYXRpb25gLiBDb250ZW50IHNob3VsZCBjb25zaXN0IG9mIGFuIG9wdGlvbmFsIGBzYmItdGl0bGVgIGVsZW1lbnQgYW5kIHRleHQgY29udGVudC5cbiAqIEBzbG90IHRpdGxlIC0gU2xvdCBmb3IgdGhlIHRpdGxlLiBGb3IgdGhlIHN0YW5kYXJkIGBzYmItdGl0bGVgIGVsZW1lbnQsIHRoZSBzbG90IGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgd2hlbiBzbG90dGVkIGluIHRoZSB1bm5hbWVkIHNsb3QuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBkaXNwbGF5IGEgY3VzdG9tIGljb24gYnkgcHJvdmlkaW5nIGFuIGBzYmItaWNvbmAgY29tcG9uZW50LlxuICogQGNzc3Byb3AgWy0tc2JiLW5vdGlmaWNhdGlvbi1tYXJnaW49MF0gLSBDYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlIG1hcmdpbiBpbiBvcmRlciB0byBnZXQgYSBzbW9vdGhlciBhbmltYXRpb24uXG4gKiBTZWUgc3R5bGUgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk5vdGlmaWNhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYlJlYWRvbmx5TWl4aW4oU2JiRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1ub3RpZmljYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiU2Vjb25kYXJ5QnV0dG9uRWxlbWVudCxcbiAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSB0eXBlIG9mIHRoZSBub3RpZmljYXRpb24uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHR5cGU6XG4gICAgfCAnaW5mbydcbiAgICB8ICdub3RlJ1xuICAgIHwgJ3N1Y2Nlc3MnXG4gICAgfCAnd2FybidcbiAgICB8ICdlcnJvcicgPSAnaW5mbyc7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBlbmFibGVkIGFuaW1hdGlvbnMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGFuaW1hdGlvbjogJ29wZW4nIHwgJ2Nsb3NlJyB8ICdhbGwnIHwgJ25vbmUnID0gJ2FsbCc7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbkVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fb25Ob3RpZmljYXRpb25SZXNpemUoKSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUaXRsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgICAvKiogRW1pdHMgd2hlbiB0aGUgb3BlbmluZyBhbmltYXRpb24gc3RhcnRzLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3Jlb3BlbicpKTtcblxuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnb3BlbmVkJyAmJiB0aGlzLl9kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG5cbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBjbG9zaW5nIGFuaW1hdGlvbiBzdGFydHMuIENhbiBiZSBjYW5jZWxlZCB0byBwcmV2ZW50IHRoZSBjb21wb25lbnQgZnJvbSBjbG9zaW5nLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5zYmItbm90aWZpY2F0aW9uX193cmFwcGVyJyxcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbXBvbmVudCdzIGB1cGRhdGVDb21wbGV0ZWAgaW4gb3JkZXIgdG8gc2V0IHRoZSBjb3JyZWN0XG4gICAgLy8gaGVpZ2h0IHRvIHRoZSBub3RpZmljYXRpb24gZWxlbWVudC5cbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0Tm90aWZpY2F0aW9uSGVpZ2h0KCk7XG4gICAgICB0aGlzLl9vcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX25vdGlmaWNhdGlvbkVsZW1lbnQ/LnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub3RpZmljYXRpb25IZWlnaHQgPSBgJHt0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50LnNjcm9sbEhlaWdodH1weGA7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbm90aWZpY2F0aW9uLWhlaWdodCcsIG5vdGlmaWNhdGlvbkhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9vbk5vdGlmaWNhdGlvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuXG4gICAgLy8gVG8gYXZvaWQgUmVzaXplT2JzZXJ2ZXIgbG9vcHMsIHdlIHNldCB0aGUgaGVpZ2h0IGEgdGljayBsYXRlci5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTm90aWZpY2F0aW9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1oZWlnaHQnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wZW5pbmcgYW5pbWF0aW9uIGVuZHMuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY2xvc2luZyBhbmltYXRpb24gZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25SZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoKGVsKSA9PiBlbC5sb2NhbE5hbWUgPT09ICdzYmItdGl0bGUnKTtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRpdGxlLnNsb3QgPSAndGl0bGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRpdGxlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiVGl0bGVFbGVtZW50Pignc2JiLXRpdGxlJyk7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRpdGxlKTtcbiAgICAgIHRpdGxlLnZpc3VhbExldmVsID0gdGhpcy5zaXplID09PSAnbScgPyAnNScgOiAnNic7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckljb25OYW1lKCkgfHwgbm90aWZpY2F0aW9uVHlwZXMuZ2V0KHRoaXMudHlwZSkhO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5vdGlmaWNhdGlvbl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk5vdGlmaWNhdGlvbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uXCI+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCdzYmItbm90aWZpY2F0aW9uX19pY29uJyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jb250ZW50XCI+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgJHshdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxzYmItZGl2aWRlciBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX2RpdmlkZXJcIiBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7aTE4bkNsb3NlTm90aWZpY2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jbG9zZVwiXG4gICAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbm90aWZpY2F0aW9uJzogU2JiTm90aWZpY2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM2QkEsSUFBTSxvQkFBb0IsSUFBSSxJQUFJO0NBQ2hDLENBQUMsUUFBUSwyQkFBMkI7Q0FDcEMsQ0FBQyxRQUFRLDJCQUEyQjtDQUNwQyxDQUFDLFdBQVcsb0JBQW9CO0NBQ2hDLENBQUMsUUFBUSxpQ0FBaUM7Q0FDMUMsQ0FBQyxTQUFTLHFCQUFBO0NBQ1gsQ0FBQztBQUVGLElBQU0sZ0JBQWdCOzs7Ozs7Ozs7O0lBV1QsZ0NBQXNCO21CQUFTLGlCQUFpQixpQkFBaUIsV0FBVyxDQUFDOzs7Ozs7Ozs7O2NBQTdFLCtCQUErQixZQUE4Qzs7O3VCQWV2RixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7NEJBRzNCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBZEMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFXcEIsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFHcEIsZ0JBQUEsTUFBQSxNQUFBLHVCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFTLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBVCxZQUFTOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEseUJBQUEsNkJBQUE7Ozs7Ozs7OztBQTVCdEIsUUFBQSxjQUFzQjs7O0FBQy9CLFFBQUEsc0JBQXdDLENBQzdELDJCQUNBLGtCQUNEOzs7QUFDc0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLHFCQUFNLENBQUM7OztBQUM1RCxRQUFBLFNBQVM7SUFDOUIsWUFBWTtJQUNaLE1BQU07SUFDTixhQUFhO0lBQ2IsT0FBTztJQUNDOztFQUdtQjs7RUFBQSxJQUFnQixPQUFJO0FBQUEsVUFBQSxNQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSxTQUFBLHdCQUFBOztFQVdwQjs7Ozs7RUFBQSxJQUFnQixPQUFJO0FBQUEsVUFBQSxNQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSxTQUFBLHdCQUFBOztFQUdwQjs7RUFBQSxJQUFnQixZQUFTO0FBQUEsVUFBQSxNQUFBOztFQUF6QixJQUFnQixVQUFTLE9BQUE7QUFBQSxTQUFBLDZCQUFBOzs7RUFHdEQsSUFBWSxPQUFPLE9BQTJCO0FBQzVDLE9BQUksS0FBSyxlQUNQLE1BQUssVUFBVSxPQUFPLE9BQU8sU0FBUyxLQUFLLGlCQUFpQjtBQUU5RCxRQUFLLGlCQUFpQjtBQUN0QixPQUFJLEtBQUssZUFDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFNBQVMsS0FBSyxpQkFBaUI7O0VBRzdELElBQVksU0FBTTtBQUNoQixVQUFPLEtBQUs7O0VBYWQsY0FBQTtBQUNFLFVBQU87QUF6Q29DLFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFLL0IsT0FBTTtBQU15QixTQUFBLHlCQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLG9CQUFrQixRQUFRLEdBQUcsTUFBTSxJQUFHO0FBR3RDLFNBQUEsOEJBQUEsa0JBQUEsTUFBQSx3QkFBQSxFQUFBLGtCQUFBLE1BQUEseUJBQStDLE1BQUs7QUFlekYsUUFBQSxpQkFBYyxrQkFBQSxNQUFBLDZCQUFBO0FBR2QsUUFBQSx5QkFBK0Q7QUFDL0QsUUFBQSxZQUFZLElBQUksc0JBQXNCLEtBQUs7QUFDM0MsUUFBQSw4QkFBOEIsSUFBSSxpQkFBaUIsTUFBTTtJQUMvRCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGdCQUFnQixLQUFLLHVCQUFBO0lBQ3RCLENBQUM7QUFJQSxRQUFLLFNBQVM7O0VBR0csV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLE9BQU8sQ0FDL0IsTUFBSyxpQkFBaUI7O0VBSWxCLFFBQUs7QUFDWCxPQUFJLEtBQUssV0FBVyxVQUFVO0FBQzVCLFNBQUssU0FBUzs7QUFFZCxTQUFLLGNBQWMsSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUkzQyxRQUFJLEtBQUssMEJBQTBCLENBQ2pDLE1BQUssZ0JBQWdCOzs7RUFLcEIsUUFBSztBQUNWLE9BQUksS0FBSyxXQUFXLFlBQVksS0FBSywyQkFBMkIsRUFBRTtBQUNoRSxTQUFLLFNBQVM7QUFJZCxRQUFJLEtBQUssMEJBQTBCLENBQ2pDLE1BQUssZ0JBQWdCOzs7RUFLbkIsNEJBQXlCOztBQUUvQixVQUFPLEtBQUssY0FBYyxJQUFJLE1BQU0sZUFBZSxFQUFFLFlBQVksTUFBTSxDQUFDLENBQUM7O0VBR3hELGFBQWEsbUJBQXVDO0FBQ3JFLFNBQU0sYUFBYSxrQkFBa0I7QUFFckMsUUFBSyx1QkFBdUIsS0FBSyxZQUFZLGNBQzNDLDZCQUNjO0FBR2hCLFFBQUssZUFBZSxXQUFVO0FBQzVCLFNBQUssd0JBQXdCO0FBQzdCLFNBQUssT0FBTztLQUNaOztFQUdJLDJCQUF3QjtBQUM5QixVQUFPLHdCQUF3QixNQUFNLHdDQUF3Qzs7RUFHdkUseUJBQXNCO0FBQzVCLE9BQUksQ0FBQyxLQUFLLHNCQUFzQixhQUM5QjtHQUVGLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxxQkFBcUIsYUFBWTtBQUNwRSxRQUFLLE1BQU0sWUFBWSw2QkFBNkIsbUJBQW1COztFQUdqRSx3QkFBcUI7QUFDM0IsT0FBSSxLQUFLLFdBQVcsU0FDbEI7QUFHRixPQUFJLEtBQUssdUJBQ1AsY0FBYSxLQUFLLHVCQUF1QjtBQUkzQyxRQUFLLFVBQVUsT0FBTyxJQUFJLDJCQUEyQjtBQUNyRCxRQUFLLHlCQUF5QixpQkFDdEIsS0FBSyxVQUFVLE9BQU8sT0FBTywyQkFBMkIsRUFDOUQsY0FDRDtBQUdELG9CQUFpQixLQUFLLHdCQUF3QixDQUFDOztFQUd6Qyw0QkFBNEIsT0FBcUI7QUFDdkQsT0FBSSxLQUFLLFdBQVcsYUFBYSxNQUFNLGtCQUFrQixPQUN2RCxNQUFLLGdCQUFnQjtBQUd2QixPQUFJLEtBQUssV0FBVyxhQUFhLE1BQU0sa0JBQWtCLGVBQ3ZELE1BQUssZ0JBQWdCOztFQUlqQixpQkFBYztBQUNwQixRQUFLLFNBQVM7QUFDZCxRQUFLLDRCQUE0QixRQUFRLEtBQUsscUJBQXFCOztBQUVuRSxRQUFLLGNBQWMsSUFBSSxNQUFNLE9BQU8sQ0FBQzs7RUFHL0IsaUJBQWM7QUFDcEIsUUFBSyxTQUFTOztBQUVkLFFBQUssY0FBYyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLFFBQUssNEJBQTRCLFVBQVUsS0FBSyxxQkFBcUI7QUFDckUsb0JBQWlCLEtBQUssUUFBUSxDQUFDOztFQUd6QixvQkFBaUI7R0FDdkIsTUFBTSxRQUFRLE1BQU0sS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLE9BQU8sR0FBRyxjQUFjLFlBQVk7QUFDbEYsT0FBSSxNQUNGLE9BQU0sT0FBTzs7RUFJVCxrQkFBZTtHQUNyQixNQUFNLFFBQVEsS0FBSyxnQkFBaUMsWUFBWTtBQUNoRSxPQUFJLE9BQU87QUFDVCxtQkFBZSxRQUFRLE1BQU07QUFDN0IsVUFBTSxjQUFjLEtBQUssU0FBUyxNQUFNLE1BQU07OztFQUkvQixpQkFBYztBQUMvQixVQUFPLE1BQU0sZ0JBQWdCLElBQUksa0JBQWtCLElBQUksS0FBSyxLQUFNOztFQUdqRCxTQUFNO0FBQ3ZCLFVBQU8sSUFBSTs2REFDOEMsS0FBSyw0QkFBMkI7O1lBRWpGLEtBQUssZUFBZSx5QkFBeUIsQ0FBQTs7NkNBRVosS0FBSyxnQkFBZTs7a0NBRS9CLEtBQUssa0JBQWlCOzs7O1lBSTVDLENBQUMsS0FBSyxXQUNKLElBQUk7Ozt5QkFHTyxLQUFLLEtBQUE7O2lDQUVHLEtBQUssT0FBTyxDQUFBOytCQUNkLHNCQUFzQixLQUFLLFVBQVUsU0FBQTs7O2tCQUl0RCxRQUFBIn0=
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC1DcW1HYklXSS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4vLyBPcGVuL0Nsb3NlIGFuaW1hdGlvbiB2YXJzXG4kb3Blbi1hbmltLW1hcmdpbi1mcm9tOiAwO1xuJG9wZW4tYW5pbS1tYXJnaW4tdG86IHZhcigtLXNiYi1ub3RpZmljYXRpb24tbWFyZ2luLCAwKTtcbiRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tOiAwO1xuJG9wZW4tYW5pbS1vcGFjaXR5LXRvOiAxO1xuJG9wZW4tYW5pbS1oZWlnaHQtZnJvbTogMDtcbiRvcGVuLWFuaW0taGVpZ2h0LXRvOiBjYWxjKFxuICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWhlaWdodCkgKyAodmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpICogMilcbik7XG5cbjpob3N0IHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgNSUsIHdoaXRlKSxcbiAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKSAzNSUsIHdoaXRlKVxuICApO1xuICAtLXNiYi1ub3RpZmljYXRpb24taWNvbi1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci1yYWRpdXMtc3RhcnQ6IGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC8gMik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1mb250LXNpemU6IDFlbTtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWluc2V0LWlubGluZS1zdGFydDogY2FsYyhcbiAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aClcbiAgKTtcblxuICAvLyBBcyB0aGUgbm90aWZpY2F0aW9uIGhhcyBhbHdheXMgYSBsaWdodCBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgbm90aWZpY2F0aW9uIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG4vLyBCeSBkZWZhdWx0LCB0aGUgb3BlbiBhbmltYXRpb24gaXMgZGlzYWJsZWRcbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKTpub3QoW2FuaW1hdGlvbj0nb3BlbiddLCBbYW5pbWF0aW9uPSdhbGwnXSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZyk6bm90KFthbmltYXRpb249J2Nsb3NlJ10sIFthbmltYXRpb249J2FsbCddKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoOnN0YXRlKHNsb3R0ZWQtdGl0bGUpKSB7XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWZvbnQtc2l6ZTogdmFyKC0tc2JiLWhlYWRpbmctZm9udC1zaXplLTUpO1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1saW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtaGVhZGluZyk7XG59XG5cbjpob3N0KDpzdGF0ZShzbG90dGVkLXRpdGxlKVtzaXplPSdzJ10pIHtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNik7XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHh4cyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpXG4gICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHh4cylcbiAgICB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpO1xuICB9XG59XG5cbi8vIFR5cGVzXG46aG9zdCg6aXMoOm5vdChbdHlwZV0pLCBbdHlwZT0naW5mbyddKSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29sb3IpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAyMCU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogMjAlO1xufVxuXG46aG9zdChbdHlwZT0nbm90ZSddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itc2t5KTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodDogMjAlO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWRhcms6IDIwJTtcbn1cblxuOmhvc3QoW3R5cGU9J3N1Y2Nlc3MnXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXN1Y2Nlc3MpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAxNSU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogMzAlO1xufVxuXG46aG9zdChbdHlwZT0nd2FybiddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itd2FybmluZyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1pY29uLWNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWNvbG9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodDogMjUlO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWRhcms6IDQwJTtcbn1cblxuOmhvc3QoW3R5cGU9J2Vycm9yJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3I6IHZhcigtLXNiYi1jb2xvci1lcnJvcik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQ6IDEwJTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1kYXJrOiAyNSU7XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLV9zYmItbm90aWZpY2F0aW9uLWluc2V0LWlubGluZS1zdGFydCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pbnNldC1pbmxpbmUtc3RhcnQpKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXJhZGl1cy1zdGFydClcbiAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIG1heC1oZWlnaHQ6ICN7JG9wZW4tYW5pbS1oZWlnaHQtZnJvbX07XG4gIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi1mcm9tfTtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aCkgKiAtMSlcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKSBjYWxjKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXdpZHRoKSAqIC0xKVxuICAgICAgY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgKiAtMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LXRvfTtcbiAgICBtYXJnaW46ICN7JG9wZW4tYW5pbS1tYXJnaW4tdG99O1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSAmIHtcbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBmaWxsLW1vZGU6IGZvcndhcmRzO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZSwgY2xvc2UtaGVpZ2h0O1xuICAgICAgZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1ub3RpZmljYXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICAgIGRlbGF5OiAwcywgdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTJ4KSk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctYmxvY2spO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIGNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KVxuICAgIGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpKVxuICAgIGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpKVxuICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0byBhdXRvO1xuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX19pY29uLFxuOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIGNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3IpO1xuICBhbGlnbi1zZWxmOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tYWxpZ24tc2VsZik7XG5cbiAgLy8gVGhpcyBpcyBhbiB1bmRvY3VtZW50ZWQgZmVhdHVyZSBmb3Igc2JiLmNoLCB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGhpZGUgdGhlIGljb24uXG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWljb24tc2l6ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogbWF4KFxuICAgICAgMHJlbSxcbiAgICAgIGNhbGMoXG4gICAgICAgIChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplKSAqXG4gICAgICAgICAgICAgICAgICB2YXIoLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtbGluZS1oZWlnaHQpXG4gICAgICAgICAgICAgICkgLSB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKVxuICAgICAgICAgICkgL1xuICAgICAgICAgIDJcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX19jb250ZW50IHtcbiAgLy8gVGhlIGNvbnRlbnQgb2YgdGhlIG5vdGlmaWNhdGlvbiBpcyBhbHdheXMgZGlzcGxheWVkIGluIHBvc2l0aXZlIG1vZGUsXG4gIC8vIHRoZXJlZm9yZSwgdG8gaGF2ZSBzbG90dGVkIGNvbnRlbnQgY29ycmVjdGx5IGRpc3BsYXksIHdlIG5lZWQgb25seSBhbGxvdyBsaWdodCBtb2RlLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG4gIG9yZGVyOiAzO1xuICBncmlkLWFyZWE6IDIgLyAxIC8gMyAvIDM7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1jb250ZW50LW1hcmdpbi1ibG9jay1zdGFydCk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG9yZGVyOiBpbml0aWFsO1xuICAgIGdyaWQtYXJlYTogaW5pdGlhbDtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29udGVudC1wYWRkaW5nLWlubGluZSk7XG4gIH1cbn1cblxuLnNiYi1ub3RpZmljYXRpb25fX3RleHQge1xuICAvLyBSZXNldCBwYXJhZ3JhcGggc3R5bGVzXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2JiLW5vdGlmaWNhdGlvbl9fZGl2aWRlciB7XG4gIC0tc2JiLWRpdmlkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgY29sb3ItbWl4KFxuICAgICAgaW4gc3JnYixcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQpLFxuICAgICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKVxuICAgICksXG4gICAgY29sb3ItbWl4KFxuICAgICAgaW4gc3JnYixcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyayksXG4gICAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3IpXG4gICAgKVxuICApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY2xvc2Utd3JhcHBlci1nYXApO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSAqIDIpKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LWZyb219O1xuICAgIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi1mcm9tfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC10b307XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLXRvfTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICAgIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi10b307XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLWZyb219O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2UtaGVpZ2h0IHtcbiAgZnJvbSB7XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC10b307XG4gIH1cblxuICB0byB7XG4gICAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC1mcm9tfTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXRpdGxlKSB7XG4gIC8vIE92ZXJ3cml0ZSBzYmItdGl0bGUgZGVmYXVsdCBtYXJnaW5cbiAgbWFyZ2luOiAwO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGkxOG5DbG9zZU5vdGlmaWNhdGlvbixcbiAgaXNMZWFuLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgU2JiRWxlbWVudCxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICB0eXBlIFNiYk9wZW5lZENsb3NlZFN0YXRlLFxuICBTYmJSZWFkb25seU1peGluLFxufSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaXRsZUVsZW1lbnQgfSBmcm9tICcuLi90aXRsZS5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbm90aWZpY2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3Qgbm90aWZpY2F0aW9uVHlwZXMgPSBuZXcgTWFwKFtcbiAgWydpbmZvJywgJ2NpcmNsZS1pbmZvcm1hdGlvbi1zbWFsbCddLFxuICBbJ25vdGUnLCAnY2lyY2xlLWluZm9ybWF0aW9uLXNtYWxsJ10sXG4gIFsnc3VjY2VzcycsICdjaXJjbGUtdGljay1zbWFsbCddLFxuICBbJ3dhcm4nLCAnY2lyY2xlLWV4Y2xhbWF0aW9uLXBvaW50LXNtYWxsJ10sXG4gIFsnZXJyb3InLCAnY2lyY2xlLWNyb3NzLXNtYWxsJ10sXG5dKTtcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBtZXNzYWdlcyB3aGljaCByZXF1aXJlIGEgdXNlcidzIGF0dGVudGlvbiB3aXRob3V0IGludGVycnVwdGluZyBpdHMgdGFza3MuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1ub3RpZmljYXRpb25gLiBDb250ZW50IHNob3VsZCBjb25zaXN0IG9mIGFuIG9wdGlvbmFsIGBzYmItdGl0bGVgIGVsZW1lbnQgYW5kIHRleHQgY29udGVudC5cbiAqIEBzbG90IHRpdGxlIC0gU2xvdCBmb3IgdGhlIHRpdGxlLiBGb3IgdGhlIHN0YW5kYXJkIGBzYmItdGl0bGVgIGVsZW1lbnQsIHRoZSBzbG90IGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgd2hlbiBzbG90dGVkIGluIHRoZSB1bm5hbWVkIHNsb3QuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBkaXNwbGF5IGEgY3VzdG9tIGljb24gYnkgcHJvdmlkaW5nIGFuIGBzYmItaWNvbmAgY29tcG9uZW50LlxuICogQGNzc3Byb3AgWy0tc2JiLW5vdGlmaWNhdGlvbi1tYXJnaW49MF0gLSBDYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlIG1hcmdpbiBpbiBvcmRlciB0byBnZXQgYSBzbW9vdGhlciBhbmltYXRpb24uXG4gKiBTZWUgc3R5bGUgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk5vdGlmaWNhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYlJlYWRvbmx5TWl4aW4oU2JiRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1ub3RpZmljYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXG4gICAgU2JiU2Vjb25kYXJ5QnV0dG9uRWxlbWVudCxcbiAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSB0eXBlIG9mIHRoZSBub3RpZmljYXRpb24uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHR5cGU6XG4gICAgfCAnaW5mbydcbiAgICB8ICdub3RlJ1xuICAgIHwgJ3N1Y2Nlc3MnXG4gICAgfCAnd2FybidcbiAgICB8ICdlcnJvcicgPSAnaW5mbyc7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBlbmFibGVkIGFuaW1hdGlvbnMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGFuaW1hdGlvbjogJ29wZW4nIHwgJ2Nsb3NlJyB8ICdhbGwnIHwgJ25vbmUnID0gJ2FsbCc7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbkVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fb25Ob3RpZmljYXRpb25SZXNpemUoKSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUaXRsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgICAvKiogRW1pdHMgd2hlbiB0aGUgb3BlbmluZyBhbmltYXRpb24gc3RhcnRzLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3Jlb3BlbicpKTtcblxuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnb3BlbmVkJyAmJiB0aGlzLl9kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG5cbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBjbG9zaW5nIGFuaW1hdGlvbiBzdGFydHMuIENhbiBiZSBjYW5jZWxlZCB0byBwcmV2ZW50IHRoZSBjb21wb25lbnQgZnJvbSBjbG9zaW5nLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5zYmItbm90aWZpY2F0aW9uX193cmFwcGVyJyxcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbXBvbmVudCdzIGB1cGRhdGVDb21wbGV0ZWAgaW4gb3JkZXIgdG8gc2V0IHRoZSBjb3JyZWN0XG4gICAgLy8gaGVpZ2h0IHRvIHRoZSBub3RpZmljYXRpb24gZWxlbWVudC5cbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0Tm90aWZpY2F0aW9uSGVpZ2h0KCk7XG4gICAgICB0aGlzLl9vcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX25vdGlmaWNhdGlvbkVsZW1lbnQ/LnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub3RpZmljYXRpb25IZWlnaHQgPSBgJHt0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50LnNjcm9sbEhlaWdodH1weGA7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbm90aWZpY2F0aW9uLWhlaWdodCcsIG5vdGlmaWNhdGlvbkhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9vbk5vdGlmaWNhdGlvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuXG4gICAgLy8gVG8gYXZvaWQgUmVzaXplT2JzZXJ2ZXIgbG9vcHMsIHdlIHNldCB0aGUgaGVpZ2h0IGEgdGljayBsYXRlci5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTm90aWZpY2F0aW9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1oZWlnaHQnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wZW5pbmcgYW5pbWF0aW9uIGVuZHMuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY2xvc2luZyBhbmltYXRpb24gZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25SZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoKGVsKSA9PiBlbC5sb2NhbE5hbWUgPT09ICdzYmItdGl0bGUnKTtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRpdGxlLnNsb3QgPSAndGl0bGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRpdGxlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiVGl0bGVFbGVtZW50Pignc2JiLXRpdGxlJyk7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRpdGxlKTtcbiAgICAgIHRpdGxlLnZpc3VhbExldmVsID0gdGhpcy5zaXplID09PSAnbScgPyAnNScgOiAnNic7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckljb25OYW1lKCkgfHwgbm90aWZpY2F0aW9uVHlwZXMuZ2V0KHRoaXMudHlwZSkhO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5vdGlmaWNhdGlvbl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk5vdGlmaWNhdGlvbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uXCI+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCdzYmItbm90aWZpY2F0aW9uX19pY29uJyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jb250ZW50XCI+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgJHshdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxzYmItZGl2aWRlciBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX2RpdmlkZXJcIiBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7aTE4bkNsb3NlTm90aWZpY2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jbG9zZVwiXG4gICAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbm90aWZpY2F0aW9uJzogU2JiTm90aWZpY2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM2QkEsSUFBTSxvQkFBb0IsSUFBSSxJQUFJO0NBQ2hDLENBQUMsUUFBUSwyQkFBMkI7Q0FDcEMsQ0FBQyxRQUFRLDJCQUEyQjtDQUNwQyxDQUFDLFdBQVcsb0JBQW9CO0NBQ2hDLENBQUMsUUFBUSxpQ0FBaUM7Q0FDMUMsQ0FBQyxTQUFTLHFCQUFBO0NBQ1gsQ0FBQztBQUVGLElBQU0sZ0JBQWdCOzs7Ozs7Ozs7O0lBV1QsZ0NBQXNCO21CQUFTLGlCQUFpQixpQkFBaUIsV0FBVyxDQUFDOzs7Ozs7Ozs7O2NBQTdFLCtCQUErQixZQUE4Qzs7O3VCQWV2RixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7NEJBRzNCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBZEMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FB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
@@ -1,4 +1,4 @@
1
- import { t as SbbNotificationElement } from "./notification.component-BgF5aGrn.js";
1
+ import { t as SbbNotificationElement } from "./notification.component-CqmGbIWI.js";
2
2
  import "./notification.pure.js";
3
3
  //#region src/elements/notification.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbNotificationElement } from "./notification.component-BgF5aGrn.js";
1
+ import { t as SbbNotificationElement } from "./notification.component-CqmGbIWI.js";
2
2
  export { SbbNotificationElement };