@sbb-esta/lyne-elements-experimental-dev 5.0.0-next.3-dev.1779349374 → 5.0.0-next.3-dev.1779441005

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 (129) hide show
  1. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  2. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  3. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  4. package/autocomplete-grid.js +3 -3
  5. package/autocomplete-grid.pure.js +3 -3
  6. package/core/datetime/date-helper.js +1 -1
  7. package/core.js +1 -1
  8. package/{date-helper-CuMnZCsr.js → date-helper-DNzMLcyb.js} +3 -3
  9. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  10. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  11. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  12. package/development/{autocomplete-grid-cell.component-BF8i4388.js → autocomplete-grid-cell.component-BbdELDro.js} +1 -1
  13. package/development/{autocomplete-grid-option.component-DE4xTQmY.js → autocomplete-grid-option.component-C7WuqRit.js} +1 -1
  14. package/development/{autocomplete-grid-row.component-CBHh50jC.js → autocomplete-grid-row.component-DoXbOsQM.js} +1 -1
  15. package/development/autocomplete-grid.js +3 -3
  16. package/development/autocomplete-grid.pure.js +3 -3
  17. package/development/core/datetime/date-helper.js +1 -1
  18. package/development/core.js +1 -1
  19. package/development/{date-helper-B0Qh4RFf.js → date-helper-d7sFFCtY.js} +4 -4
  20. package/development/{differenceInMinutes-CqAOVimt.js → differenceInMinutes-CJllL661.js} +2 -2
  21. package/development/{format-DFx4997p.js → format-Cx3zmmaF.js} +3 -3
  22. package/development/{isValid-JpZ7FphI.js → isValid-40Olgzo1.js} +2 -2
  23. package/development/journey-summary/journey-summary.component.js +1 -1
  24. package/development/{journey-summary.component-Bjf9cIpR.js → journey-summary.component-BsC7wBIn.js} +3 -3
  25. package/development/journey-summary.js +1 -1
  26. package/development/journey-summary.pure.js +1 -1
  27. package/development/{mapper-hWWm7Uke.js → mapper-BrZOqqfe.js} +1 -1
  28. package/development/pearl-chain/pearl-chain.component.js +1 -1
  29. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  30. package/development/{pearl-chain-time.component-y-YnuSnn.js → pearl-chain-time.component-C-CuC1ke.js} +2 -2
  31. package/development/pearl-chain-time.js +1 -1
  32. package/development/pearl-chain-time.pure.js +1 -1
  33. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  34. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  35. package/development/{pearl-chain-vertical-item.component-zo48V6sO.js → pearl-chain-vertical-item.component-CLu9QrqJ.js} +1 -1
  36. package/development/pearl-chain-vertical-item.js +1 -1
  37. package/development/pearl-chain-vertical-item.pure.js +1 -1
  38. package/development/{pearl-chain-vertical.component-zSOeIkhh.js → pearl-chain-vertical.component-DbPz5k_R.js} +1 -1
  39. package/development/pearl-chain-vertical.js +1 -1
  40. package/development/pearl-chain-vertical.pure.js +1 -1
  41. package/development/{pearl-chain.component-CO4eTDeD.js → pearl-chain.component-WWx7r-a-.js} +3 -3
  42. package/development/pearl-chain.js +1 -1
  43. package/development/pearl-chain.pure.js +1 -1
  44. package/development/seat-reservation/common/mapper/mapper.js +1 -1
  45. package/development/seat-reservation/common/mapper.js +1 -1
  46. package/development/seat-reservation/common/svgs.js +1 -1
  47. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  48. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  49. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  50. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  51. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  52. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  53. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  54. package/development/{seat-reservation-area.component-BiUbY2fJ.js → seat-reservation-area.component-DPhQJFid.js} +1 -1
  55. package/development/{seat-reservation-graphic.component-sXZS5AQ-.js → seat-reservation-graphic.component-0LYsmerm.js} +1 -1
  56. package/development/{seat-reservation-navigation-coach.component-n9HVhAW1.js → seat-reservation-navigation-coach.component-B97jKD7Y.js} +1 -1
  57. package/development/{seat-reservation-navigation-services.component-C_DDizl4.js → seat-reservation-navigation-services.component-Cx0Is97w.js} +1 -1
  58. package/development/{seat-reservation-place-control.component-CEYulcPi.js → seat-reservation-place-control.component-DaL1g8WH.js} +1 -1
  59. package/development/{seat-reservation-scoped.component-D-Mvw-Q3.js → seat-reservation-scoped.component-BHbORVsR.js} +1 -1
  60. package/development/{seat-reservation.component-CR5QYNWZ.js → seat-reservation.component-DI9pSlzt.js} +1 -1
  61. package/development/seat-reservation.js +9 -9
  62. package/development/seat-reservation.pure.js +9 -9
  63. package/development/{svgs-kDpBCto5.js → svgs-Dj-RKmRs.js} +1 -1
  64. package/development/timetable-duration/timetable-duration.component.js +1 -1
  65. package/development/{timetable-duration.component-QutPySyE.js → timetable-duration.component-Chk5D4Is.js} +1 -1
  66. package/development/timetable-duration.js +1 -1
  67. package/development/timetable-duration.pure.js +1 -1
  68. package/development/timetable-row/timetable-row.component.js +1 -1
  69. package/development/{timetable-row.component-2GBdtFiF.js → timetable-row.component-nzrQzxL6.js} +3 -3
  70. package/development/timetable-row.js +1 -1
  71. package/development/timetable-row.pure.js +1 -1
  72. package/development/{toDate-DOFAOjP-.js → toDate-CDWut5fS.js} +1 -1
  73. package/{differenceInMinutes-Dr9gRqtu.js → differenceInMinutes-BAZ-Fham.js} +1 -1
  74. package/{format-DbUuNYFU.js → format-DjgG1QPc.js} +2 -2
  75. package/{isValid-B9oVW3lA.js → isValid-CXnsFZVu.js} +1 -1
  76. package/journey-summary/journey-summary.component.js +1 -1
  77. package/{journey-summary.component-Bbx7WYGU.js → journey-summary.component-DNoO3OCf.js} +2 -2
  78. package/journey-summary.js +1 -1
  79. package/journey-summary.pure.js +1 -1
  80. package/package.json +2 -2
  81. package/pearl-chain/pearl-chain.component.js +1 -1
  82. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  83. package/{pearl-chain-time.component-BDkOrxQ3.js → pearl-chain-time.component-BuvA6IE1.js} +1 -1
  84. package/pearl-chain-time.js +1 -1
  85. package/pearl-chain-time.pure.js +1 -1
  86. package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  87. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  88. package/pearl-chain-vertical-item.js +1 -1
  89. package/pearl-chain-vertical-item.pure.js +1 -1
  90. package/pearl-chain-vertical.js +1 -1
  91. package/pearl-chain-vertical.pure.js +1 -1
  92. package/{pearl-chain.component-DYzhEgWG.js → pearl-chain.component-DtGXXkY6.js} +2 -2
  93. package/pearl-chain.js +1 -1
  94. package/pearl-chain.pure.js +1 -1
  95. package/seat-reservation/common/mapper/mapper.js +1 -1
  96. package/seat-reservation/common/mapper.js +1 -1
  97. package/seat-reservation/common/svgs.js +1 -1
  98. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  99. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  100. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  101. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  102. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  103. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  104. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  105. package/seat-reservation.js +9 -9
  106. package/seat-reservation.pure.js +9 -9
  107. package/timetable-duration/timetable-duration.component.js +1 -1
  108. package/timetable-duration.js +1 -1
  109. package/timetable-duration.pure.js +1 -1
  110. package/timetable-row/timetable-row.component.js +1 -1
  111. package/{timetable-row.component-DMiay4xK.js → timetable-row.component-mNKmhRmP.js} +2 -2
  112. package/timetable-row.js +1 -1
  113. package/timetable-row.pure.js +1 -1
  114. /package/{autocomplete-grid-cell.component-DAsWZlTn.js → autocomplete-grid-cell.component-79IjA__I.js} +0 -0
  115. /package/{autocomplete-grid-option.component-C0sUTAVd.js → autocomplete-grid-option.component-DUFBhQwI.js} +0 -0
  116. /package/{autocomplete-grid-row.component-VbyYP0U-.js → autocomplete-grid-row.component-B3U15Rwa.js} +0 -0
  117. /package/{mapper-Cqie5ivY.js → mapper-Dcou8VEf.js} +0 -0
  118. /package/{pearl-chain-vertical-item.component-an8iT9Ao.js → pearl-chain-vertical-item.component-QZ4s8Jbv.js} +0 -0
  119. /package/{pearl-chain-vertical.component-CDOWaup3.js → pearl-chain-vertical.component-Dc3vaHsQ.js} +0 -0
  120. /package/{seat-reservation-area.component-B8HJ-Or8.js → seat-reservation-area.component-G9lHb7S8.js} +0 -0
  121. /package/{seat-reservation-graphic.component-Ddpuv-Aw.js → seat-reservation-graphic.component-BXFcQDxY.js} +0 -0
  122. /package/{seat-reservation-navigation-coach.component-DMKlwxPa.js → seat-reservation-navigation-coach.component-BXy8EkJe.js} +0 -0
  123. /package/{seat-reservation-navigation-services.component-2os7VI7i.js → seat-reservation-navigation-services.component-49XmV9rv.js} +0 -0
  124. /package/{seat-reservation-place-control.component-CvGYSTnc.js → seat-reservation-place-control.component-DToIW328.js} +0 -0
  125. /package/{seat-reservation-scoped.component-BohQUGVW.js → seat-reservation-scoped.component-D8dAmrP7.js} +0 -0
  126. /package/{seat-reservation.component-TLuTP9Nm.js → seat-reservation.component--0XnrCkk.js} +0 -0
  127. /package/{svgs-D5DhLHxC.js → svgs-D4fuYTHV.js} +0 -0
  128. /package/{timetable-duration.component-DHuPMaq5.js → timetable-duration.component-iMCvh1zr.js} +0 -0
  129. /package/{toDate-p-Tpkb7t.js → toDate-BhNUyM4s.js} +0 -0
@@ -470,4 +470,4 @@ var SbbSeatReservationElement = class extends SeatReservationBaseElement {
470
470
  //#endregion
471
471
  export { SbbSeatReservationElement as t };
472
472
 
473
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQtQ1I1UVlOV1ouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5AdXNlICcuLi9jb21tb24vc3R5bGVzL3NlYXQtcmVzZXJ2YXRpb24tbWl4aW5zJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuLy8gTWF4aW11bSByZXNwb25zaXZlIG5hdmlnYXRpb24gd2lkdGgsIGNvbnNpc3RzIG9mIHRoZSBtYXhpbXVtIG5hdmlnYXRpb24gZXh0ZW50IG1pbnVzIDJ4IG5hdiBkaXJlY3Rpb24gYnV0dG9ucyA5NnB4IGFuZCA4cHggcGFkZGluZy5cbiRtYXgtY29hY2gtbmF2aWdhdGlvbi13aWR0aDogY2FsYyg5NjBweCAtIDk2cHggLSA4cHgpO1xuJHNjcm9sbGJhci1oZWlnaHQ6IDE2cHg7XG5cbjpob3N0IHtcbiAgLy8gTm90ZTogVGhlIHVzZSBvZiBweCBpcyBpbnRlbnRpb25hbCBoZXJlLCBiZWNhdXNlIG1hbnkgd2lkdGhzL2hlaWdodHMsIHJvdGF0aW9ucywgc2NhbGVzLCBldGMuIGRlcGVuZHMgb24gdGhpcy5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmlkLXNpemU6IDE2cHg7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24taGVpZ2h0OiAwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWRlY2tzOiAxO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG5cbiAgOjpwYXJ0KGNvYWNoLWZsb29yKSB7XG4gICAgZmlsbDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG5cbiAgICAvLyBJbiBIaWdoIENvbnRyYXN0IE1vZGUgd2Ugc2V0IGZsb29yIGNvbG9yIHRvIHRyYW5zcGFyZW50XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyByb3RhdGVzIHRoZSBET00tcGFydCBcImNvYWNoLWZsb29yXCIgYnkgMTgwIGRlZ3JlZXMgaWYgdGhlIGhvc3QgaXMgaW4gUlRMIG1vZGUuXG5AaW5jbHVkZSBzYmItc3ItbWl4aW5zLnJvdGF0ZS1kb20tcGFydChjb2FjaC1mbG9vcik7XG5cbi5zYmItc3ItcG9wb3ZlciB7XG4gIG1hcmdpbi1ibG9jazogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG59XG5cbi8vIFNUQVJUIC0gVmVydGljYWwgbW9kZVxuOmhvc3QoW2FsaWduLXZlcnRpY2FsXSkge1xuICAkY29hY2gtbmF2aWdhdGlvbi1wYWRkaW5nOiA1O1xuICAkY29hY2gtc2Nyb2xsYmFyLXdpZHRoOiAyNDtcbiAgJGNvYWNoLWdyaWQtd2lkdGg6IGNhbGModmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24taGVpZ2h0KSArICRjb2FjaC1zY3JvbGxiYXItd2lkdGgpO1xuXG4gIC5zYmItc3JfX2NvbXBvbmVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMik7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg1NCk7XG4gICAgfVxuXG4gICAgbmF2LnNiYi1zci1uYXZpZ2F0aW9uLFxuICAgIHVsLnNiYi1zci1uYXZpZ2F0aW9uX19saXN0LWNvYWNoZXMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBuYXYuc2JiLXNyLW5hdmlnYXRpb24ge1xuICAgICAgcGFkZGluZzogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpIDA7XG5cbiAgICAgIC5zYmItc3JfX25hdmlnYXRpb24tY29udHJvbC1idXR0b24ge1xuICAgICAgICBsZWZ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxKTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByb3RhdGU6IDkwZGVnO1xuXG4gICAgICAgIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAgICAgICBsZWZ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdWwuc2JiLXNyLW5hdmlnYXRpb25fX2xpc3QtY29hY2hlcyB7XG4gICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcblxuICAgICAgICAvLyBQYWRkaW5nIG5lZWRzIHRvIHZpc3VhbCBmb2N1cy12aXNpYmxlIHN0eWxlIGZvciBuYXYgYnV0dG9uIGluc2lkZSBvdmVyZmxvdyBjb250ZW50LFxuICAgICAgICAvLyBvdGhlcndpc2UgZm9jdXMtdmlzaWJsZSBzdHlsZSBpcyBjdXR0ZWQuXG4gICAgICAgIHBhZGRpbmc6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKCRjb2FjaC1uYXZpZ2F0aW9uLXBhZGRpbmcpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuIHNjcm9sbDtcblxuICAgICAgICAvLyBpbiB2ZXJ0aWNhbCBtb2RlLCB0aGUgbGkgbXVzdCBiZSBmbGV4ZWQ7IG90aGVyd2lzZSBpdCB3b3VsZCBjYWxjdWxhdGUgdGhlIHdyb25nIGhlaWdodFxuICAgICAgICAvLyBkdWUgdG8gdXNlcmFnZW50IHN0eWxlIHNldCB0byBcImxpc3QtaXRlbVwiIGZvciBkaXNwbGF5XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVkVSVElDQUwgTU9ERSAtIExBQkVMTVVMVElQTEUgREVDS1MgLSBMQUJFTFNcbiAgLnNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrcyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5zYmItc3JfX3dyYXBwZXItZGVjay1sYWJlbHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKCRjb2FjaC1ncmlkLXdpZHRoKTtcbiAgICAgIGhlaWdodDogaW5pdGlhbDtcblxuICAgICAgYiB7XG4gICAgICAgIGlubGluZS1zaXplOiBjYWxjKDUwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE2KSk7XG4gICAgICAgIGJsb2NrLXNpemU6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDIwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICAgICAgICByb3RhdGU6IGluaXRpYWw7XG4gICAgICAgIHdyaXRpbmctbW9kZTogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWRVJUSUNBTCBNT0RFIC0gU0VBVE1BUCBTQ1JPTEwgQVJFQVxuICAuc2JiLXNyX193cmFwcGVyLXNjcm9sbGFyZWEge1xuICAgIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgkY29hY2gtZ3JpZC13aWR0aCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW4gc2Nyb2xsO1xuXG4gICAgLnNiYi1zcl9fcGFyZW50IHtcbiAgICAgIHJvdGF0ZTogOTBkZWc7XG4gICAgfVxuICB9XG5cbiAgLy8gVkVSVElDQUwgTU9ERSAtIFRSQVZFTC1ESVJFQ1RJT05cbiAgLnNiYi1zci10cmF2ZWwtZGlyZWN0aW9uLXdyYXBwZXIge1xuICAgIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1oZWlnaHQpKTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuICB9XG59XG5cbi8vIEVORCAtIFZlcnRpY2FsIG1vZGVcblxuLnNiYi1zci1uYXZpZ2F0aW9uIHtcbiAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uIC5zYmItc3JfX25hdmlnYXRpb24tY29udHJvbC1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMik7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG4uc2JiLXNyX19jb21wb25lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IGNhbGMoc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNjQpIC0gJHNjcm9sbGJhci1oZWlnaHQpO1xufVxuXG4vLyBUUkFWRUwgRElSRUNUSU9OXG4uc2JiLXNyLXRyYXZlbC1kaXJlY3Rpb24td3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg0KTtcbiAgbWFyZ2luLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG5cbiAgLnNiYi1zcl9fdHJhdmVsLWRpcmVjdGlvbi0tYXJyb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4vLyBOQVZJR0FUSU9OIE5FV1xuLnNiYi1zci1uYXZpZ2F0aW9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctaW5saW5lOiAxNnB4O1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2xpc3QtY29hY2hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuICBwYWRkaW5nOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg2KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg1KSAwO1xuICBtYXgtd2lkdGg6ICRtYXgtY29hY2gtbmF2aWdhdGlvbi13aWR0aDtcblxuICAvLyBTZXQgc2JiIHNjcm9sbGJhciB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4gIC0tc2JiLXNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgb3ZlcmZsb3c6IHNjcm9sbCBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tIFNlYXQgUmVzZXJ2YXRpb24gTWFpbiBOYXZpZ2F0aW9uIC0gRU5EIC0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLSBTZWF0IFJlc2VydmF0aW9uIENvYWNoZXMgLSBTVEFSVCAtLS0tLS0tLS0tLS0tLS0tLVxuLnNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogaW5oZXJpdDtcblxuICAuc2JiLXNyX193cmFwcGVyLWRlY2stbGFiZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWhlaWdodCkpO1xuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG5cbiAgICBiIHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNikpO1xuICAgICAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDIwKTtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDE2cHg7XG4gICAgICByb3RhdGU6IDE4MGRlZztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3JfX3dyYXBwZXItc2Nyb2xsYXJlYSB7XG4gIG92ZXJmbG93OiBzY3JvbGwgaGlkZGVuO1xuICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG5cbiAgLnNiYi1zcl9fcGFyZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5zYmItc3JfX2xpc3QtZGVja3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2JiLXNyX19saXN0LWRlY2tzLS1nYXAge1xuICBnYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQ4KTtcbn1cblxuLnNiYi1zcl9fbGlzdC1pdGVtLWRlY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYmItc3JfX2xpc3QtY29hY2hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG59XG5cbi8vIElmIHRoZXJlIGFyZSBvdmVyaGFuZ2luZyBlbGVtZW50cyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZSBnYXAgYmV0d2VlbiBjb2FjaGVzXG4uc2JiLXNyX19saXN0LWRlY2tzOmhhcyguc2JiLXNyLWNvYWNoLWhhcy1vdmVyaGFuZ2luZy1lbGVtZW50cykgLnNiYi1zcl9fbGlzdC1jb2FjaGVzIHtcbiAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KTtcbn1cblxuLnNiYi1zcl9faXRlbS1jb2FjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNiYi1zci1jb2FjaC13cmFwcGVyX190YWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4iLCJpbXBvcnQgeyBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvYnV0dG9uLnB1cmUuanMnO1xuaW1wb3J0IHtcbiAgbGlzdFJlc2V0U3R5bGVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG4gIHNjcm9sbGJhclN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3BvcG92ZXIucHVyZS5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcC5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyBnZXRJMThuU2VhdFJlc2VydmF0aW9uIH0gZnJvbSAnLi4vY29tbW9uL3RyYW5zbGF0aW9ucy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhc2VFbGVtZW50LFxuICBDb2FjaEl0ZW0sXG4gIENvYWNoSXRlbURldGFpbHMsXG4gIFBsYWNlLFxuICBTZWF0UmVzZXJ2YXRpb24sXG59IGZyb20gJy4uL2NvbW1vbi90eXBlcy50cyc7XG5pbXBvcnQgeyBTYmJTZWF0UmVzZXJ2YXRpb25BcmVhRWxlbWVudCB9IGZyb20gJy4uL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS9zZWF0LXJlc2VydmF0aW9uLWFyZWEuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuaW1wb3J0IHtcbiAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCxcbiAgdHlwZSBTYmJTZWxlY3RDb2FjaEV2ZW50LFxufSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyc7XG5pbXBvcnQge1xuICB0eXBlIFNiYlBsYWNlU2VsZWN0aW9uRXZlbnQsXG4gIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQsXG59IGZyb20gJy4uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvblNjb3BlZEVsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgeyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQudHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogTWFpbiBjb21wb25lbnQgZm9yIHRoZSBzZWF0IHJlc2VydmF0aW9uLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50LFxuICAgIFNiYlBvcG92ZXJFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQsXG4gICAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCxcbiAgICBTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgbGlzdFJlc2V0U3R5bGVzLFxuICAgIHNjcm9sbGJhclN0eWxlcyxcbiAgICBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzLFxuICAgIHVuc2FmZUNTUyhzdHlsZSksXG4gIF07XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9jb2FjaGVzSHRtbFRlbXBsYXRlPzogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoYXNOYXZpZ2F0aW9uJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB3YWl0IHVudGlsIHRoZSBmaXJzdCB1cGRhdGUgaXMgY29tcGxldGUgdG8gaW5pdCBkaWZmZXJlbnQgSFRNTCBlbGVtZW50IGRpbWVuc2lvbnNcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5pbml0TmF2aWdhdGlvblNlbGVjdGlvbkJ5U2Nyb2xsRXZlbnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICB0aGlzLl9pbml0VmVoaWNsZVNlYXRSZXNlcnZhdGlvbkNvbnN0cnVjdGlvbigpO1xuICAgIHJldHVybiB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9pbml0VmVoaWNsZVNlYXRSZXNlcnZhdGlvbkNvbnN0cnVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlID0gaHRtbGBcbiAgICAgICR7dGhpcy5fcmVuZGVyVHJhdmVsRGlyZWN0aW9uKCl9XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNyX19jb21wb25lbnRcIj5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJOYXZpZ2F0aW9uKCl9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrc1wiXG4gICAgICAgICAgQGtleWRvd249JHsoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmtleWJvYXJkU2VhdG1hcEV2ZW50SGFuZGxpbmcoZXZ0KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItZGVjay1sYWJlbHNcIj4ke3RoaXMuX3JlbmRlckRlY2tMYWJlbHMoKX08L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5jb2FjaEFyZWFTY3JvbGxlbmQoKX1cbiAgICAgICAgICAgIGlkPVwic2JiLXNyX193cmFwcGVyLXNjcm9sbGFyZWFcIlxuICAgICAgICAgICAgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItc2Nyb2xsYXJlYSBzYmItc2Nyb2xsYmFyXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJzYmItc3JfX3BhcmVudC1hcmVhXCIgY2xhc3M9XCJzYmItc3JfX3BhcmVudFwiPlxuICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICAgICAgICAgJ3NiYi1zcl9fbGlzdC1kZWNrcyc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAnc2JiLXNyX19saXN0LWRlY2tzLS1nYXAnOiB0aGlzLmhhc011bHRpcGxlRGVja3MsXG4gICAgICAgICAgICAgICAgfSl9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7dGhpcy5zZWF0UmVzZXJ2YXRpb25zPy5tYXAoXG4gICAgICAgICAgICAgICAgICAoc2VhdFJlc2VydmF0aW9uOiBTZWF0UmVzZXJ2YXRpb24sIGNvYWNoRGVja0luZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpIGNsYXNzPVwic2JiLXNyX19saXN0LWl0ZW0tZGVja1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNiYi1zcl9fbGlzdC1jb2FjaGVzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJDb2FjaGVzKHNlYXRSZXNlcnZhdGlvbiwgY29hY2hEZWNrSW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+YDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEZWNrTGFiZWxzKCk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaGFzTXVsdGlwbGVEZWNrcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VhdFJlc2VydmF0aW9ucy5tYXAoKHNlYXRSZXNlcnZhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGVja0Rlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaExldmVsLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybiBodG1sYDxiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7ZGVja0Rlc2NyaXB0aW9ufTwvYj5gO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oYnRuRGlyZWN0aW9uOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uIHx8ICF0aGlzLnNlYXRSZXNlcnZhdGlvbnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBidG5OYXZpZ2F0aW9uRGlyZWN0aW9uSWQgPVxuICAgICAgYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fUklHSFQnXG4gICAgICAgID8gJ3NiYi1zci1uYXZpZ2F0aW9uX193cmFwcGVyLWJ1dHRvbi1kaXJlY3Rpb24tLXJpZ2h0J1xuICAgICAgICA6ICdzYmItc3ItbmF2aWdhdGlvbl9fd3JhcHBlci1idXR0b24tZGlyZWN0aW9uLS1sZWZ0JztcbiAgICBjb25zdCBidG5JY29uID1cbiAgICAgIGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX1JJR0hUJyA/ICdjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsJyA6ICdjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGwnO1xuICAgIGNvbnN0IGJ0bkFyaWFEZXNjcmlwdGlvbiA9XG4gICAgICBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCdcbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdTRUFUX1JFU0VSVkFUSU9OX0VORCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogZ2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9CRUdJTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpO1xuICAgIGxldCBidG5EaXNhYmxlZCA9IHRydWU7XG5cbiAgICBpZiAoYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fTEVGVCcgJiYgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPiAwKSB7XG4gICAgICBidG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCcgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4IDwgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzRWxlbWVudHMubGVuZ3RoIC0gMVxuICAgICkge1xuICAgICAgYnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX3dyYXBwZXItYnV0dG9uLWRpcmVjdGlvblwiPlxuICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgIEBjbGljaz1cIiR7KCkgPT4gdGhpcy5uYXZpZ2F0ZUJ5RGlyZWN0aW9uQnRuKGJ0bkRpcmVjdGlvbil9XCJcbiAgICAgICAgQGZvY3VzPVwiJHsoKSA9PiB0aGlzLm9uRm9jdXNOYXZEaXJlY3Rpb25CdXR0b24oKX1cIlxuICAgICAgICBpZD1cIiR7YnRuTmF2aWdhdGlvbkRpcmVjdGlvbklkfVwiXG4gICAgICAgIGNsYXNzPVwic2JiLXNyX19uYXZpZ2F0aW9uLWNvbnRyb2wtYnV0dG9uXCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBpY29uLW5hbWU9XCIke2J0bkljb259XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCIke2J0bkFyaWFEZXNjcmlwdGlvbn1cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgLmRpc2FibGVkSW50ZXJhY3RpdmU9XCIke2J0bkRpc2FibGVkIHx8IG5vdGhpbmd9XCJcbiAgICAgICAgLmRpc2FibGVkPVwiJHtidG5EaXNhYmxlZCB8fCBub3RoaW5nfVwiXG4gICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyVHJhdmVsRGlyZWN0aW9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnRyYXZlbERpcmVjdGlvbiB8fCB0aGlzLnRyYXZlbERpcmVjdGlvbiA9PT0gJ05PTkUnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbFRleHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgJ1NFQVRfUkVTRVJWQVRJT05fVFJBVkVMX0RJUkVDVElPTicsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICk7XG5cbiAgICBjb25zdCBhcnJvd0RpcmVjdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbFxuICAgICAgPyB0aGlzLnRyYXZlbERpcmVjdGlvbiA9PT0gJ1JJR0hUJ1xuICAgICAgICA/ICdkb3duJ1xuICAgICAgICA6ICd1cCdcbiAgICAgIDogdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdSSUdIVCdcbiAgICAgICAgPyAncmlnaHQnXG4gICAgICAgIDogJ2xlZnQnO1xuXG4gICAgY29uc3QgaWNvbk5hbWUgPSBgYXJyb3ctJHthcnJvd0RpcmVjdGlvbn0tc21hbGxgO1xuXG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci10cmF2ZWwtZGlyZWN0aW9uLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3RyYXZlbC1kaXJlY3Rpb24tLWFycm93XCI+XG4gICAgICAgIDxzYmItaWNvbiBzbG90PVwiaWNvblwiIG5hbWU9XCIke2ljb25OYW1lfVwiPjwvc2JiLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3RyYXZlbC1kaXJlY3Rpb24tLWxhYmVsXCI+JHtsYWJlbFRleHR9PC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlck5hdmlnYXRpb24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzTmF2aWdhdGlvbiB8fCAhdGhpcy5zZWF0UmVzZXJ2YXRpb25zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLXdyYXBwZXJcIj5cbiAgICAgIDxuYXYgaWQ9XCJzYmItc3ItbmF2aWdhdGlvblwiIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25cIj5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJOYXZpZ2F0aW9uQ29udHJvbEJ1dHRvbignRElSRUNUSU9OX0xFRlQnKX1cbiAgICAgICAgPHVsXG4gICAgICAgICAgaWQ9XCJzYmItc3JfX25hdmlnYXRpb24tbGlzdC1jb2FjaGVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19saXN0LWNvYWNoZXMgc2JiLXNjcm9sbGJhclwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgICAgICdTRUFUX1JFU0VSVkFUSU9OX05BVklHQVRJT04nLFxuICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgICApfVwiXG4gICAgICAgID5cbiAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlsc0VsZW1lbnRzLm1hcChcbiAgICAgICAgICAgIChjb2FjaEl0ZW1EZXRhaWxzOiBDb2FjaEl0ZW1EZXRhaWxzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBodG1sYDxsaT5cbiAgICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaFxuICAgICAgICAgICAgICAgICAgQHNlbGVjdGNvYWNoPSR7KGV2ZW50OiBTYmJTZWxlY3RDb2FjaEV2ZW50KSA9PiB0aGlzLl9vblNlbGVjdE5hdkNvYWNoKGV2ZW50KX1cbiAgICAgICAgICAgICAgICAgIEBmb2N1c2NvYWNoPSR7KCkgPT4gdGhpcy5fb25Gb2N1c05hdkNvYWNoKCl9XG4gICAgICAgICAgICAgICAgICBAa2V5dXA9JHsoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9uS2V5TmF2aWdhdGlvbk5hdkNvYWNoQnV0dG9uKGV2dCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgaW5kZXg9XCIke2luZGV4fVwiXG4gICAgICAgICAgICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgICAgICAuZm9jdXNlZD0ke3RoaXMuZm9jdXNlZENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgICAgLmhvdmVyZWQ9JHt0aGlzLmhvdmVyZWRDb2FjaEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgICAgICAgICAgIC5uYXRpdmVGb2N1c0FjdGl2ZT0ke3RoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAuY29hY2hJdGVtRGV0YWlscz1cIiR7Y29hY2hJdGVtRGV0YWlsc31cIlxuICAgICAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLmFsaWduVmVydGljYWx9XCJcbiAgICAgICAgICAgICAgICAgID9zaG93VGl0bGVJbmZvPVwiJHt0aGlzLnNob3dUaXRsZUluZm99XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoPlxuICAgICAgICAgICAgICA8L2xpPmA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvdWw+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oJ0RJUkVDVElPTl9SSUdIVCcpfVxuICAgICAgPC9uYXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHJldHVybnNcbiAgICogQHBhcmFtIHNlYXRSZXNlcnZhdGlvblxuICAgKiBAcGFyYW0gY29hY2hEZWNrSW5kZXhcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNvYWNoZXMoXG4gICAgc2VhdFJlc2VydmF0aW9uOiBTZWF0UmVzZXJ2YXRpb24sXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGNvbnN0IGNvYWNoZXM6IENvYWNoSXRlbVtdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXMpKTtcblxuICAgIGlmICghY29hY2hlcyB8fCBpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjb2FjaGVzLm1hcCgoY29hY2hJdGVtOiBDb2FjaEl0ZW0sIGNvYWNoSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1zcl9faXRlbS1jb2FjaFwiPlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgICAgICAgICAgY29hY2hJdGVtLFxuICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgIGNvYWNoRGVja0luZGV4LFxuICAgICAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaEluZGV4LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvbGk+XG4gICAgICBgO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgIGNvYWNoSXRlbTogQ29hY2hJdGVtLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tjb2FjaERlY2tJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG4gICAgY29uc3QgZGVzY3JpcHRpb25UYWJsZUNvYWNoV2l0aFNlcnZpY2VzID0gdGhpcy5fZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbSk7XG5cbiAgICByZXR1cm4gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLXdpZHRoJzogY3VyckNvYWNoU3RydWN0dXJlLndpZHRoLFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtaGVpZ2h0JzogY3VyckNvYWNoU3RydWN0dXJlLmhlaWdodCxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtLCBjb2FjaERlY2tJbmRleCwgY29hY2hJbmRleCl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkQ29hY2hFbGVtZW50cyhjb2FjaERlY2tJbmRleCwgY29hY2hJbmRleCl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkQXJlYUVsZW1lbnRzKGNvYWNoRGVja0luZGV4LCBjb2FjaEluZGV4KX1cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRTZXJ2aWNlRWxlbWVudHMoY29hY2hEZWNrSW5kZXgsIGNvYWNoSW5kZXgpfVxuXG4gICAgICA8dGFibGVcbiAgICAgICAgQGZvY3VzPSR7KCkgPT4gdGhpcy5vbkZvY3VzVGFibGVDb2FjaEFuZFByZXNlbGVjdFBsYWNlKGNvYWNoSW5kZXgpfVxuICAgICAgICBpZD1cInNiYi1zci1jb2FjaC0ke2NvYWNoSW5kZXh9XCJcbiAgICAgICAgY2xhc3M9XCJzYmItc3ItY29hY2gtd3JhcHBlcl9fdGFibGVcIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwic2JiLXNyLWNvYWNoLWNhcHRpb24tJHtjb2FjaEluZGV4fVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8Y2FwdGlvbiBpZD1cInNiYi1zci1jb2FjaC1jYXB0aW9uLSR7Y29hY2hJbmRleH1cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXN9PC9zcGFuPlxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRSb3dQbGFjZXMoY29hY2hJdGVtLCBjb2FjaEluZGV4LCBjb2FjaERlY2tJbmRleCwgcGxhY2VDb2FjaERlY2tJbmRleCl9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPmA7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgYm9yZGVyIGdyYXBoaWMgKENPQUNIX0JPUkRFUl9NSURETEUpIG9mIGEgY29hY2ggd2l0aCBjYWxjdWxhdGVkIGJvcmRlciBnYXAgYW5kIGNvYWNoIHdpZHRoLFxuICAgKiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY29hY2ggaXMgd2l0aCBhIGRyaXZlciBhcmVhIG9yIHdpdGhvdXQuXG4gICAqL1xuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhcbiAgICBjb2FjaEl0ZW06IENvYWNoSXRlbSxcbiAgICBkZWNrQ29hY2hJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoSXRlbS5ncmFwaGljRWxlbWVudHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tkZWNrQ29hY2hJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG4gICAgY29uc3QgY29hY2hCb3JkZXJFbGVtZW50ID0gY3VyckNvYWNoU3RydWN0dXJlLmJvcmRlck1pZGRsZUVsZW1lbnQ7XG4gICAgY29uc3QgaGFzT3ZlcmhhbmdpbmdFbGVtZW50cyA9IGN1cnJDb2FjaFN0cnVjdHVyZS5oYXNPdmVyaGFuZ2luZ0VsZW1lbnRzO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItY29hY2gtaGFzLW92ZXJoYW5naW5nLWVsZW1lbnRzJzogaGFzT3ZlcmhhbmdpbmdFbGVtZW50cyB8fCBmYWxzZSxcbiAgICAgICAgfSl9XCJcbiAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IGNvYWNoQm9yZGVyRWxlbWVudC5kaW1lbnNpb24udyxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCc6IGNvYWNoQm9yZGVyRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGNvYWNoQm9yZGVyRWxlbWVudC5wb3NpdGlvbi55LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IGNvYWNoQm9yZGVyRWxlbWVudC5wb3NpdGlvbi54LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgICB9KX1cbiAgICAgICAgbmFtZT1cIkNPQUNIX0JPUkRFUl9NSURETEVcIlxuICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRSb3dQbGFjZXMoXG4gICAgY29hY2g6IENvYWNoSXRlbSxcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBwbGFjZUNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoLnBsYWNlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIFByZXBhcmUgcm93cyB3aXRoIHRoZSBwbGFjZXMgdG8gcmVuZGVyIGEgdGFibGVcbiAgICBjb25zdCB0YWJsZVJvd1BsYWNlczogUmVjb3JkPG51bWJlciwgUGxhY2VbXT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBsYWNlIG9mIGNvYWNoLnBsYWNlcykge1xuICAgICAgaWYgKCF0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSkge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSA9IFtwbGFjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XS5wdXNoKHBsYWNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0YWJsZVJvd1BsYWNlcylcbiAgICAgIC5tYXAoKHJvd1BsYWNlczogUGxhY2VbXSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRyIGlkPVwicm93LSR7Y29hY2hJbmRleH0tJHtyb3dQbGFjZXNbMF0ucG9zaXRpb24ueX1cIiBkYXRhLXJvdy1pbmRleD0ke2luZGV4fT5cbiAgICAgICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2x1bW5QbGFjZXMoXG4gICAgICAgICAgICAgIHJvd1BsYWNlcyxcbiAgICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgICAgY29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICAgIHBsYWNlQ29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIGA7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHJvd1RlbXBsYXRlKSA9PiByb3dUZW1wbGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvbHVtblBsYWNlcyhcbiAgICBwbGFjZXM6IFBsYWNlW10sXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGRlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICAvL1NvcnRzIGVhY2ggcGxhY2UgYnkgaXRzIGFzY2VuZGluZyB4IGNvb3JkaW5hdGVcbiAgICBwbGFjZXMuc29ydChcbiAgICAgIChwbGFjZUE6IFBsYWNlLCBwbGFjZUI6IFBsYWNlKSA9PiBOdW1iZXIocGxhY2VBLnBvc2l0aW9uLngpIC0gTnVtYmVyKHBsYWNlQi5wb3NpdGlvbi54KSxcbiAgICApO1xuXG4gICAgLy8gRm9yIHJlbmRlcmluZyB0aGUgcGxhY2VzIHdpdGhpbiBhIHRkIGVsZW1lbnQsIGhlcmUgd2UgdXNlIHJlcGVhdCBkaXJlY3RpdmUgZm9yIGJldHRlciBwZXJmb3JtYW5jZSBmb3IgcmV1c2luZyBlbGVtZW50cyAodHJhY2sgYnkgaWQpLlxuICAgIGNvbnN0IHRyYWNrUGxhY2VJZCA9IGNvYWNoSW5kZXggKyAnLScgKyBwbGFjZUNvYWNoRGVja0luZGV4O1xuICAgIHJldHVybiBodG1sYCR7cmVwZWF0KFxuICAgICAgcGxhY2VzLFxuICAgICAgKHBsYWNlKSA9PiB0cmFja1BsYWNlSWQgKyAnLScgKyBwbGFjZS5udW1iZXIsXG4gICAgICAocGxhY2UsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24ocGxhY2UuZGltZW5zaW9uKTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24ocGxhY2UucG9zaXRpb24pO1xuICAgICAgICBjb25zdCByb3RhdGlvbiA9IHBsYWNlLnJvdGF0aW9uIHx8IDA7XG4gICAgICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbCA/IC05MCA6IDA7XG4gICAgICAgIGNvbnN0IHBsYWNlSWQgPSB0aGlzLmdldFBsYWNlRWxlbWVudElkKGRlY2tJbmRleCwgY29hY2hJbmRleCwgcGxhY2UubnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBpZD1cImNlbGwtJHtkZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtwbGFjZS5wb3NpdGlvbi55fS0ke2luZGV4fVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyYXBoaWNhbC1lbGVtZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbFxuICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtc2NhbGUtdmFsdWUnOiBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24uaCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10b3AnOiBjYWxjdWxhdGVkUG9zaXRpb24ueSxcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQnOiBjYWxjdWxhdGVkUG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXJvdGF0aW9uJzogcm90YXRpb24sXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXJvdGF0aW9uJzogdGV4dFJvdGF0aW9uLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgQHNlbGVjdHBsYWNlPSR7KHNlbGVjdFBsYWNlRXZlbnQ6IFNiYlBsYWNlU2VsZWN0aW9uRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50KX1cbiAgICAgICAgICAgICAgZXhwb3J0cGFydHM9XCJzYmItc3ItcGxhY2UtcGFydFwiXG4gICAgICAgICAgICAgIGlkPSR7cGxhY2VJZH1cbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0ZXh0PSR7cGxhY2UubnVtYmVyfVxuICAgICAgICAgICAgICB0eXBlPSR7cGxhY2UudHlwZX1cbiAgICAgICAgICAgICAgc3RhdGU9JHtwbGFjZS5zdGF0ZX1cbiAgICAgICAgICAgICAgdHJhdmVsLWRpcmVjdGlvbj0ke3RoaXMudHJhdmVsRGlyZWN0aW9ufVxuICAgICAgICAgICAgICBjb2FjaC1pbmRleD0ke2NvYWNoSW5kZXh9XG4gICAgICAgICAgICAgIGRlY2staW5kZXg9JHtwbGFjZUNvYWNoRGVja0luZGV4fVxuICAgICAgICAgICAgICBkYXRhLWRlY2staW5kZXg9JHtkZWNrSW5kZXh9XG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz0ke3BsYWNlLnByb3BlcnR5SWRzfVxuICAgICAgICAgICAgICAucHJldmVudENsaWNrPSR7dGhpcy5wcmV2ZW50UGxhY2VDbGlja31cbiAgICAgICAgICAgICAgP3Nob3dUaXRsZUluZm89XCIke3RoaXMuc2hvd1RpdGxlSW5mb31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICBgO1xuICAgICAgfSxcbiAgICApfWA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoRWxlbWVudHMoXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBjb25zdCBjdXJyQ29hY2hTdHJ1Y3R1cmUgPVxuICAgICAgdGhpcy5zZWF0UmVzZXJ2YXRpb25TdHJ1Y3R1cmUuZGVja3NbY29hY2hEZWNrSW5kZXhdLmRlY2tDb2FjaGVzW2NvYWNoSW5kZXhdO1xuXG4gICAgcmV0dXJuIGN1cnJDb2FjaFN0cnVjdHVyZS5vdGhlckVsZW1lbnRzLm1hcCgoZ3JhcGhpY0VsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiBodG1sYCA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLncsXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBncmFwaGljRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGdyYXBoaWNFbGVtZW50LnBvc2l0aW9uLnksXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1sZWZ0JzogZ3JhcGhpY0VsZW1lbnQucG9zaXRpb24ueCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uJzogZ3JhcGhpY0VsZW1lbnQucm90YXRpb24sXG4gICAgICAgIH0pfVxuICAgICAgICBuYW1lPSR7Z3JhcGhpY0VsZW1lbnQuaWNvbiA/PyBub3RoaW5nfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPmA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZEFyZWFFbGVtZW50cyhcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tjb2FjaERlY2tJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG5cbiAgICByZXR1cm4gY3VyckNvYWNoU3RydWN0dXJlLmFyZWFFbGVtZW50cy5tYXAoKGdyYXBoaWNFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VySWQgPSBgcG9wb3Zlci10cmlnZ2VyLSR7Y29hY2hEZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtncmFwaGljRWxlbWVudC5wb3NpdGlvbi54fS0ke2dyYXBoaWNFbGVtZW50LnBvc2l0aW9uLnl9YDtcbiAgICAgIGNvbnN0IGlzTm90VGFibGVHcmFwaGljID0gZ3JhcGhpY0VsZW1lbnQuaWNvbj8uaW5kZXhPZignVEFCTEUnKSA9PT0gLTE7XG4gICAgICBjb25zdCBhcmVhUHJvcGVydHkgPSBncmFwaGljRWxlbWVudC5pY29uICYmIGlzTm90VGFibGVHcmFwaGljID8gZ3JhcGhpY0VsZW1lbnQuaWNvbiA6IG51bGw7XG4gICAgICBjb25zdCBhcmlhTGFiZWxGb3JBcmVhID0gZ3JhcGhpY0VsZW1lbnQuaWNvblxuICAgICAgICA/IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oZ3JhcGhpY0VsZW1lbnQuaWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgOiBub3RoaW5nO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWFcbiAgICAgICAgICBpZD1cIiR7dHJpZ2dlcklkfVwiXG4gICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLS1jdXJzb3ItcG9pbnRlcic6IGFyZWFQcm9wZXJ0eSAhPT0gbnVsbCxcbiAgICAgICAgICB9KX1cIlxuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS13aWR0aCc6IGdyYXBoaWNFbGVtZW50LmRpbWVuc2lvbi53LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1oZWlnaHQnOiBncmFwaGljRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtdG9wJzogZ3JhcGhpY0VsZW1lbnQucG9zaXRpb24ueSxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtbGVmdCc6IGdyYXBoaWNFbGVtZW50LnBvc2l0aW9uLngsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLXotaW5kZXgnOiBncmFwaGljRWxlbWVudC5wb3NpdGlvbi56LFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIG1vdW50aW5nPSR7Z3JhcGhpY0VsZW1lbnQubW91bnRpbmcgPz8gbm90aGluZ31cbiAgICAgICAgICBiYWNrZ3JvdW5kPVwiZGFya1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICR7YXJlYVByb3BlcnR5XG4gICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLW1heC13aWR0aCc6IHRoaXMuZ2xvYmFsQXJlYUljb25EaW0udyxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtaGVpZ2h0JzogdGhpcy5nbG9iYWxBcmVhSWNvbkRpbS5oLFxuICAgICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiBncmFwaGljRWxlbWVudC5yb3RhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wYWRkaW5nLXBlcmNlbnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFyZWFQcm9wZXJ0eSAhPT0gJ0VOVFJZX0VYSVQnID8gdGhpcy5nbG9iYWxBcmVhSWNvblBhZGRpbmcgOiAxLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICBuYW1lPSR7YXJlYVByb3BlcnR5fVxuICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3ItZ3JhcGhpY19fZGltZW5zaW9uLS1zcXVhcmUtZGltXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAgICAgICBgXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYT5cbiAgICAgICAgJHthcmVhUHJvcGVydHkgPyB0aGlzLl9wb3BvdmVyKHRyaWdnZXJJZCwgYXJpYUxhYmVsRm9yQXJlYSkgOiBub3RoaW5nfVxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkU2VydmljZUVsZW1lbnRzKFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgY29uc3QgY3VyckNvYWNoU3RydWN0dXJlID1cbiAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uU3RydWN0dXJlLmRlY2tzW2NvYWNoRGVja0luZGV4XS5kZWNrQ29hY2hlc1tjb2FjaEluZGV4XTtcblxuICAgIHJldHVybiBjdXJyQ29hY2hTdHJ1Y3R1cmUuc2VydmljZUVsZW1lbnRzLm1hcCgoc2VydmljZUVsZW1lbnQ6IEJhc2VFbGVtZW50KSA9PiB7XG4gICAgICAvL2dlbmVyYXRlIHVuaXF1ZSBpbmRleCBudW1iZXIgZm9yIHRoZSB0cmlnZ2VyIGVsZW1lbnRcbiAgICAgIGNvbnN0IHRyaWdnZXJJZCA9IGBwb3BvdmVyLXRyaWdnZXItJHtjb2FjaERlY2tJbmRleH0tJHtjb2FjaEluZGV4fS0ke3NlcnZpY2VFbGVtZW50LnBvc2l0aW9uLnh9LSR7c2VydmljZUVsZW1lbnQucG9zaXRpb24ueX1gO1xuICAgICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbiA9IHNlcnZpY2VFbGVtZW50Lmljb25cbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHNlcnZpY2VFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogbnVsbDtcblxuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgaWQ9XCIke3RyaWdnZXJJZH1cIlxuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IHNlcnZpY2VFbGVtZW50LmRpbWVuc2lvbi53LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBzZXJ2aWNlRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtdG9wJzogc2VydmljZUVsZW1lbnQucG9zaXRpb24ueSxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IHNlcnZpY2VFbGVtZW50LnBvc2l0aW9uLngsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiBzZXJ2aWNlRWxlbWVudC5yb3RhdGlvbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtLWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICBuYW1lPSR7c2VydmljZUVsZW1lbnQuaWNvbiA/PyBub3RoaW5nfVxuICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgICR7dGhpcy5fcG9wb3Zlcih0cmlnZ2VySWQsIHRpdGxlRGVzY3JpcHRpb24pfVxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIHRoZSBzZWxlY3RlZCBwbGFjZSBldmVudCB0cmlnZ2VyZWQgZnJvbSB0aGUgcGxhY2VcbiAgICogRWFjaCBzZWxlY3Rpb24gZW1pdHMgYW4gYXJyYXkgb2YgYWxsIHNlbGVjdGVkIHBsYWNlc1xuICAgKiBAcGFyYW0gc2VsZWN0UGxhY2VFdmVudFxuICAgKi9cbiAgcHJpdmF0ZSBfb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50OiBTYmJQbGFjZVNlbGVjdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZSA9IHNlbGVjdFBsYWNlRXZlbnQuZGV0YWlsO1xuICAgIC8vIFdlIGhhdmUgdG8gc2V0IHByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayB0byB0cnVlLCB0byBwcmV2ZW50IGF1dG9tYXRpYyBzY3JvbGxpbmcgdG8gdGhlIG5ldyBmb2N1c2VkIHBsYWNlXG4gICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMuaXNDb2FjaEdyaWRGb2N1c2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID0gLTE7XG4gICAgLy8gQ2hlY2sgYW55IGtleWJvYXJkIGV2ZW50IHdhcyB0cmlnZ2VyZWQgaW5zaWRlIHRoZSBzZWF0IHJlc2VydmF0aW9uIGNvbXBvbmVudCxcbiAgICAvLyBzbyB3ZSBjYW4gc2F5IHRoZSBuYXRpdmUgYnJvd3NlciBmb2N1cyBsaWVzIG9uIHRoZSBjb21wb25lbnRcbiAgICBpZiAoIXRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMpIHtcbiAgICAgIHRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgLy8gQWRkIHBsYWNlIHRvIHBsYWNlIGNvbGxlY3Rpb25cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMoc2VsZWN0ZWRQbGFjZSk7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChzZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdE5hdkNvYWNoKGV2ZW50OiBTYmJTZWxlY3RDb2FjaEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWROYXZDb2FjaEluZGV4ID0gZXZlbnQuY29hY2hJbmRleDtcblxuICAgIHRoaXMuaXNLZXlib2FyZE5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IGZhbHNlO1xuICAgIHRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMgPSB0cnVlO1xuXG4gICAgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gbnVsbCAmJiBzZWxlY3RlZE5hdkNvYWNoSW5kZXggIT09IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCkge1xuICAgICAgdGhpcy51bmZvY3VzUGxhY2VFbGVtZW50KCk7XG4gICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChzZWxlY3RlZE5hdkNvYWNoSW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ID09PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfVxuXG4gICAgLy9jbG9zZSBhbGwgb3BlbmVkIHBvcG92ZXJzXG4gICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzTmF2Q29hY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljaykge1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudCh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXV0b1Njcm9sbGluZyA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwb3BvdmVyIGZvciBleHRyYSBzZXJ2aWNlIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB0cmlnZ2VySWRcbiAgICogQHBhcmFtIHBvcG92ZXJDb250ZW50XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9wb3BvdmVyKFxuICAgIHRyaWdnZXJJZDogc3RyaW5nLFxuICAgIHBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBudWxsIHwgdHlwZW9mIG5vdGhpbmcsXG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItcG9wb3ZlciB0cmlnZ2VyPVwiJHt0cmlnZ2VySWR9XCIgaG92ZXItdHJpZ2dlcj1cIlwiPlxuICAgICAgICA8cCBjbGFzcz1cInNiYi10ZXh0LXMgc2JiLXNyLXBvcG92ZXJcIj4ke3BvcG92ZXJDb250ZW50fTwvcD5cbiAgICAgIDwvc2JiLXBvcG92ZXI+XG4gICAgYDtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VyIHRvIGNsb3NlIGFsbCBvcGVuZWQgcG9wb3ZlcnMgKG5vcm1hbGx5IG9ubHkgb25lIGlzIG9wZW5lZCBhdCBhIHRpbWUpXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9jbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290XG4gICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGw8U2JiUG9wb3ZlckVsZW1lbnQ+KCdzYmItcG9wb3ZlcjpzdGF0ZShzdGF0ZS1vcGVuZWQpJylcbiAgICAgIC5mb3JFYWNoKChwb3BvdmVyKSA9PiBwb3BvdmVyLmNsb3NlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbTogQ29hY2hJdGVtKTogc3RyaW5nIHtcbiAgICAvL3Nob3cgZGlmZmVyZW50IHRhYmxlIGNhcHRpb24gZm9yIHNjcmVlbnJlYWRlciBpZiBpdCBpcyBhIGxvY29tb3RpdmVcbiAgICBpZiAoY29hY2hJdGVtLnR5cGUgPT09ICdMT0NPTU9USVZFX0NPQUNIJykge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0xPQ09NT1RJVkUnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoIWNvYWNoSXRlbS5wbGFjZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0JMT0NLRURfVEFCTEVfQ0FQVElPTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgY29hY2hJdGVtLmlkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgbGV0IHRhYmxlQ29hY2hEZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGNvbnN0IGFyZWFEZXNjcmlwdGlvbnMgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzISk7XG4gICAgY29uc3Qgc2VydmljZURlc2NyaXB0aW9ucyA9IHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25MaXN0U3RyaW5nKGNvYWNoSXRlbS5zZXJ2aWNlRWxlbWVudHMhKTtcblxuICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX1RBQkxFX0NBUFRJT04nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICBjb2FjaEl0ZW0uaWQsXG4gICAgXSk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvbikge1xuICAgICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgICAgY29uc3QgZnJlZVBsYWNlcyA9IHRoaXMuZ2V0QXZhaWxhYmxlRnJlZVBsYWNlc051bUZyb21Db2FjaChjb2FjaEl0ZW0ucGxhY2VzKTtcbiAgICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnQ09BQ0hfQVZBSUxBQkxFX05VTUJFUl9PRl9QTEFDRVMnLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbZnJlZVBsYWNlcy5zZWF0cywgZnJlZVBsYWNlcy5iaWN5Y2xlc10sXG4gICAgICApO1xuICAgICAgdGFibGVDb2FjaERlc2NyaXB0aW9uID0gdGFibGVDb2FjaERlc2NyaXB0aW9uLmNvbmNhdCgnLiAnKS5jb25jYXQoZnJlZVBsYWNlc1R4dCkuY29uY2F0KCcuICcpO1xuICAgIH1cblxuICAgIGlmICghIWFyZWFEZXNjcmlwdGlvbnMgfHwgISFzZXJ2aWNlRGVzY3JpcHRpb25zKSB7XG4gICAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gKz1cbiAgICAgICAgJy4gJyArIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiArPSBzZXJ2aWNlRGVzY3JpcHRpb25zICsgJywgJyArIGFyZWFEZXNjcmlwdGlvbnMgKyAnLic7XG4gICAgfVxuICAgIHJldHVybiB0YWJsZUNvYWNoRGVzY3JpcHRpb247XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhkZXNjcmlwdGlvbnNFbGVtZW50czogQmFzZUVsZW1lbnRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdW5pcXVlRGVzY3JpcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uc0VsZW1lbnRzXG4gICAgICA/Lm1hcCgoZGVzY3JpcHRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGljb24gPSBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbjtcbiAgICAgICAgaWYgKCFpY29uKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkFscmVhZHlFeGlzdCA9IHVuaXF1ZURlc2NyaXB0aW9ucy5pbmRleE9mKGljb24pID4gLTE7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbiEsXG4gICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaXNWYWxpZERlc2NyaXB0aW9uID1cbiAgICAgICAgICB0aGlzLm5vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zLmluZGV4T2YoaWNvbikgPT09IC0xICYmXG4gICAgICAgICAgdGhpcy5ub3RBcmVhRWxlbWVudHMuaW5kZXhPZihpY29uKSA9PT0gLTE7XG5cbiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbkFscmVhZHlFeGlzdCkge1xuICAgICAgICAgIHVuaXF1ZURlc2NyaXB0aW9ucy5wdXNoKGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhdHJhbnNsYXRpb24gJiYgIWRlc2NyaXB0aW9uQWxyZWFkeUV4aXN0ICYmIGlzVmFsaWREZXNjcmlwdGlvbiA/IHRyYW5zbGF0aW9uIDogbnVsbDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChkZXNjcmlwdGlvbikgPT4gISFkZXNjcmlwdGlvbilcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbic6IFNiYlNlYXRSZXNlcnZhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzBDQSxJQUFhLDRCQUFiLGNBQStDLDJCQUEwQjtDQUF6RSxjQUFBOztFQWtCVSxLQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtDQWtwQnBEOztFQW5xQmtDLEtBQUEsY0FBc0I7Q0FBdUI7O0VBQ3RELEtBQUEsc0JBQXdDO0dBQzdEO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBOztDQUNBOztFQUNxQixLQUFBLFNBQXlCO0dBQzlDO0dBQ0E7R0FDQTtHQUNBLFVBQVUsd0JBQUs7O0NBQ2Y7Q0FLaUIsV0FBVyxtQkFBdUM7RUFDbkUsTUFBTSxXQUFXLGlCQUFpQjtFQUVsQyxJQUFJLGtCQUFrQixJQUFJLGVBQWUsR0FDdkMsSUFBSSxLQUFLLGVBQ1AsS0FBSyxZQUNELGlCQUFpQixPQUFPLEVBQ3pCLFNBQVMsVUFBVSxNQUFNLGdCQUFnQixVQUFVLENBQUM7T0FFdkQsS0FBSyxZQUNELGlCQUFpQixPQUFPLEVBQ3pCLFNBQVMsVUFBVSxNQUFNLGFBQWEsWUFBWSxHQUFHLENBQUM7Q0FHL0Q7Q0FFbUIsYUFBYSxtQkFBdUM7RUFDckUsTUFBTSxhQUFhLGlCQUFpQjtFQUdwQyxLQUFLLGVBQWUsV0FBVTtHQUM1QixLQUFLLHFDQUFvQztFQUMzQyxDQUFDO0NBQ0g7Q0FFbUIsU0FBTTtFQUN2QixLQUFLLHdDQUF1QztFQUM1QyxPQUFPLEtBQUssd0JBQXdCO0NBQ3RDO0NBRVEsMENBQXVDO0VBQzdDLEtBQUssdUJBQXVCLElBQUk7UUFDNUIsS0FBSyx1QkFBc0IsRUFBQTs7VUFFekIsS0FBSyxrQkFBaUIsRUFBQTs7O3NCQUdWLFFBQXVCLEtBQUssNkJBQTZCLEdBQUcsRUFBQTs7cURBRTdCLEtBQUssa0JBQWlCLEVBQUU7OzRCQUVqRCxLQUFLLG1CQUFrQixF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
473
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQtREk5cFNsenQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5AdXNlICcuLi9jb21tb24vc3R5bGVzL3NlYXQtcmVzZXJ2YXRpb24tbWl4aW5zJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuLy8gTWF4aW11bSByZXNwb25zaXZlIG5hdmlnYXRpb24gd2lkdGgsIGNvbnNpc3RzIG9mIHRoZSBtYXhpbXVtIG5hdmlnYXRpb24gZXh0ZW50IG1pbnVzIDJ4IG5hdiBkaXJlY3Rpb24gYnV0dG9ucyA5NnB4IGFuZCA4cHggcGFkZGluZy5cbiRtYXgtY29hY2gtbmF2aWdhdGlvbi13aWR0aDogY2FsYyg5NjBweCAtIDk2cHggLSA4cHgpO1xuJHNjcm9sbGJhci1oZWlnaHQ6IDE2cHg7XG5cbjpob3N0IHtcbiAgLy8gTm90ZTogVGhlIHVzZSBvZiBweCBpcyBpbnRlbnRpb25hbCBoZXJlLCBiZWNhdXNlIG1hbnkgd2lkdGhzL2hlaWdodHMsIHJvdGF0aW9ucywgc2NhbGVzLCBldGMuIGRlcGVuZHMgb24gdGhpcy5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmlkLXNpemU6IDE2cHg7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24taGVpZ2h0OiAwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWRlY2tzOiAxO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG5cbiAgOjpwYXJ0KGNvYWNoLWZsb29yKSB7XG4gICAgZmlsbDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG5cbiAgICAvLyBJbiBIaWdoIENvbnRyYXN0IE1vZGUgd2Ugc2V0IGZsb29yIGNvbG9yIHRvIHRyYW5zcGFyZW50XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyByb3RhdGVzIHRoZSBET00tcGFydCBcImNvYWNoLWZsb29yXCIgYnkgMTgwIGRlZ3JlZXMgaWYgdGhlIGhvc3QgaXMgaW4gUlRMIG1vZGUuXG5AaW5jbHVkZSBzYmItc3ItbWl4aW5zLnJvdGF0ZS1kb20tcGFydChjb2FjaC1mbG9vcik7XG5cbi5zYmItc3ItcG9wb3ZlciB7XG4gIG1hcmdpbi1ibG9jazogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG59XG5cbi8vIFNUQVJUIC0gVmVydGljYWwgbW9kZVxuOmhvc3QoW2FsaWduLXZlcnRpY2FsXSkge1xuICAkY29hY2gtbmF2aWdhdGlvbi1wYWRkaW5nOiA1O1xuICAkY29hY2gtc2Nyb2xsYmFyLXdpZHRoOiAyNDtcbiAgJGNvYWNoLWdyaWQtd2lkdGg6IGNhbGModmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24taGVpZ2h0KSArICRjb2FjaC1zY3JvbGxiYXItd2lkdGgpO1xuXG4gIC5zYmItc3JfX2NvbXBvbmVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMik7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgICAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg1NCk7XG4gICAgfVxuXG4gICAgbmF2LnNiYi1zci1uYXZpZ2F0aW9uLFxuICAgIHVsLnNiYi1zci1uYXZpZ2F0aW9uX19saXN0LWNvYWNoZXMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBuYXYuc2JiLXNyLW5hdmlnYXRpb24ge1xuICAgICAgcGFkZGluZzogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpIDA7XG5cbiAgICAgIC5zYmItc3JfX25hdmlnYXRpb24tY29udHJvbC1idXR0b24ge1xuICAgICAgICBsZWZ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxKTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByb3RhdGU6IDkwZGVnO1xuXG4gICAgICAgIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAgICAgICBsZWZ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdWwuc2JiLXNyLW5hdmlnYXRpb25fX2xpc3QtY29hY2hlcyB7XG4gICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcblxuICAgICAgICAvLyBQYWRkaW5nIG5lZWRzIHRvIHZpc3VhbCBmb2N1cy12aXNpYmxlIHN0eWxlIGZvciBuYXYgYnV0dG9uIGluc2lkZSBvdmVyZmxvdyBjb250ZW50LFxuICAgICAgICAvLyBvdGhlcndpc2UgZm9jdXMtdmlzaWJsZSBzdHlsZSBpcyBjdXR0ZWQuXG4gICAgICAgIHBhZGRpbmc6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKCRjb2FjaC1uYXZpZ2F0aW9uLXBhZGRpbmcpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuIHNjcm9sbDtcblxuICAgICAgICAvLyBpbiB2ZXJ0aWNhbCBtb2RlLCB0aGUgbGkgbXVzdCBiZSBmbGV4ZWQ7IG90aGVyd2lzZSBpdCB3b3VsZCBjYWxjdWxhdGUgdGhlIHdyb25nIGhlaWdodFxuICAgICAgICAvLyBkdWUgdG8gdXNlcmFnZW50IHN0eWxlIHNldCB0byBcImxpc3QtaXRlbVwiIGZvciBkaXNwbGF5XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVkVSVElDQUwgTU9ERSAtIExBQkVMTVVMVElQTEUgREVDS1MgLSBMQUJFTFNcbiAgLnNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrcyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5zYmItc3JfX3dyYXBwZXItZGVjay1sYWJlbHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKCRjb2FjaC1ncmlkLXdpZHRoKTtcbiAgICAgIGhlaWdodDogaW5pdGlhbDtcblxuICAgICAgYiB7XG4gICAgICAgIGlubGluZS1zaXplOiBjYWxjKDUwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE2KSk7XG4gICAgICAgIGJsb2NrLXNpemU6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDIwKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICAgICAgICByb3RhdGU6IGluaXRpYWw7XG4gICAgICAgIHdyaXRpbmctbW9kZTogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWRVJUSUNBTCBNT0RFIC0gU0VBVE1BUCBTQ1JPTEwgQVJFQVxuICAuc2JiLXNyX193cmFwcGVyLXNjcm9sbGFyZWEge1xuICAgIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgkY29hY2gtZ3JpZC13aWR0aCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW4gc2Nyb2xsO1xuXG4gICAgLnNiYi1zcl9fcGFyZW50IHtcbiAgICAgIHJvdGF0ZTogOTBkZWc7XG4gICAgfVxuICB9XG5cbiAgLy8gVkVSVElDQUwgTU9ERSAtIFRSQVZFTC1ESVJFQ1RJT05cbiAgLnNiYi1zci10cmF2ZWwtZGlyZWN0aW9uLXdyYXBwZXIge1xuICAgIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1oZWlnaHQpKTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuICB9XG59XG5cbi8vIEVORCAtIFZlcnRpY2FsIG1vZGVcblxuLnNiYi1zci1uYXZpZ2F0aW9uIHtcbiAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uIC5zYmItc3JfX25hdmlnYXRpb24tY29udHJvbC1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMik7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG4uc2JiLXNyX19jb21wb25lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IGNhbGMoc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNjQpIC0gJHNjcm9sbGJhci1oZWlnaHQpO1xufVxuXG4vLyBUUkFWRUwgRElSRUNUSU9OXG4uc2JiLXNyLXRyYXZlbC1kaXJlY3Rpb24td3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg0KTtcbiAgbWFyZ2luLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG5cbiAgLnNiYi1zcl9fdHJhdmVsLWRpcmVjdGlvbi0tYXJyb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4vLyBOQVZJR0FUSU9OIE5FV1xuLnNiYi1zci1uYXZpZ2F0aW9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctaW5saW5lOiAxNnB4O1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2xpc3QtY29hY2hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuICBwYWRkaW5nOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg2KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg1KSAwO1xuICBtYXgtd2lkdGg6ICRtYXgtY29hY2gtbmF2aWdhdGlvbi13aWR0aDtcblxuICAvLyBTZXQgc2JiIHNjcm9sbGJhciB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4gIC0tc2JiLXNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgb3ZlcmZsb3c6IHNjcm9sbCBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tIFNlYXQgUmVzZXJ2YXRpb24gTWFpbiBOYXZpZ2F0aW9uIC0gRU5EIC0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLSBTZWF0IFJlc2VydmF0aW9uIENvYWNoZXMgLSBTVEFSVCAtLS0tLS0tLS0tLS0tLS0tLVxuLnNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogaW5oZXJpdDtcblxuICAuc2JiLXNyX193cmFwcGVyLWRlY2stbGFiZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWhlaWdodCkpO1xuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG5cbiAgICBiIHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNikpO1xuICAgICAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDIwKTtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDE2cHg7XG4gICAgICByb3RhdGU6IDE4MGRlZztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3JfX3dyYXBwZXItc2Nyb2xsYXJlYSB7XG4gIG92ZXJmbG93OiBzY3JvbGwgaGlkZGVuO1xuICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG5cbiAgLnNiYi1zcl9fcGFyZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5zYmItc3JfX2xpc3QtZGVja3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2JiLXNyX19saXN0LWRlY2tzLS1nYXAge1xuICBnYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQ4KTtcbn1cblxuLnNiYi1zcl9fbGlzdC1pdGVtLWRlY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYmItc3JfX2xpc3QtY29hY2hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG59XG5cbi8vIElmIHRoZXJlIGFyZSBvdmVyaGFuZ2luZyBlbGVtZW50cyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZSBnYXAgYmV0d2VlbiBjb2FjaGVzXG4uc2JiLXNyX19saXN0LWRlY2tzOmhhcyguc2JiLXNyLWNvYWNoLWhhcy1vdmVyaGFuZ2luZy1lbGVtZW50cykgLnNiYi1zcl9fbGlzdC1jb2FjaGVzIHtcbiAgZ2FwOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KTtcbn1cblxuLnNiYi1zcl9faXRlbS1jb2FjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNiYi1zci1jb2FjaC13cmFwcGVyX190YWJsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4iLCJpbXBvcnQgeyBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvYnV0dG9uLnB1cmUuanMnO1xuaW1wb3J0IHtcbiAgbGlzdFJlc2V0U3R5bGVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG4gIHNjcm9sbGJhclN0eWxlcyxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3BvcG92ZXIucHVyZS5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcC5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyBnZXRJMThuU2VhdFJlc2VydmF0aW9uIH0gZnJvbSAnLi4vY29tbW9uL3RyYW5zbGF0aW9ucy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhc2VFbGVtZW50LFxuICBDb2FjaEl0ZW0sXG4gIENvYWNoSXRlbURldGFpbHMsXG4gIFBsYWNlLFxuICBTZWF0UmVzZXJ2YXRpb24sXG59IGZyb20gJy4uL2NvbW1vbi90eXBlcy50cyc7XG5pbXBvcnQgeyBTYmJTZWF0UmVzZXJ2YXRpb25BcmVhRWxlbWVudCB9IGZyb20gJy4uL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS9zZWF0LXJlc2VydmF0aW9uLWFyZWEuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IH0gZnJvbSAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5jb21wb25lbnQudHMnO1xuaW1wb3J0IHtcbiAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCxcbiAgdHlwZSBTYmJTZWxlY3RDb2FjaEV2ZW50LFxufSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyc7XG5pbXBvcnQge1xuICB0eXBlIFNiYlBsYWNlU2VsZWN0aW9uRXZlbnQsXG4gIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQsXG59IGZyb20gJy4uL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvblNjb3BlZEVsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgeyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQudHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogTWFpbiBjb21wb25lbnQgZm9yIHRoZSBzZWF0IHJlc2VydmF0aW9uLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50LFxuICAgIFNiYlBvcG92ZXJFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50LFxuICAgIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQsXG4gICAgU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudCxcbiAgICBTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgbGlzdFJlc2V0U3R5bGVzLFxuICAgIHNjcm9sbGJhclN0eWxlcyxcbiAgICBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzLFxuICAgIHVuc2FmZUNTUyhzdHlsZSksXG4gIF07XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9jb2FjaGVzSHRtbFRlbXBsYXRlPzogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoYXNOYXZpZ2F0aW9uJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB3YWl0IHVudGlsIHRoZSBmaXJzdCB1cGRhdGUgaXMgY29tcGxldGUgdG8gaW5pdCBkaWZmZXJlbnQgSFRNTCBlbGVtZW50IGRpbWVuc2lvbnNcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5pbml0TmF2aWdhdGlvblNlbGVjdGlvbkJ5U2Nyb2xsRXZlbnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICB0aGlzLl9pbml0VmVoaWNsZVNlYXRSZXNlcnZhdGlvbkNvbnN0cnVjdGlvbigpO1xuICAgIHJldHVybiB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9pbml0VmVoaWNsZVNlYXRSZXNlcnZhdGlvbkNvbnN0cnVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlID0gaHRtbGBcbiAgICAgICR7dGhpcy5fcmVuZGVyVHJhdmVsRGlyZWN0aW9uKCl9XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNyX19jb21wb25lbnRcIj5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJOYXZpZ2F0aW9uKCl9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1zcl9fd3JhcHBlci1jb2FjaC1kZWNrc1wiXG4gICAgICAgICAgQGtleWRvd249JHsoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmtleWJvYXJkU2VhdG1hcEV2ZW50SGFuZGxpbmcoZXZ0KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItZGVjay1sYWJlbHNcIj4ke3RoaXMuX3JlbmRlckRlY2tMYWJlbHMoKX08L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5jb2FjaEFyZWFTY3JvbGxlbmQoKX1cbiAgICAgICAgICAgIGlkPVwic2JiLXNyX193cmFwcGVyLXNjcm9sbGFyZWFcIlxuICAgICAgICAgICAgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXItc2Nyb2xsYXJlYSBzYmItc2Nyb2xsYmFyXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJzYmItc3JfX3BhcmVudC1hcmVhXCIgY2xhc3M9XCJzYmItc3JfX3BhcmVudFwiPlxuICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICAgICAgICAgJ3NiYi1zcl9fbGlzdC1kZWNrcyc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAnc2JiLXNyX19saXN0LWRlY2tzLS1nYXAnOiB0aGlzLmhhc011bHRpcGxlRGVja3MsXG4gICAgICAgICAgICAgICAgfSl9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7dGhpcy5zZWF0UmVzZXJ2YXRpb25zPy5tYXAoXG4gICAgICAgICAgICAgICAgICAoc2VhdFJlc2VydmF0aW9uOiBTZWF0UmVzZXJ2YXRpb24sIGNvYWNoRGVja0luZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpIGNsYXNzPVwic2JiLXNyX19saXN0LWl0ZW0tZGVja1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNiYi1zcl9fbGlzdC1jb2FjaGVzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJDb2FjaGVzKHNlYXRSZXNlcnZhdGlvbiwgY29hY2hEZWNrSW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+YDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEZWNrTGFiZWxzKCk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaGFzTXVsdGlwbGVEZWNrcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VhdFJlc2VydmF0aW9ucy5tYXAoKHNlYXRSZXNlcnZhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGVja0Rlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaExldmVsLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybiBodG1sYDxiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7ZGVja0Rlc2NyaXB0aW9ufTwvYj5gO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oYnRuRGlyZWN0aW9uOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uIHx8ICF0aGlzLnNlYXRSZXNlcnZhdGlvbnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBidG5OYXZpZ2F0aW9uRGlyZWN0aW9uSWQgPVxuICAgICAgYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fUklHSFQnXG4gICAgICAgID8gJ3NiYi1zci1uYXZpZ2F0aW9uX193cmFwcGVyLWJ1dHRvbi1kaXJlY3Rpb24tLXJpZ2h0J1xuICAgICAgICA6ICdzYmItc3ItbmF2aWdhdGlvbl9fd3JhcHBlci1idXR0b24tZGlyZWN0aW9uLS1sZWZ0JztcbiAgICBjb25zdCBidG5JY29uID1cbiAgICAgIGJ0bkRpcmVjdGlvbiA9PSAnRElSRUNUSU9OX1JJR0hUJyA/ICdjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsJyA6ICdjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGwnO1xuICAgIGNvbnN0IGJ0bkFyaWFEZXNjcmlwdGlvbiA9XG4gICAgICBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCdcbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdTRUFUX1JFU0VSVkFUSU9OX0VORCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogZ2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9CRUdJTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpO1xuICAgIGxldCBidG5EaXNhYmxlZCA9IHRydWU7XG5cbiAgICBpZiAoYnRuRGlyZWN0aW9uID09ICdESVJFQ1RJT05fTEVGVCcgJiYgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPiAwKSB7XG4gICAgICBidG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBidG5EaXJlY3Rpb24gPT0gJ0RJUkVDVElPTl9SSUdIVCcgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4IDwgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzRWxlbWVudHMubGVuZ3RoIC0gMVxuICAgICkge1xuICAgICAgYnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX3dyYXBwZXItYnV0dG9uLWRpcmVjdGlvblwiPlxuICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgIEBjbGljaz1cIiR7KCkgPT4gdGhpcy5uYXZpZ2F0ZUJ5RGlyZWN0aW9uQnRuKGJ0bkRpcmVjdGlvbil9XCJcbiAgICAgICAgQGZvY3VzPVwiJHsoKSA9PiB0aGlzLm9uRm9jdXNOYXZEaXJlY3Rpb25CdXR0b24oKX1cIlxuICAgICAgICBpZD1cIiR7YnRuTmF2aWdhdGlvbkRpcmVjdGlvbklkfVwiXG4gICAgICAgIGNsYXNzPVwic2JiLXNyX19uYXZpZ2F0aW9uLWNvbnRyb2wtYnV0dG9uXCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBpY29uLW5hbWU9XCIke2J0bkljb259XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCIke2J0bkFyaWFEZXNjcmlwdGlvbn1cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgLmRpc2FibGVkSW50ZXJhY3RpdmU9XCIke2J0bkRpc2FibGVkIHx8IG5vdGhpbmd9XCJcbiAgICAgICAgLmRpc2FibGVkPVwiJHtidG5EaXNhYmxlZCB8fCBub3RoaW5nfVwiXG4gICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyVHJhdmVsRGlyZWN0aW9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnRyYXZlbERpcmVjdGlvbiB8fCB0aGlzLnRyYXZlbERpcmVjdGlvbiA9PT0gJ05PTkUnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbFRleHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgJ1NFQVRfUkVTRVJWQVRJT05fVFJBVkVMX0RJUkVDVElPTicsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICk7XG5cbiAgICBjb25zdCBhcnJvd0RpcmVjdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbFxuICAgICAgPyB0aGlzLnRyYXZlbERpcmVjdGlvbiA9PT0gJ1JJR0hUJ1xuICAgICAgICA/ICdkb3duJ1xuICAgICAgICA6ICd1cCdcbiAgICAgIDogdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdSSUdIVCdcbiAgICAgICAgPyAncmlnaHQnXG4gICAgICAgIDogJ2xlZnQnO1xuXG4gICAgY29uc3QgaWNvbk5hbWUgPSBgYXJyb3ctJHthcnJvd0RpcmVjdGlvbn0tc21hbGxgO1xuXG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci10cmF2ZWwtZGlyZWN0aW9uLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3RyYXZlbC1kaXJlY3Rpb24tLWFycm93XCI+XG4gICAgICAgIDxzYmItaWNvbiBzbG90PVwiaWNvblwiIG5hbWU9XCIke2ljb25OYW1lfVwiPjwvc2JiLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3RyYXZlbC1kaXJlY3Rpb24tLWxhYmVsXCI+JHtsYWJlbFRleHR9PC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlck5hdmlnYXRpb24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzTmF2aWdhdGlvbiB8fCAhdGhpcy5zZWF0UmVzZXJ2YXRpb25zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLXdyYXBwZXJcIj5cbiAgICAgIDxuYXYgaWQ9XCJzYmItc3ItbmF2aWdhdGlvblwiIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25cIj5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJOYXZpZ2F0aW9uQ29udHJvbEJ1dHRvbignRElSRUNUSU9OX0xFRlQnKX1cbiAgICAgICAgPHVsXG4gICAgICAgICAgaWQ9XCJzYmItc3JfX25hdmlnYXRpb24tbGlzdC1jb2FjaGVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19saXN0LWNvYWNoZXMgc2JiLXNjcm9sbGJhclwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgICAgICdTRUFUX1JFU0VSVkFUSU9OX05BVklHQVRJT04nLFxuICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgICApfVwiXG4gICAgICAgID5cbiAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlsc0VsZW1lbnRzLm1hcChcbiAgICAgICAgICAgIChjb2FjaEl0ZW1EZXRhaWxzOiBDb2FjaEl0ZW1EZXRhaWxzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBodG1sYDxsaT5cbiAgICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaFxuICAgICAgICAgICAgICAgICAgQHNlbGVjdGNvYWNoPSR7KGV2ZW50OiBTYmJTZWxlY3RDb2FjaEV2ZW50KSA9PiB0aGlzLl9vblNlbGVjdE5hdkNvYWNoKGV2ZW50KX1cbiAgICAgICAgICAgICAgICAgIEBmb2N1c2NvYWNoPSR7KCkgPT4gdGhpcy5fb25Gb2N1c05hdkNvYWNoKCl9XG4gICAgICAgICAgICAgICAgICBAa2V5dXA9JHsoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9uS2V5TmF2aWdhdGlvbk5hdkNvYWNoQnV0dG9uKGV2dCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgaW5kZXg9XCIke2luZGV4fVwiXG4gICAgICAgICAgICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgICAgICAuZm9jdXNlZD0ke3RoaXMuZm9jdXNlZENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgICAgLmhvdmVyZWQ9JHt0aGlzLmhvdmVyZWRDb2FjaEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgICAgICAgICAgIC5uYXRpdmVGb2N1c0FjdGl2ZT0ke3RoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAuY29hY2hJdGVtRGV0YWlscz1cIiR7Y29hY2hJdGVtRGV0YWlsc31cIlxuICAgICAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLmFsaWduVmVydGljYWx9XCJcbiAgICAgICAgICAgICAgICAgID9zaG93VGl0bGVJbmZvPVwiJHt0aGlzLnNob3dUaXRsZUluZm99XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoPlxuICAgICAgICAgICAgICA8L2xpPmA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvdWw+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbkNvbnRyb2xCdXR0b24oJ0RJUkVDVElPTl9SSUdIVCcpfVxuICAgICAgPC9uYXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHJldHVybnNcbiAgICogQHBhcmFtIHNlYXRSZXNlcnZhdGlvblxuICAgKiBAcGFyYW0gY29hY2hEZWNrSW5kZXhcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNvYWNoZXMoXG4gICAgc2VhdFJlc2VydmF0aW9uOiBTZWF0UmVzZXJ2YXRpb24sXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGNvbnN0IGNvYWNoZXM6IENvYWNoSXRlbVtdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXMpKTtcblxuICAgIGlmICghY29hY2hlcyB8fCBpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjb2FjaGVzLm1hcCgoY29hY2hJdGVtOiBDb2FjaEl0ZW0sIGNvYWNoSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1zcl9faXRlbS1jb2FjaFwiPlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgICAgICAgICAgY29hY2hJdGVtLFxuICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgIGNvYWNoRGVja0luZGV4LFxuICAgICAgICAgICAgc2VhdFJlc2VydmF0aW9uLmRlY2tDb2FjaEluZGV4LFxuICAgICAgICAgICl9XG4gICAgICAgIDwvbGk+XG4gICAgICBgO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29hY2hFbGVtZW50KFxuICAgIGNvYWNoSXRlbTogQ29hY2hJdGVtLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tjb2FjaERlY2tJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG4gICAgY29uc3QgZGVzY3JpcHRpb25UYWJsZUNvYWNoV2l0aFNlcnZpY2VzID0gdGhpcy5fZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbSk7XG5cbiAgICByZXR1cm4gaHRtbGA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLXdpZHRoJzogY3VyckNvYWNoU3RydWN0dXJlLndpZHRoLFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtaGVpZ2h0JzogY3VyckNvYWNoU3RydWN0dXJlLmhlaWdodCxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtLCBjb2FjaERlY2tJbmRleCwgY29hY2hJbmRleCl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkQ29hY2hFbGVtZW50cyhjb2FjaERlY2tJbmRleCwgY29hY2hJbmRleCl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkQXJlYUVsZW1lbnRzKGNvYWNoRGVja0luZGV4LCBjb2FjaEluZGV4KX1cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRTZXJ2aWNlRWxlbWVudHMoY29hY2hEZWNrSW5kZXgsIGNvYWNoSW5kZXgpfVxuXG4gICAgICA8dGFibGVcbiAgICAgICAgQGZvY3VzPSR7KCkgPT4gdGhpcy5vbkZvY3VzVGFibGVDb2FjaEFuZFByZXNlbGVjdFBsYWNlKGNvYWNoSW5kZXgpfVxuICAgICAgICBpZD1cInNiYi1zci1jb2FjaC0ke2NvYWNoSW5kZXh9XCJcbiAgICAgICAgY2xhc3M9XCJzYmItc3ItY29hY2gtd3JhcHBlcl9fdGFibGVcIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwic2JiLXNyLWNvYWNoLWNhcHRpb24tJHtjb2FjaEluZGV4fVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8Y2FwdGlvbiBpZD1cInNiYi1zci1jb2FjaC1jYXB0aW9uLSR7Y29hY2hJbmRleH1cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXN9PC9zcGFuPlxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRSb3dQbGFjZXMoY29hY2hJdGVtLCBjb2FjaEluZGV4LCBjb2FjaERlY2tJbmRleCwgcGxhY2VDb2FjaERlY2tJbmRleCl9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPmA7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgYm9yZGVyIGdyYXBoaWMgKENPQUNIX0JPUkRFUl9NSURETEUpIG9mIGEgY29hY2ggd2l0aCBjYWxjdWxhdGVkIGJvcmRlciBnYXAgYW5kIGNvYWNoIHdpZHRoLFxuICAgKiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY29hY2ggaXMgd2l0aCBhIGRyaXZlciBhcmVhIG9yIHdpdGhvdXQuXG4gICAqL1xuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhcbiAgICBjb2FjaEl0ZW06IENvYWNoSXRlbSxcbiAgICBkZWNrQ29hY2hJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoSXRlbS5ncmFwaGljRWxlbWVudHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tkZWNrQ29hY2hJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG4gICAgY29uc3QgY29hY2hCb3JkZXJFbGVtZW50ID0gY3VyckNvYWNoU3RydWN0dXJlLmJvcmRlck1pZGRsZUVsZW1lbnQ7XG4gICAgY29uc3QgaGFzT3ZlcmhhbmdpbmdFbGVtZW50cyA9IGN1cnJDb2FjaFN0cnVjdHVyZS5oYXNPdmVyaGFuZ2luZ0VsZW1lbnRzO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItY29hY2gtaGFzLW92ZXJoYW5naW5nLWVsZW1lbnRzJzogaGFzT3ZlcmhhbmdpbmdFbGVtZW50cyB8fCBmYWxzZSxcbiAgICAgICAgfSl9XCJcbiAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IGNvYWNoQm9yZGVyRWxlbWVudC5kaW1lbnNpb24udyxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCc6IGNvYWNoQm9yZGVyRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGNvYWNoQm9yZGVyRWxlbWVudC5wb3NpdGlvbi55LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IGNvYWNoQm9yZGVyRWxlbWVudC5wb3NpdGlvbi54LFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgICB9KX1cbiAgICAgICAgbmFtZT1cIkNPQUNIX0JPUkRFUl9NSURETEVcIlxuICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRSb3dQbGFjZXMoXG4gICAgY29hY2g6IENvYWNoSXRlbSxcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBwbGFjZUNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoLnBsYWNlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIFByZXBhcmUgcm93cyB3aXRoIHRoZSBwbGFjZXMgdG8gcmVuZGVyIGEgdGFibGVcbiAgICBjb25zdCB0YWJsZVJvd1BsYWNlczogUmVjb3JkPG51bWJlciwgUGxhY2VbXT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBsYWNlIG9mIGNvYWNoLnBsYWNlcykge1xuICAgICAgaWYgKCF0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSkge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSA9IFtwbGFjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XS5wdXNoKHBsYWNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0YWJsZVJvd1BsYWNlcylcbiAgICAgIC5tYXAoKHJvd1BsYWNlczogUGxhY2VbXSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRyIGlkPVwicm93LSR7Y29hY2hJbmRleH0tJHtyb3dQbGFjZXNbMF0ucG9zaXRpb24ueX1cIiBkYXRhLXJvdy1pbmRleD0ke2luZGV4fT5cbiAgICAgICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2x1bW5QbGFjZXMoXG4gICAgICAgICAgICAgIHJvd1BsYWNlcyxcbiAgICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICAgICAgY29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICAgIHBsYWNlQ29hY2hEZWNrSW5kZXgsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIGA7XG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKHJvd1RlbXBsYXRlKSA9PiByb3dUZW1wbGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvbHVtblBsYWNlcyhcbiAgICBwbGFjZXM6IFBsYWNlW10sXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICAgIGRlY2tJbmRleDogbnVtYmVyLFxuICAgIHBsYWNlQ29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICAvL1NvcnRzIGVhY2ggcGxhY2UgYnkgaXRzIGFzY2VuZGluZyB4IGNvb3JkaW5hdGVcbiAgICBwbGFjZXMuc29ydChcbiAgICAgIChwbGFjZUE6IFBsYWNlLCBwbGFjZUI6IFBsYWNlKSA9PiBOdW1iZXIocGxhY2VBLnBvc2l0aW9uLngpIC0gTnVtYmVyKHBsYWNlQi5wb3NpdGlvbi54KSxcbiAgICApO1xuXG4gICAgLy8gRm9yIHJlbmRlcmluZyB0aGUgcGxhY2VzIHdpdGhpbiBhIHRkIGVsZW1lbnQsIGhlcmUgd2UgdXNlIHJlcGVhdCBkaXJlY3RpdmUgZm9yIGJldHRlciBwZXJmb3JtYW5jZSBmb3IgcmV1c2luZyBlbGVtZW50cyAodHJhY2sgYnkgaWQpLlxuICAgIGNvbnN0IHRyYWNrUGxhY2VJZCA9IGNvYWNoSW5kZXggKyAnLScgKyBwbGFjZUNvYWNoRGVja0luZGV4O1xuICAgIHJldHVybiBodG1sYCR7cmVwZWF0KFxuICAgICAgcGxhY2VzLFxuICAgICAgKHBsYWNlKSA9PiB0cmFja1BsYWNlSWQgKyAnLScgKyBwbGFjZS5udW1iZXIsXG4gICAgICAocGxhY2UsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24ocGxhY2UuZGltZW5zaW9uKTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24ocGxhY2UucG9zaXRpb24pO1xuICAgICAgICBjb25zdCByb3RhdGlvbiA9IHBsYWNlLnJvdGF0aW9uIHx8IDA7XG4gICAgICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbCA/IC05MCA6IDA7XG4gICAgICAgIGNvbnN0IHBsYWNlSWQgPSB0aGlzLmdldFBsYWNlRWxlbWVudElkKGRlY2tJbmRleCwgY29hY2hJbmRleCwgcGxhY2UubnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBpZD1cImNlbGwtJHtkZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtwbGFjZS5wb3NpdGlvbi55fS0ke2luZGV4fVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyYXBoaWNhbC1lbGVtZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbFxuICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtc2NhbGUtdmFsdWUnOiBNYXRoLm1pbihcbiAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24udyxcbiAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWREaW1lbnNpb24uaCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgnOiBjYWxjdWxhdGVkRGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnOiBjYWxjdWxhdGVkRGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10b3AnOiBjYWxjdWxhdGVkUG9zaXRpb24ueSxcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQnOiBjYWxjdWxhdGVkUG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXJvdGF0aW9uJzogcm90YXRpb24sXG4gICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXJvdGF0aW9uJzogdGV4dFJvdGF0aW9uLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgQHNlbGVjdHBsYWNlPSR7KHNlbGVjdFBsYWNlRXZlbnQ6IFNiYlBsYWNlU2VsZWN0aW9uRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50KX1cbiAgICAgICAgICAgICAgZXhwb3J0cGFydHM9XCJzYmItc3ItcGxhY2UtcGFydFwiXG4gICAgICAgICAgICAgIGlkPSR7cGxhY2VJZH1cbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0ZXh0PSR7cGxhY2UubnVtYmVyfVxuICAgICAgICAgICAgICB0eXBlPSR7cGxhY2UudHlwZX1cbiAgICAgICAgICAgICAgc3RhdGU9JHtwbGFjZS5zdGF0ZX1cbiAgICAgICAgICAgICAgdHJhdmVsLWRpcmVjdGlvbj0ke3RoaXMudHJhdmVsRGlyZWN0aW9ufVxuICAgICAgICAgICAgICBjb2FjaC1pbmRleD0ke2NvYWNoSW5kZXh9XG4gICAgICAgICAgICAgIGRlY2staW5kZXg9JHtwbGFjZUNvYWNoRGVja0luZGV4fVxuICAgICAgICAgICAgICBkYXRhLWRlY2staW5kZXg9JHtkZWNrSW5kZXh9XG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz0ke3BsYWNlLnByb3BlcnR5SWRzfVxuICAgICAgICAgICAgICAucHJldmVudENsaWNrPSR7dGhpcy5wcmV2ZW50UGxhY2VDbGlja31cbiAgICAgICAgICAgICAgP3Nob3dUaXRsZUluZm89XCIke3RoaXMuc2hvd1RpdGxlSW5mb31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICBgO1xuICAgICAgfSxcbiAgICApfWA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoRWxlbWVudHMoXG4gICAgY29hY2hEZWNrSW5kZXg6IG51bWJlcixcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBjb25zdCBjdXJyQ29hY2hTdHJ1Y3R1cmUgPVxuICAgICAgdGhpcy5zZWF0UmVzZXJ2YXRpb25TdHJ1Y3R1cmUuZGVja3NbY29hY2hEZWNrSW5kZXhdLmRlY2tDb2FjaGVzW2NvYWNoSW5kZXhdO1xuXG4gICAgcmV0dXJuIGN1cnJDb2FjaFN0cnVjdHVyZS5vdGhlckVsZW1lbnRzLm1hcCgoZ3JhcGhpY0VsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiBodG1sYCA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLncsXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBncmFwaGljRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcCc6IGdyYXBoaWNFbGVtZW50LnBvc2l0aW9uLnksXG4gICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1sZWZ0JzogZ3JhcGhpY0VsZW1lbnQucG9zaXRpb24ueCxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uJzogZ3JhcGhpY0VsZW1lbnQucm90YXRpb24sXG4gICAgICAgIH0pfVxuICAgICAgICBuYW1lPSR7Z3JhcGhpY0VsZW1lbnQuaWNvbiA/PyBub3RoaW5nfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPmA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZEFyZWFFbGVtZW50cyhcbiAgICBjb2FjaERlY2tJbmRleDogbnVtYmVyLFxuICAgIGNvYWNoSW5kZXg6IG51bWJlcixcbiAgKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJDb2FjaFN0cnVjdHVyZSA9XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvblN0cnVjdHVyZS5kZWNrc1tjb2FjaERlY2tJbmRleF0uZGVja0NvYWNoZXNbY29hY2hJbmRleF07XG5cbiAgICByZXR1cm4gY3VyckNvYWNoU3RydWN0dXJlLmFyZWFFbGVtZW50cy5tYXAoKGdyYXBoaWNFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VySWQgPSBgcG9wb3Zlci10cmlnZ2VyLSR7Y29hY2hEZWNrSW5kZXh9LSR7Y29hY2hJbmRleH0tJHtncmFwaGljRWxlbWVudC5wb3NpdGlvbi54fS0ke2dyYXBoaWNFbGVtZW50LnBvc2l0aW9uLnl9YDtcbiAgICAgIGNvbnN0IGlzTm90VGFibGVHcmFwaGljID0gZ3JhcGhpY0VsZW1lbnQuaWNvbj8uaW5kZXhPZignVEFCTEUnKSA9PT0gLTE7XG4gICAgICBjb25zdCBhcmVhUHJvcGVydHkgPSBncmFwaGljRWxlbWVudC5pY29uICYmIGlzTm90VGFibGVHcmFwaGljID8gZ3JhcGhpY0VsZW1lbnQuaWNvbiA6IG51bGw7XG4gICAgICBjb25zdCBhcmlhTGFiZWxGb3JBcmVhID0gZ3JhcGhpY0VsZW1lbnQuaWNvblxuICAgICAgICA/IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oZ3JhcGhpY0VsZW1lbnQuaWNvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudClcbiAgICAgICAgOiBub3RoaW5nO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWFcbiAgICAgICAgICBpZD1cIiR7dHJpZ2dlcklkfVwiXG4gICAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLS1jdXJzb3ItcG9pbnRlcic6IGFyZWFQcm9wZXJ0eSAhPT0gbnVsbCxcbiAgICAgICAgICB9KX1cIlxuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS13aWR0aCc6IGdyYXBoaWNFbGVtZW50LmRpbWVuc2lvbi53LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYS1oZWlnaHQnOiBncmFwaGljRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtdG9wJzogZ3JhcGhpY0VsZW1lbnQucG9zaXRpb24ueSxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWFyZWEtbGVmdCc6IGdyYXBoaWNFbGVtZW50LnBvc2l0aW9uLngsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhLXotaW5kZXgnOiBncmFwaGljRWxlbWVudC5wb3NpdGlvbi56LFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIG1vdW50aW5nPSR7Z3JhcGhpY0VsZW1lbnQubW91bnRpbmcgPz8gbm90aGluZ31cbiAgICAgICAgICBiYWNrZ3JvdW5kPVwiZGFya1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICR7YXJlYVByb3BlcnR5XG4gICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLW1heC13aWR0aCc6IHRoaXMuZ2xvYmFsQXJlYUljb25EaW0udyxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtaGVpZ2h0JzogdGhpcy5nbG9iYWxBcmVhSWNvbkRpbS5oLFxuICAgICAgICAgICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoJzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLncsXG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogZ3JhcGhpY0VsZW1lbnQuZGltZW5zaW9uLmgsXG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiBncmFwaGljRWxlbWVudC5yb3RhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1wYWRkaW5nLXBlcmNlbnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFyZWFQcm9wZXJ0eSAhPT0gJ0VOVFJZX0VYSVQnID8gdGhpcy5nbG9iYWxBcmVhSWNvblBhZGRpbmcgOiAxLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICBuYW1lPSR7YXJlYVByb3BlcnR5fVxuICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItc3ItZ3JhcGhpY19fZGltZW5zaW9uLS1zcXVhcmUtZGltXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAgICAgICBgXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYT5cbiAgICAgICAgJHthcmVhUHJvcGVydHkgPyB0aGlzLl9wb3BvdmVyKHRyaWdnZXJJZCwgYXJpYUxhYmVsRm9yQXJlYSkgOiBub3RoaW5nfVxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkU2VydmljZUVsZW1lbnRzKFxuICAgIGNvYWNoRGVja0luZGV4OiBudW1iZXIsXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICApOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgY29uc3QgY3VyckNvYWNoU3RydWN0dXJlID1cbiAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uU3RydWN0dXJlLmRlY2tzW2NvYWNoRGVja0luZGV4XS5kZWNrQ29hY2hlc1tjb2FjaEluZGV4XTtcblxuICAgIHJldHVybiBjdXJyQ29hY2hTdHJ1Y3R1cmUuc2VydmljZUVsZW1lbnRzLm1hcCgoc2VydmljZUVsZW1lbnQ6IEJhc2VFbGVtZW50KSA9PiB7XG4gICAgICAvL2dlbmVyYXRlIHVuaXF1ZSBpbmRleCBudW1iZXIgZm9yIHRoZSB0cmlnZ2VyIGVsZW1lbnRcbiAgICAgIGNvbnN0IHRyaWdnZXJJZCA9IGBwb3BvdmVyLXRyaWdnZXItJHtjb2FjaERlY2tJbmRleH0tJHtjb2FjaEluZGV4fS0ke3NlcnZpY2VFbGVtZW50LnBvc2l0aW9uLnh9LSR7c2VydmljZUVsZW1lbnQucG9zaXRpb24ueX1gO1xuICAgICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbiA9IHNlcnZpY2VFbGVtZW50Lmljb25cbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHNlcnZpY2VFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogbnVsbDtcblxuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgaWQ9XCIke3RyaWdnZXJJZH1cIlxuICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCc6IHNlcnZpY2VFbGVtZW50LmRpbWVuc2lvbi53LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnOiBzZXJ2aWNlRWxlbWVudC5kaW1lbnNpb24uaCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtdG9wJzogc2VydmljZUVsZW1lbnQucG9zaXRpb24ueSxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCc6IHNlcnZpY2VFbGVtZW50LnBvc2l0aW9uLngsXG4gICAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nOiBzZXJ2aWNlRWxlbWVudC5yb3RhdGlvbixcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBjbGFzcz1cInNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtLWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICBuYW1lPSR7c2VydmljZUVsZW1lbnQuaWNvbiA/PyBub3RoaW5nfVxuICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgICR7dGhpcy5fcG9wb3Zlcih0cmlnZ2VySWQsIHRpdGxlRGVzY3JpcHRpb24pfVxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIHRoZSBzZWxlY3RlZCBwbGFjZSBldmVudCB0cmlnZ2VyZWQgZnJvbSB0aGUgcGxhY2VcbiAgICogRWFjaCBzZWxlY3Rpb24gZW1pdHMgYW4gYXJyYXkgb2YgYWxsIHNlbGVjdGVkIHBsYWNlc1xuICAgKiBAcGFyYW0gc2VsZWN0UGxhY2VFdmVudFxuICAgKi9cbiAgcHJpdmF0ZSBfb25TZWxlY3RQbGFjZShzZWxlY3RQbGFjZUV2ZW50OiBTYmJQbGFjZVNlbGVjdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZSA9IHNlbGVjdFBsYWNlRXZlbnQuZGV0YWlsO1xuICAgIC8vIFdlIGhhdmUgdG8gc2V0IHByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayB0byB0cnVlLCB0byBwcmV2ZW50IGF1dG9tYXRpYyBzY3JvbGxpbmcgdG8gdGhlIG5ldyBmb2N1c2VkIHBsYWNlXG4gICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMuaXNDb2FjaEdyaWRGb2N1c2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID0gLTE7XG4gICAgLy8gQ2hlY2sgYW55IGtleWJvYXJkIGV2ZW50IHdhcyB0cmlnZ2VyZWQgaW5zaWRlIHRoZSBzZWF0IHJlc2VydmF0aW9uIGNvbXBvbmVudCxcbiAgICAvLyBzbyB3ZSBjYW4gc2F5IHRoZSBuYXRpdmUgYnJvd3NlciBmb2N1cyBsaWVzIG9uIHRoZSBjb21wb25lbnRcbiAgICBpZiAoIXRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMpIHtcbiAgICAgIHRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgLy8gQWRkIHBsYWNlIHRvIHBsYWNlIGNvbGxlY3Rpb25cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMoc2VsZWN0ZWRQbGFjZSk7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChzZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdE5hdkNvYWNoKGV2ZW50OiBTYmJTZWxlY3RDb2FjaEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWROYXZDb2FjaEluZGV4ID0gZXZlbnQuY29hY2hJbmRleDtcblxuICAgIHRoaXMuaXNLZXlib2FyZE5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IGZhbHNlO1xuICAgIHRoaXMuaGFzU2VhdFJlc2VydmF0aW9uTmF0aXZlRm9jdXMgPSB0cnVlO1xuXG4gICAgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gbnVsbCAmJiBzZWxlY3RlZE5hdkNvYWNoSW5kZXggIT09IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCkge1xuICAgICAgdGhpcy51bmZvY3VzUGxhY2VFbGVtZW50KCk7XG4gICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChzZWxlY3RlZE5hdkNvYWNoSW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ID09PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfVxuXG4gICAgLy9jbG9zZSBhbGwgb3BlbmVkIHBvcG92ZXJzXG4gICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzTmF2Q29hY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljaykge1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudCh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXV0b1Njcm9sbGluZyA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwb3BvdmVyIGZvciBleHRyYSBzZXJ2aWNlIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB0cmlnZ2VySWRcbiAgICogQHBhcmFtIHBvcG92ZXJDb250ZW50XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9wb3BvdmVyKFxuICAgIHRyaWdnZXJJZDogc3RyaW5nLFxuICAgIHBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBudWxsIHwgdHlwZW9mIG5vdGhpbmcsXG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItcG9wb3ZlciB0cmlnZ2VyPVwiJHt0cmlnZ2VySWR9XCIgaG92ZXItdHJpZ2dlcj1cIlwiPlxuICAgICAgICA8cCBjbGFzcz1cInNiYi10ZXh0LXMgc2JiLXNyLXBvcG92ZXJcIj4ke3BvcG92ZXJDb250ZW50fTwvcD5cbiAgICAgIDwvc2JiLXBvcG92ZXI+XG4gICAgYDtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VyIHRvIGNsb3NlIGFsbCBvcGVuZWQgcG9wb3ZlcnMgKG5vcm1hbGx5IG9ubHkgb25lIGlzIG9wZW5lZCBhdCBhIHRpbWUpXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9jbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290XG4gICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGw8U2JiUG9wb3ZlckVsZW1lbnQ+KCdzYmItcG9wb3ZlcjpzdGF0ZShzdGF0ZS1vcGVuZWQpJylcbiAgICAgIC5mb3JFYWNoKChwb3BvdmVyKSA9PiBwb3BvdmVyLmNsb3NlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGVzY3JpcHRpb25UYWJsZUNvYWNoKGNvYWNoSXRlbTogQ29hY2hJdGVtKTogc3RyaW5nIHtcbiAgICAvL3Nob3cgZGlmZmVyZW50IHRhYmxlIGNhcHRpb24gZm9yIHNjcmVlbnJlYWRlciBpZiBpdCBpcyBhIGxvY29tb3RpdmVcbiAgICBpZiAoY29hY2hJdGVtLnR5cGUgPT09ICdMT0NPTU9USVZFX0NPQUNIJykge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0xPQ09NT1RJVkUnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoIWNvYWNoSXRlbS5wbGFjZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0JMT0NLRURfVEFCTEVfQ0FQVElPTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgY29hY2hJdGVtLmlkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgbGV0IHRhYmxlQ29hY2hEZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGNvbnN0IGFyZWFEZXNjcmlwdGlvbnMgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzISk7XG4gICAgY29uc3Qgc2VydmljZURlc2NyaXB0aW9ucyA9IHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25MaXN0U3RyaW5nKGNvYWNoSXRlbS5zZXJ2aWNlRWxlbWVudHMhKTtcblxuICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX1RBQkxFX0NBUFRJT04nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICBjb2FjaEl0ZW0uaWQsXG4gICAgXSk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvbikge1xuICAgICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgICAgY29uc3QgZnJlZVBsYWNlcyA9IHRoaXMuZ2V0QXZhaWxhYmxlRnJlZVBsYWNlc051bUZyb21Db2FjaChjb2FjaEl0ZW0ucGxhY2VzKTtcbiAgICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnQ09BQ0hfQVZBSUxBQkxFX05VTUJFUl9PRl9QTEFDRVMnLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbZnJlZVBsYWNlcy5zZWF0cywgZnJlZVBsYWNlcy5iaWN5Y2xlc10sXG4gICAgICApO1xuICAgICAgdGFibGVDb2FjaERlc2NyaXB0aW9uID0gdGFibGVDb2FjaERlc2NyaXB0aW9uLmNvbmNhdCgnLiAnKS5jb25jYXQoZnJlZVBsYWNlc1R4dCkuY29uY2F0KCcuICcpO1xuICAgIH1cblxuICAgIGlmICghIWFyZWFEZXNjcmlwdGlvbnMgfHwgISFzZXJ2aWNlRGVzY3JpcHRpb25zKSB7XG4gICAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gKz1cbiAgICAgICAgJy4gJyArIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiArPSBzZXJ2aWNlRGVzY3JpcHRpb25zICsgJywgJyArIGFyZWFEZXNjcmlwdGlvbnMgKyAnLic7XG4gICAgfVxuICAgIHJldHVybiB0YWJsZUNvYWNoRGVzY3JpcHRpb247XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhkZXNjcmlwdGlvbnNFbGVtZW50czogQmFzZUVsZW1lbnRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdW5pcXVlRGVzY3JpcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uc0VsZW1lbnRzXG4gICAgICA/Lm1hcCgoZGVzY3JpcHRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGljb24gPSBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbjtcbiAgICAgICAgaWYgKCFpY29uKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkFscmVhZHlFeGlzdCA9IHVuaXF1ZURlc2NyaXB0aW9ucy5pbmRleE9mKGljb24pID4gLTE7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbiEsXG4gICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaXNWYWxpZERlc2NyaXB0aW9uID1cbiAgICAgICAgICB0aGlzLm5vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zLmluZGV4T2YoaWNvbikgPT09IC0xICYmXG4gICAgICAgICAgdGhpcy5ub3RBcmVhRWxlbWVudHMuaW5kZXhPZihpY29uKSA9PT0gLTE7XG5cbiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbkFscmVhZHlFeGlzdCkge1xuICAgICAgICAgIHVuaXF1ZURlc2NyaXB0aW9ucy5wdXNoKGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhdHJhbnNsYXRpb24gJiYgIWRlc2NyaXB0aW9uQWxyZWFkeUV4aXN0ICYmIGlzVmFsaWREZXNjcmlwdGlvbiA/IHRyYW5zbGF0aW9uIDogbnVsbDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChkZXNjcmlwdGlvbikgPT4gISFkZXNjcmlwdGlvbilcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbic6IFNiYlNlYXRSZXNlcnZhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzBDQSxJQUFhLDRCQUFiLGNBQStDLDJCQUEwQjtDQUF6RSxjQUFBOztFQWtCVSxLQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtDQWtwQnBEOztFQW5xQmtDLEtBQUEsY0FBc0I7Q0FBdUI7O0VBQ3RELEtBQUEsc0JBQXdDO0dBQzdEO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBOztDQUNBOztFQUNxQixLQUFBLFNBQXlCO0dBQzlDO0dBQ0E7R0FDQTtHQUNBLFVBQVUsd0JBQUs7O0NBQ2Y7Q0FLaUIsV0FBVyxtQkFBdUM7RUFDbkUsTUFBTSxXQUFXLGlCQUFpQjtFQUVsQyxJQUFJLGtCQUFrQixJQUFJLGVBQWUsR0FDdkMsSUFBSSxLQUFLLGVBQ1AsS0FBSyxZQUNELGlCQUFpQixPQUFPLEVBQ3pCLFNBQVMsVUFBVSxNQUFNLGdCQUFnQixVQUFVLENBQUM7T0FFdkQsS0FBSyxZQUNELGlCQUFpQixPQUFPLEVBQ3pCLFNBQVMsVUFBVSxNQUFNLGFBQWEsWUFBWSxHQUFHLENBQUM7Q0FHL0Q7Q0FFbUIsYUFBYSxtQkFBdUM7RUFDckUsTUFBTSxhQUFhLGlCQUFpQjtFQUdwQyxLQUFLLGVBQWUsV0FBVTtHQUM1QixLQUFLLHFDQUFvQztFQUMzQyxDQUFDO0NBQ0g7Q0FFbUIsU0FBTTtFQUN2QixLQUFLLHdDQUF1QztFQUM1QyxPQUFPLEtBQUssd0JBQXdCO0NBQ3RDO0NBRVEsMENBQXVDO0VBQzdDLEtBQUssdUJBQXVCLElBQUk7UUFDNUIsS0FBSyx1QkFBc0IsRUFBQTs7VUFFekIsS0FBSyxrQkFBaUIsRUFBQTs7O3NCQUdWLFFBQXVCLEtBQUssNkJBQTZCLEdBQUcsRUFBQTs7cURBRTdCLEtBQUssa0JBQWlCLEVBQUU7OzRCQUVqRCxLQUFLLG1CQUFrQixF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
@@ -1,15 +1,15 @@
1
- import { i as mapRawDataToSeatReservation, n as mapPlaceAndCoachToSeatReservationPlaceSelection, r as mapPlaceInfosToPlaceSelection, t as mapCoachInfosToCoachSelection } from "./mapper-hWWm7Uke.js";
1
+ import { i as mapRawDataToSeatReservation, n as mapPlaceAndCoachToSeatReservationPlaceSelection, r as mapPlaceInfosToPlaceSelection, t as mapCoachInfosToCoachSelection } from "./mapper-BrZOqqfe.js";
2
2
  import { mapIconToSvg } from "./seat-reservation/common/mapper/icon-mapper.js";
3
- import { t as svgs } from "./svgs-kDpBCto5.js";
3
+ import { t as svgs } from "./svgs-Dj-RKmRs.js";
4
4
  import { getI18nSeatReservation } from "./seat-reservation/common/translations/i18n.js";
5
- import { t as SbbSeatReservationAreaElement } from "./seat-reservation-area.component-BiUbY2fJ.js";
6
- import { t as SbbSeatReservationGraphicElement } from "./seat-reservation-graphic.component-sXZS5AQ-.js";
7
- import { n as SbbSelectCoachEvent, t as SbbSeatReservationNavigationCoachElement } from "./seat-reservation-navigation-coach.component-n9HVhAW1.js";
8
- import { t as SbbSeatReservationNavigationServicesElement } from "./seat-reservation-navigation-services.component-C_DDizl4.js";
9
- import { n as SbbSeatReservationPlaceControlElement, t as SbbPlaceSelectionEvent } from "./seat-reservation-place-control.component-CEYulcPi.js";
10
- import { t as SbbSeatReservationScopedElement } from "./seat-reservation-scoped.component-D-Mvw-Q3.js";
5
+ import { t as SbbSeatReservationAreaElement } from "./seat-reservation-area.component-DPhQJFid.js";
6
+ import { t as SbbSeatReservationGraphicElement } from "./seat-reservation-graphic.component-0LYsmerm.js";
7
+ import { n as SbbSelectCoachEvent, t as SbbSeatReservationNavigationCoachElement } from "./seat-reservation-navigation-coach.component-B97jKD7Y.js";
8
+ import { t as SbbSeatReservationNavigationServicesElement } from "./seat-reservation-navigation-services.component-Cx0Is97w.js";
9
+ import { n as SbbSeatReservationPlaceControlElement, t as SbbPlaceSelectionEvent } from "./seat-reservation-place-control.component-DaL1g8WH.js";
10
+ import { t as SbbSeatReservationScopedElement } from "./seat-reservation-scoped.component-BHbORVsR.js";
11
11
  import { SbbSeatReservationSelectedCoachEvent, SbbSeatReservationSelectedPlacesEvent, SeatReservationBaseElement } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
12
- import { t as SbbSeatReservationElement } from "./seat-reservation.component-CR5QYNWZ.js";
12
+ import { t as SbbSeatReservationElement } from "./seat-reservation.component-DI9pSlzt.js";
13
13
  import "./seat-reservation.pure.js";
14
14
  //#region src/elements-experimental/seat-reservation.ts
15
15
  /** @entrypoint */
@@ -1,14 +1,14 @@
1
- import { i as mapRawDataToSeatReservation, n as mapPlaceAndCoachToSeatReservationPlaceSelection, r as mapPlaceInfosToPlaceSelection, t as mapCoachInfosToCoachSelection } from "./mapper-hWWm7Uke.js";
1
+ import { i as mapRawDataToSeatReservation, n as mapPlaceAndCoachToSeatReservationPlaceSelection, r as mapPlaceInfosToPlaceSelection, t as mapCoachInfosToCoachSelection } from "./mapper-BrZOqqfe.js";
2
2
  import { mapIconToSvg } from "./seat-reservation/common/mapper/icon-mapper.js";
3
3
  import "./seat-reservation/common/mapper.js";
4
- import { t as svgs } from "./svgs-kDpBCto5.js";
4
+ import { t as svgs } from "./svgs-Dj-RKmRs.js";
5
5
  import { getI18nSeatReservation } from "./seat-reservation/common/translations/i18n.js";
6
- import { t as SbbSeatReservationAreaElement } from "./seat-reservation-area.component-BiUbY2fJ.js";
7
- import { t as SbbSeatReservationGraphicElement } from "./seat-reservation-graphic.component-sXZS5AQ-.js";
8
- import { n as SbbSelectCoachEvent, t as SbbSeatReservationNavigationCoachElement } from "./seat-reservation-navigation-coach.component-n9HVhAW1.js";
9
- import { t as SbbSeatReservationNavigationServicesElement } from "./seat-reservation-navigation-services.component-C_DDizl4.js";
10
- import { n as SbbSeatReservationPlaceControlElement, t as SbbPlaceSelectionEvent } from "./seat-reservation-place-control.component-CEYulcPi.js";
11
- import { t as SbbSeatReservationScopedElement } from "./seat-reservation-scoped.component-D-Mvw-Q3.js";
6
+ import { t as SbbSeatReservationAreaElement } from "./seat-reservation-area.component-DPhQJFid.js";
7
+ import { t as SbbSeatReservationGraphicElement } from "./seat-reservation-graphic.component-0LYsmerm.js";
8
+ import { n as SbbSelectCoachEvent, t as SbbSeatReservationNavigationCoachElement } from "./seat-reservation-navigation-coach.component-B97jKD7Y.js";
9
+ import { t as SbbSeatReservationNavigationServicesElement } from "./seat-reservation-navigation-services.component-Cx0Is97w.js";
10
+ import { n as SbbSeatReservationPlaceControlElement, t as SbbPlaceSelectionEvent } from "./seat-reservation-place-control.component-DaL1g8WH.js";
11
+ import { t as SbbSeatReservationScopedElement } from "./seat-reservation-scoped.component-BHbORVsR.js";
12
12
  import { SbbSeatReservationSelectedCoachEvent, SbbSeatReservationSelectedPlacesEvent, SeatReservationBaseElement } from "./seat-reservation/seat-reservation/seat-reservation-base-element.js";
13
- import { t as SbbSeatReservationElement } from "./seat-reservation.component-CR5QYNWZ.js";
13
+ import { t as SbbSeatReservationElement } from "./seat-reservation.component-DI9pSlzt.js";
14
14
  export { SbbPlaceSelectionEvent, SbbSeatReservationAreaElement, SbbSeatReservationElement, SbbSeatReservationGraphicElement, SbbSeatReservationNavigationCoachElement, SbbSeatReservationNavigationServicesElement, SbbSeatReservationPlaceControlElement, SbbSeatReservationScopedElement, SbbSeatReservationSelectedCoachEvent, SbbSeatReservationSelectedPlacesEvent, SbbSelectCoachEvent, SeatReservationBaseElement, getI18nSeatReservation, mapCoachInfosToCoachSelection, mapIconToSvg, mapPlaceAndCoachToSeatReservationPlaceSelection, mapPlaceInfosToPlaceSelection, mapRawDataToSeatReservation, svgs };
@@ -25,4 +25,4 @@ var svgs = {
25
25
  //#endregion
26
26
  export { svgs as t };
27
27
 
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Zncy1rRHBCQ3RvNS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vY29tbW9uL3N2Z3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYXNzaXNEcml2ZXJCdXMgZnJvbSAnLi9zdmdzL2NoYXNzaXMtZHJpdmVyLWJ1cy5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzRHJpdmVyVHJhaW5GdWxsIGZyb20gJy4vc3Zncy9jaGFzc2lzLWRyaXZlci10cmFpbi1mdWxsLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNEcml2ZXJUcmFpbiBmcm9tICcuL3N2Z3MvY2hhc3Npcy1kcml2ZXItdHJhaW4uc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1Bhc3NhZ2VDb21wYXJ0bWVudExlZnRUb3AgZnJvbSAnLi9zdmdzL2NoYXNzaXMtcGFzc2FnZS1jb21wYXJ0bWVudC1sZWZ0LXRvcC5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50TWlkZGxlIGZyb20gJy4vc3Zncy9jaGFzc2lzLXBhc3NhZ2UtY29tcGFydG1lbnQtbWlkZGxlLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNQYXNzYWdlQ29tcGFydG1lbnRSaWdodEJvdHRvbSBmcm9tICcuL3N2Z3MvY2hhc3Npcy1wYXNzYWdlLWNvbXBhcnRtZW50LXJpZ2h0LWJvdHRvbS5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZVdhZ2dvbkJvdHRvbVJpZ2h0IGZyb20gJy4vc3Zncy9jaGFzc2lzLXBhc3NhZ2Utd2FnZ29uLWJvdHRvbS1yaWdodC5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZVdhZ2dvblRvcExlZnQgZnJvbSAnLi9zdmdzL2NoYXNzaXMtcGFzc2FnZS13YWdnb24tdG9wLWxlZnQuc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1Jvd01pZGRsZSBmcm9tICcuL3N2Z3MvY2hhc3Npcy1yb3ctbWlkZGxlLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNSb3dPdXRlciBmcm9tICcuL3N2Z3MvY2hhc3Npcy1yb3ctb3V0ZXIuc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1NlcGFyYXRvciBmcm9tICcuL3N2Z3MvY2hhc3Npcy1zZXBhcmF0b3Iuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VEZWZhdWx0IGZyb20gJy4vc3Zncy9pbnRlcmlvci1wbGFjZS1iaWtlLWRlZmF1bHQuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VOb3RCb29rYWJsZSBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2UtYmlrZS1ub3QtYm9va2FibGUuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VTZWxlY3RlZCBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2UtYmlrZS1zZWxlY3RlZC5zdmc/cmF3JztcbmltcG9ydCBpbnRlcmlvclBsYWNlQmlrZVVuYXZhaWxhYmxlIGZyb20gJy4vc3Zncy9pbnRlcmlvci1wbGFjZS1iaWtlLXVuYXZhaWxhYmxlLnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0RGVmYXVsdCBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2Utc2VhdC1kZWZhdWx0LnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0Tm90Qm9va2FibGUgZnJvbSAnLi9zdmdzL2ludGVyaW9yLXBsYWNlLXNlYXQtbm90LWJvb2thYmxlLnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0U2VsZWN0ZWQgZnJvbSAnLi9zdmdzL2ludGVyaW9yLXBsYWNlLXNlYXQtc2VsZWN0ZWQuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZVNlYXRVbmF2YWlsYWJsZSBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2Utc2VhdC11bmF2YWlsYWJsZS5zdmc/cmF3JztcbmltcG9ydCBsYXlvdXRFbnRyYW5jZSBmcm9tICcuL3N2Z3MvbGF5b3V0LWVudHJhbmNlLnN2Zz9yYXcnO1xuXG5jb25zdCBzdmdzID0ge1xuICBjaGFzc2lzRHJpdmVyQnVzLFxuICBjaGFzc2lzRHJpdmVyVHJhaW4sXG4gIGNoYXNzaXNEcml2ZXJUcmFpbkZ1bGwsXG4gIGNoYXNzaXNQYXNzYWdlQ29tcGFydG1lbnRMZWZ0VG9wLFxuICBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50TWlkZGxlLFxuICBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50UmlnaHRCb3R0b20sXG4gIGNoYXNzaXNQYXNzYWdlV2FnZ29uQm90dG9tUmlnaHQsXG4gIGNoYXNzaXNQYXNzYWdlV2FnZ29uVG9wTGVmdCxcbiAgY2hhc3Npc1Jvd091dGVyLFxuICBjaGFzc2lzUm93TWlkZGxlLFxuICBjaGFzc2lzU2VwYXJhdG9yLFxuICBpbnRlcmlvclBsYWNlQmlrZURlZmF1bHQsXG4gIGludGVyaW9yUGxhY2VCaWtlTm90Qm9va2FibGUsXG4gIGludGVyaW9yUGxhY2VCaWtlU2VsZWN0ZWQsXG4gIGludGVyaW9yUGxhY2VCaWtlVW5hdmFpbGFibGUsXG4gIGludGVyaW9yUGxhY2VTZWF0RGVmYXVsdCxcbiAgaW50ZXJpb3JQbGFjZVNlYXROb3RCb29rYWJsZSxcbiAgaW50ZXJpb3JQbGFjZVNlYXRTZWxlY3RlZCxcbiAgaW50ZXJpb3JQbGFjZVNlYXRVbmF2YWlsYWJsZSxcbiAgbGF5b3V0RW50cmFuY2UsXG59O1xuXG5leHBvcnQgeyBzdmdzIH07XG4iXSwibWFwcGluZ3MiOiI7O0FBcUJBLElBQU0sT0FBTztDQUNYLGtCQUFBO0NBQ0Esb0JBQUE7Q0FDQSx3QkFBQTtDQUNBLGtDQUFBO0NBQ0EsaUNBQUE7Q0FDQSxzQ0FBQTtDQUNBLGlDQUFBO0NBQ0EsNkJBQUE7Q0FDQSxpQkFBQTtDQUNBLGtCQUFBO0NBQ0Esa0JBQUE7Q0FDQSwwQkFBQTtDQUNBLDhCQUFBO0NBQ0EsMkJBQUE7Q0FDQSw4QkFBQTtDQUNBLDBCQUFBO0NBQ0EsOEJBQUE7Q0FDQSwyQkFBQTtDQUNBLDhCQUFBO0NBQ0EsZ0JBQUEifQ==
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Zncy1Eai1SS21Scy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vY29tbW9uL3N2Z3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYXNzaXNEcml2ZXJCdXMgZnJvbSAnLi9zdmdzL2NoYXNzaXMtZHJpdmVyLWJ1cy5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzRHJpdmVyVHJhaW5GdWxsIGZyb20gJy4vc3Zncy9jaGFzc2lzLWRyaXZlci10cmFpbi1mdWxsLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNEcml2ZXJUcmFpbiBmcm9tICcuL3N2Z3MvY2hhc3Npcy1kcml2ZXItdHJhaW4uc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1Bhc3NhZ2VDb21wYXJ0bWVudExlZnRUb3AgZnJvbSAnLi9zdmdzL2NoYXNzaXMtcGFzc2FnZS1jb21wYXJ0bWVudC1sZWZ0LXRvcC5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50TWlkZGxlIGZyb20gJy4vc3Zncy9jaGFzc2lzLXBhc3NhZ2UtY29tcGFydG1lbnQtbWlkZGxlLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNQYXNzYWdlQ29tcGFydG1lbnRSaWdodEJvdHRvbSBmcm9tICcuL3N2Z3MvY2hhc3Npcy1wYXNzYWdlLWNvbXBhcnRtZW50LXJpZ2h0LWJvdHRvbS5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZVdhZ2dvbkJvdHRvbVJpZ2h0IGZyb20gJy4vc3Zncy9jaGFzc2lzLXBhc3NhZ2Utd2FnZ29uLWJvdHRvbS1yaWdodC5zdmc/cmF3JztcbmltcG9ydCBjaGFzc2lzUGFzc2FnZVdhZ2dvblRvcExlZnQgZnJvbSAnLi9zdmdzL2NoYXNzaXMtcGFzc2FnZS13YWdnb24tdG9wLWxlZnQuc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1Jvd01pZGRsZSBmcm9tICcuL3N2Z3MvY2hhc3Npcy1yb3ctbWlkZGxlLnN2Zz9yYXcnO1xuaW1wb3J0IGNoYXNzaXNSb3dPdXRlciBmcm9tICcuL3N2Z3MvY2hhc3Npcy1yb3ctb3V0ZXIuc3ZnP3Jhdyc7XG5pbXBvcnQgY2hhc3Npc1NlcGFyYXRvciBmcm9tICcuL3N2Z3MvY2hhc3Npcy1zZXBhcmF0b3Iuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VEZWZhdWx0IGZyb20gJy4vc3Zncy9pbnRlcmlvci1wbGFjZS1iaWtlLWRlZmF1bHQuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VOb3RCb29rYWJsZSBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2UtYmlrZS1ub3QtYm9va2FibGUuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZUJpa2VTZWxlY3RlZCBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2UtYmlrZS1zZWxlY3RlZC5zdmc/cmF3JztcbmltcG9ydCBpbnRlcmlvclBsYWNlQmlrZVVuYXZhaWxhYmxlIGZyb20gJy4vc3Zncy9pbnRlcmlvci1wbGFjZS1iaWtlLXVuYXZhaWxhYmxlLnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0RGVmYXVsdCBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2Utc2VhdC1kZWZhdWx0LnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0Tm90Qm9va2FibGUgZnJvbSAnLi9zdmdzL2ludGVyaW9yLXBsYWNlLXNlYXQtbm90LWJvb2thYmxlLnN2Zz9yYXcnO1xuaW1wb3J0IGludGVyaW9yUGxhY2VTZWF0U2VsZWN0ZWQgZnJvbSAnLi9zdmdzL2ludGVyaW9yLXBsYWNlLXNlYXQtc2VsZWN0ZWQuc3ZnP3Jhdyc7XG5pbXBvcnQgaW50ZXJpb3JQbGFjZVNlYXRVbmF2YWlsYWJsZSBmcm9tICcuL3N2Z3MvaW50ZXJpb3ItcGxhY2Utc2VhdC11bmF2YWlsYWJsZS5zdmc/cmF3JztcbmltcG9ydCBsYXlvdXRFbnRyYW5jZSBmcm9tICcuL3N2Z3MvbGF5b3V0LWVudHJhbmNlLnN2Zz9yYXcnO1xuXG5jb25zdCBzdmdzID0ge1xuICBjaGFzc2lzRHJpdmVyQnVzLFxuICBjaGFzc2lzRHJpdmVyVHJhaW4sXG4gIGNoYXNzaXNEcml2ZXJUcmFpbkZ1bGwsXG4gIGNoYXNzaXNQYXNzYWdlQ29tcGFydG1lbnRMZWZ0VG9wLFxuICBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50TWlkZGxlLFxuICBjaGFzc2lzUGFzc2FnZUNvbXBhcnRtZW50UmlnaHRCb3R0b20sXG4gIGNoYXNzaXNQYXNzYWdlV2FnZ29uQm90dG9tUmlnaHQsXG4gIGNoYXNzaXNQYXNzYWdlV2FnZ29uVG9wTGVmdCxcbiAgY2hhc3Npc1Jvd091dGVyLFxuICBjaGFzc2lzUm93TWlkZGxlLFxuICBjaGFzc2lzU2VwYXJhdG9yLFxuICBpbnRlcmlvclBsYWNlQmlrZURlZmF1bHQsXG4gIGludGVyaW9yUGxhY2VCaWtlTm90Qm9va2FibGUsXG4gIGludGVyaW9yUGxhY2VCaWtlU2VsZWN0ZWQsXG4gIGludGVyaW9yUGxhY2VCaWtlVW5hdmFpbGFibGUsXG4gIGludGVyaW9yUGxhY2VTZWF0RGVmYXVsdCxcbiAgaW50ZXJpb3JQbGFjZVNlYXROb3RCb29rYWJsZSxcbiAgaW50ZXJpb3JQbGFjZVNlYXRTZWxlY3RlZCxcbiAgaW50ZXJpb3JQbGFjZVNlYXRVbmF2YWlsYWJsZSxcbiAgbGF5b3V0RW50cmFuY2UsXG59O1xuXG5leHBvcnQgeyBzdmdzIH07XG4iXSwibWFwcGluZ3MiOiI7O0FBcUJBLElBQU0sT0FBTztDQUNYLGtCQUFBO0NBQ0Esb0JBQUE7Q0FDQSx3QkFBQTtDQUNBLGtDQUFBO0NBQ0EsaUNBQUE7Q0FDQSxzQ0FBQTtDQUNBLGlDQUFBO0NBQ0EsNkJBQUE7Q0FDQSxpQkFBQTtDQUNBLGtCQUFBO0NBQ0Esa0JBQUE7Q0FDQSwwQkFBQTtDQUNBLDhCQUFBO0NBQ0EsMkJBQUE7Q0FDQSw4QkFBQTtDQUNBLDBCQUFBO0NBQ0EsOEJBQUE7Q0FDQSwyQkFBQTtDQUNBLDhCQUFBO0NBQ0EsZ0JBQUEifQ==
@@ -1,2 +1,2 @@
1
- import { t as SbbTimetableDurationElement } from "../timetable-duration.component-QutPySyE.js";
1
+ import { t as SbbTimetableDurationElement } from "../timetable-duration.component-Chk5D4Is.js";
2
2
  export { SbbTimetableDurationElement };
@@ -93,4 +93,4 @@ var SbbTimetableDurationElement = (() => {
93
93
  //#endregion
94
94
  export { SbbTimetableDurationElement as t };
95
95
 
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWR1cmF0aW9uLmNvbXBvbmVudC1RdXRQeVN5RS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZHVyYXRpb24ge1xuICBAaW5jbHVkZSBzYmIudGV4dC1zO1xuXG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsImltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaTE4bkR1cmF0aW9uSG91cixcbiAgaTE4bkR1cmF0aW9uTWludXRlLFxuICBTYmJFbGVtZW50LFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90aW1ldGFibGUtZHVyYXRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIFVzZWQgaW4gYHNiYi10aW1ldGFibGUtcm93YCwgaXQgZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyaXAgZHVyYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUaW1ldGFibGVEdXJhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10aW1ldGFibGUtZHVyYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFN0cmluZ2lmaWVkIEpTT04gd2hpY2ggZGVmaW5lcyBtb3N0IG9mIHRoZVxuICAgKiBjb250ZW50IG9mIHRoZSBjb21wb25lbnQuIFBsZWFzZSBjaGVjayB0aGVcbiAgICogaW5kaXZpZHVhbCBzdG9yaWVzIHRvIGdldCBhbiBpZGVhIG9mIHRoZVxuICAgKiBzdHJ1Y3R1cmUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGNvbmZpZzogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5jb25maWcpO1xuXG4gICAgY29uc3QgaG91cnNMYWJlbFNob3J0ID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICBjb25zdCBtaW51dGVzTGFiZWxTaG9ydCA9IGkxOG5EdXJhdGlvbk1pbnV0ZS5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcblxuICAgIGxldCB2aXN1YWxUZXh0ID0gJyc7XG4gICAgbGV0IGExMXlMYWJlbCA9ICcnO1xuXG4gICAgbGV0IGhvdXJzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIGxldCBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG5cbiAgICBpZiAoY29uZmlnLmhvdXJzID09PSAxKSB7XG4gICAgICBob3Vyc0xhYmVsTG9uZyA9IGkxOG5EdXJhdGlvbkhvdXIuc2luZ2xlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW51dGVzID09PSAxKSB7XG4gICAgICBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLnNpbmdsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaG91cnMgIT09IDApIHtcbiAgICAgIHZpc3VhbFRleHQgKz0gYCR7Y29uZmlnLmhvdXJzfSAke2hvdXJzTGFiZWxTaG9ydH1gO1xuICAgICAgYTExeUxhYmVsICs9IGAke2NvbmZpZy5ob3Vyc30gJHtob3Vyc0xhYmVsTG9uZ31gO1xuICAgIH1cblxuICAgIHZpc3VhbFRleHQgKz0gYCAke2NvbmZpZy5taW51dGVzfSAke21pbnV0ZXNMYWJlbFNob3J0fWA7XG4gICAgYTExeUxhYmVsICs9IGAgJHtjb25maWcubWludXRlc30gJHttaW51dGVzTGFiZWxMb25nfS5gO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBhcmlhLWxhYmVsPSR7YTExeUxhYmVsfSBjbGFzcz1cImR1cmF0aW9uXCIgcm9sZT1cInRleHRcIj5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkdXJhdGlvbl9fdGV4dC0tdmlzdWFsXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICR7dmlzdWFsVGV4dH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2ExMXlMYWJlbH08L3NwYW4+XG4gICAgICA8L3A+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRpbWV0YWJsZS1kdXJhdGlvbic6IFNiYlRpbWV0YWJsZUR1cmF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQ2dCYSxxQ0FBMkI7bUJBQVM7Ozs7Y0FBcEMsb0NBQW9DLFlBQVU7OztHQVl6QyxLQUFBLDJCQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEVBQUU7R0FFM0IsS0FBQSxhQUFTLGtCQUFBLE1BQUEseUJBQUEsR0FBRyxJQUFJLHNCQUFzQixJQUFJO0VBdUNwRDs7O3lCQTNDRyxVQUFTLEdBQ1QsU0FBUSxDQUFFO0dBQ1gsYUFBQSxNQUFBLE1BQUEsb0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU0sTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFOLFNBQU07S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsc0JBQUEseUJBQUE7Ozs7Ozs7OztHQVhVLEtBQUEsY0FBc0I7RUFBeUI7O0dBQ3hELEtBQUEsU0FBeUIsQ0FBQyx3QkFBd0IsVUFBVSwwQkFBSyxDQUFDO0VBQUU7RUFVM0Y7Ozs7Ozs7RUFBQSxJQUFnQixTQUFNO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBdEIsSUFBZ0IsT0FBTSxPQUFBO0dBQUEsS0FBQSwyQkFBQTtFQUFBO0VBSUgsU0FBTTtHQUN2QixNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssTUFBTTtHQUVyQyxNQUFNLGtCQUFrQixpQkFBaUIsU0FBUyxNQUFNLEtBQUssVUFBVTtHQUN2RSxNQUFNLG9CQUFvQixtQkFBbUIsU0FBUyxNQUFNLEtBQUssVUFBVTtHQUUzRSxJQUFJLGFBQWE7R0FDakIsSUFBSSxZQUFZO0dBRWhCLElBQUksaUJBQWlCLGlCQUFpQixTQUFTLEtBQUssS0FBSyxVQUFVO0dBQ25FLElBQUksbUJBQW1CLG1CQUFtQixTQUFTLEtBQUssS0FBSyxVQUFVO0dBRXZFLElBQUksT0FBTyxVQUFVLEdBQ25CLGlCQUFpQixpQkFBaUIsT0FBTyxLQUFLLEtBQUssVUFBVTtHQUcvRCxJQUFJLE9BQU8sWUFBWSxHQUNyQixtQkFBbUIsbUJBQW1CLE9BQU8sS0FBSyxLQUFLLFVBQVU7R0FHbkUsSUFBSSxPQUFPLFVBQVUsR0FBRztJQUN0QixjQUFjLEdBQUcsT0FBTyxNQUFLLEdBQUk7SUFDakMsYUFBYSxHQUFHLE9BQU8sTUFBSyxHQUFJO0dBQ2xDO0dBRUEsY0FBYyxJQUFJLE9BQU8sUUFBTyxHQUFJO0dBQ3BDLGFBQWEsSUFBSSxPQUFPLFFBQU8sR0FBSSxpQkFBZ0I7R0FFbkQsT0FBTyxJQUFJO3NCQUNPLFVBQVM7O1lBRW5CLFdBQUE7OytDQUVtQyxVQUFTOzs7RUFHdEQifQ==
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWR1cmF0aW9uLmNvbXBvbmVudC1DaGs1RDRJcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZHVyYXRpb24ge1xuICBAaW5jbHVkZSBzYmIudGV4dC1zO1xuXG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsImltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgaTE4bkR1cmF0aW9uSG91cixcbiAgaTE4bkR1cmF0aW9uTWludXRlLFxuICBTYmJFbGVtZW50LFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIHNjcmVlblJlYWRlck9ubHlTdHlsZXMsXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUuanMnO1xuaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90aW1ldGFibGUtZHVyYXRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIFVzZWQgaW4gYHNiYi10aW1ldGFibGUtcm93YCwgaXQgZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyaXAgZHVyYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUaW1ldGFibGVEdXJhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10aW1ldGFibGUtZHVyYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2NyZWVuUmVhZGVyT25seVN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFN0cmluZ2lmaWVkIEpTT04gd2hpY2ggZGVmaW5lcyBtb3N0IG9mIHRoZVxuICAgKiBjb250ZW50IG9mIHRoZSBjb21wb25lbnQuIFBsZWFzZSBjaGVjayB0aGVcbiAgICogaW5kaXZpZHVhbCBzdG9yaWVzIHRvIGdldCBhbiBpZGVhIG9mIHRoZVxuICAgKiBzdHJ1Y3R1cmUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGNvbmZpZzogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5jb25maWcpO1xuXG4gICAgY29uc3QgaG91cnNMYWJlbFNob3J0ID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICBjb25zdCBtaW51dGVzTGFiZWxTaG9ydCA9IGkxOG5EdXJhdGlvbk1pbnV0ZS5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcblxuICAgIGxldCB2aXN1YWxUZXh0ID0gJyc7XG4gICAgbGV0IGExMXlMYWJlbCA9ICcnO1xuXG4gICAgbGV0IGhvdXJzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIGxldCBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG5cbiAgICBpZiAoY29uZmlnLmhvdXJzID09PSAxKSB7XG4gICAgICBob3Vyc0xhYmVsTG9uZyA9IGkxOG5EdXJhdGlvbkhvdXIuc2luZ2xlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW51dGVzID09PSAxKSB7XG4gICAgICBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLnNpbmdsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaG91cnMgIT09IDApIHtcbiAgICAgIHZpc3VhbFRleHQgKz0gYCR7Y29uZmlnLmhvdXJzfSAke2hvdXJzTGFiZWxTaG9ydH1gO1xuICAgICAgYTExeUxhYmVsICs9IGAke2NvbmZpZy5ob3Vyc30gJHtob3Vyc0xhYmVsTG9uZ31gO1xuICAgIH1cblxuICAgIHZpc3VhbFRleHQgKz0gYCAke2NvbmZpZy5taW51dGVzfSAke21pbnV0ZXNMYWJlbFNob3J0fWA7XG4gICAgYTExeUxhYmVsICs9IGAgJHtjb25maWcubWludXRlc30gJHttaW51dGVzTGFiZWxMb25nfS5gO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBhcmlhLWxhYmVsPSR7YTExeUxhYmVsfSBjbGFzcz1cImR1cmF0aW9uXCIgcm9sZT1cInRleHRcIj5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkdXJhdGlvbl9fdGV4dC0tdmlzdWFsXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICR7dmlzdWFsVGV4dH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2ExMXlMYWJlbH08L3NwYW4+XG4gICAgICA8L3A+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRpbWV0YWJsZS1kdXJhdGlvbic6IFNiYlRpbWV0YWJsZUR1cmF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQ2dCYSxxQ0FBMkI7bUJBQVM7Ozs7Y0FBcEMsb0NBQW9DLFlBQVU7OztHQVl6QyxLQUFBLDJCQUFBLGtCQUFBLE1BQUEsc0JBQWlCLEVBQUU7R0FFM0IsS0FBQSxhQUFTLGtCQUFBLE1BQUEseUJBQUEsR0FBRyxJQUFJLHNCQUFzQixJQUFJO0VBdUNwRDs7O3lCQTNDRyxVQUFTLEdBQ1QsU0FBUSxDQUFFO0dBQ1gsYUFBQSxNQUFBLE1BQUEsb0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU0sTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFOLFNBQU07S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsc0JBQUEseUJBQUE7Ozs7Ozs7OztHQVhVLEtBQUEsY0FBc0I7RUFBeUI7O0dBQ3hELEtBQUEsU0FBeUIsQ0FBQyx3QkFBd0IsVUFBVSwwQkFBSyxDQUFDO0VBQUU7RUFVM0Y7Ozs7Ozs7RUFBQSxJQUFnQixTQUFNO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBdEIsSUFBZ0IsT0FBTSxPQUFBO0dBQUEsS0FBQSwyQkFBQTtFQUFBO0VBSUgsU0FBTTtHQUN2QixNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssTUFBTTtHQUVyQyxNQUFNLGtCQUFrQixpQkFBaUIsU0FBUyxNQUFNLEtBQUssVUFBVTtHQUN2RSxNQUFNLG9CQUFvQixtQkFBbUIsU0FBUyxNQUFNLEtBQUssVUFBVTtHQUUzRSxJQUFJLGFBQWE7R0FDakIsSUFBSSxZQUFZO0dBRWhCLElBQUksaUJBQWlCLGlCQUFpQixTQUFTLEtBQUssS0FBSyxVQUFVO0dBQ25FLElBQUksbUJBQW1CLG1CQUFtQixTQUFTLEtBQUssS0FBSyxVQUFVO0dBRXZFLElBQUksT0FBTyxVQUFVLEdBQ25CLGlCQUFpQixpQkFBaUIsT0FBTyxLQUFLLEtBQUssVUFBVTtHQUcvRCxJQUFJLE9BQU8sWUFBWSxHQUNyQixtQkFBbUIsbUJBQW1CLE9BQU8sS0FBSyxLQUFLLFVBQVU7R0FHbkUsSUFBSSxPQUFPLFVBQVUsR0FBRztJQUN0QixjQUFjLEdBQUcsT0FBTyxNQUFLLEdBQUk7SUFDakMsYUFBYSxHQUFHLE9BQU8sTUFBSyxHQUFJO0dBQ2xDO0dBRUEsY0FBYyxJQUFJLE9BQU8sUUFBTyxHQUFJO0dBQ3BDLGFBQWEsSUFBSSxPQUFPLFFBQU8sR0FBSSxpQkFBZ0I7R0FFbkQsT0FBTyxJQUFJO3NCQUNPLFVBQVM7O1lBRW5CLFdBQUE7OytDQUVtQyxVQUFTOzs7RUFHdEQifQ==
@@ -1,4 +1,4 @@
1
- import { t as SbbTimetableDurationElement } from "./timetable-duration.component-QutPySyE.js";
1
+ import { t as SbbTimetableDurationElement } from "./timetable-duration.component-Chk5D4Is.js";
2
2
  import "./timetable-duration.pure.js";
3
3
  //#region src/elements-experimental/timetable-duration.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbTimetableDurationElement } from "./timetable-duration.component-QutPySyE.js";
1
+ import { t as SbbTimetableDurationElement } from "./timetable-duration.component-Chk5D4Is.js";
2
2
  export { SbbTimetableDurationElement };
@@ -1,2 +1,2 @@
1
- import { a as handleNotices, c as sortSituation, i as getHimIcon, n as filterNotices, o as renderIconProduct, r as getCus, s as renderStringProduct, t as SbbTimetableRowElement } from "../timetable-row.component-2GBdtFiF.js";
1
+ import { a as handleNotices, c as sortSituation, i as getHimIcon, n as filterNotices, o as renderIconProduct, r as getCus, s as renderStringProduct, t as SbbTimetableRowElement } from "../timetable-row.component-nzrQzxL6.js";
2
2
  export { SbbTimetableRowElement, filterNotices, getCus, getHimIcon, handleNotices, renderIconProduct, renderStringProduct, sortSituation };