@sabstravtech/obtservices 0.0.22051001 → 0.1.6161600

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 (166) hide show
  1. package/angular/components/basket-panel.d.ts +1 -0
  2. package/angular/fetchers.d.ts +5 -0
  3. package/angular/lib/vendor/fetchers/get-companies.fetcher.d.ts +7 -0
  4. package/angular/lib/vendor/fetchers/get-company.fetcher.d.ts +7 -0
  5. package/angular/lib/vendor/fetchers/get-office.fetcher.d.ts +7 -0
  6. package/angular/lib/vendor/fetchers/get-user-default-mi-value.fetcher.d.ts +7 -0
  7. package/angular/lib/vendor/fetchers/get-user-guests.fetcher.d.ts +7 -0
  8. package/angular/lib/vendor/services/enterprise-basket.service.d.ts +4 -3
  9. package/angular/lib/vendor/services/logon.service.d.ts +2 -1
  10. package/angular/lib/vendor/services/user.service.d.ts +9 -3
  11. package/angular/lib/vendor/types/graphql.angular.types.d.ts +614 -550
  12. package/angular/lib/vendor/updaters/create-guest-updater.d.ts +6 -0
  13. package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
  14. package/angular/updaters.d.ts +1 -0
  15. package/base/fetchers.d.ts +5 -0
  16. package/base/lib/vendor/classes/base-enterprise.d.ts +7 -1
  17. package/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +2 -0
  18. package/base/lib/vendor/classes/bookable-basket.d.ts +2 -0
  19. package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +9 -4
  20. package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +12 -4
  21. package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +14 -7
  22. package/base/lib/vendor/classes/fast-track-enterprise-search.d.ts +5 -4
  23. package/base/lib/vendor/classes/flight-enterprise-search.d.ts +16 -5
  24. package/base/lib/vendor/classes/helpers.d.ts +6 -1
  25. package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +10 -3
  26. package/base/lib/vendor/classes/irl-enterprise-search.d.ts +13 -8
  27. package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +5 -4
  28. package/base/lib/vendor/classes/management-info-and-valid.d.ts +3 -3
  29. package/base/lib/vendor/classes/modal-types.enum.d.ts +1 -0
  30. package/base/lib/vendor/classes/parking-enterprise-search.d.ts +5 -4
  31. package/base/lib/vendor/classes/rail-enterprise-search.d.ts +10 -8
  32. package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +5 -3
  33. package/base/lib/vendor/classes/user-favourite.enum.d.ts +1 -0
  34. package/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +3 -1
  35. package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +1 -0
  36. package/base/lib/vendor/fetchers/get-companies.fetcher.d.ts +21 -0
  37. package/base/lib/vendor/fetchers/get-company.fetcher.d.ts +20 -0
  38. package/base/lib/vendor/fetchers/get-office.fetcher.d.ts +20 -0
  39. package/base/lib/vendor/fetchers/get-user-default-mi-value.fetcher.d.ts +21 -0
  40. package/base/lib/vendor/fetchers/get-user-guests.fetcher.d.ts +20 -0
  41. package/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.d.ts +2 -2
  42. package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +2 -0
  43. package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +5 -2
  44. package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +8 -6
  45. package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +1 -0
  46. package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +7 -5
  47. package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +8 -1
  48. package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +8 -2
  49. package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +8 -7
  50. package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -0
  51. package/base/lib/vendor/interfaces/Imybookings.service.d.ts +3 -2
  52. package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +1 -0
  53. package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +5 -2
  54. package/base/lib/vendor/interfaces/Isearch.service.d.ts +5 -2
  55. package/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.d.ts +3 -2
  56. package/base/lib/vendor/interfaces/Iuser.service.d.ts +11 -3
  57. package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +2 -3
  58. package/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +2 -0
  59. package/base/lib/vendor/interfaces/summary-interface.d.ts +6 -0
  60. package/base/lib/vendor/interfaces/user.data.d.ts +1 -0
  61. package/base/lib/vendor/models/traveller.object.d.ts +12 -2
  62. package/base/lib/vendor/services/enterprise-basket.service.d.ts +22 -9
  63. package/base/lib/vendor/services/logon.service.d.ts +5 -1
  64. package/base/lib/vendor/services/my-bookings.service.d.ts +3 -2
  65. package/base/lib/vendor/services/search.service.d.ts +27 -23
  66. package/base/lib/vendor/services/url.service.d.ts +2 -0
  67. package/base/lib/vendor/services/user.service.d.ts +36 -5
  68. package/base/lib/vendor/services/webtoken.service.d.ts +6 -0
  69. package/base/lib/vendor/types/graphql.types.d.ts +581 -549
  70. package/base/lib/vendor/types/types.d.ts +48 -6
  71. package/base/lib/vendor/updaters/create-guest-updater.d.ts +19 -0
  72. package/base/sabstravtech-obtservices-base.d.ts +1 -1
  73. package/base/sabstravtech-obtservices-base.metadata.json +1 -1
  74. package/base/updaters.d.ts +1 -0
  75. package/bundles/sabstravtech-obtservices-angular.umd.js +541 -252
  76. package/bundles/sabstravtech-obtservices-angular.umd.js.map +1 -1
  77. package/bundles/sabstravtech-obtservices-angular.umd.min.js +1 -1
  78. package/bundles/sabstravtech-obtservices-angular.umd.min.js.map +1 -1
  79. package/bundles/sabstravtech-obtservices-base.umd.js +4080 -1471
  80. package/bundles/sabstravtech-obtservices-base.umd.js.map +1 -1
  81. package/bundles/sabstravtech-obtservices-base.umd.min.js +2 -2
  82. package/bundles/sabstravtech-obtservices-base.umd.min.js.map +1 -1
  83. package/esm2015/angular/components/basket-panel.js +16 -7
  84. package/esm2015/angular/fetchers.js +6 -1
  85. package/esm2015/angular/lib/vendor/fetchers/get-companies.fetcher.js +25 -0
  86. package/esm2015/angular/lib/vendor/fetchers/get-company.fetcher.js +25 -0
  87. package/esm2015/angular/lib/vendor/fetchers/get-office.fetcher.js +25 -0
  88. package/esm2015/angular/lib/vendor/fetchers/get-user-default-mi-value.fetcher.js +25 -0
  89. package/esm2015/angular/lib/vendor/fetchers/get-user-guests.fetcher.js +25 -0
  90. package/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +24 -21
  91. package/esm2015/angular/lib/vendor/services/http-call.service.js +1 -1
  92. package/esm2015/angular/lib/vendor/services/logon.service.js +8 -5
  93. package/esm2015/angular/lib/vendor/services/search.service.js +1 -1
  94. package/esm2015/angular/lib/vendor/services/ticket-queue.service.js +4 -1
  95. package/esm2015/angular/lib/vendor/services/user.service.js +28 -10
  96. package/esm2015/angular/lib/vendor/services/webtoken.service.js +6 -2
  97. package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +1023 -1220
  98. package/esm2015/angular/lib/vendor/updaters/create-guest-updater.js +22 -0
  99. package/esm2015/angular/updaters.js +2 -1
  100. package/esm2015/base/fetchers.js +6 -1
  101. package/esm2015/base/lib/vendor/classes/base-enterprise.js +12 -3
  102. package/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +14 -1
  103. package/esm2015/base/lib/vendor/classes/bookable-basket.js +27 -8
  104. package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +219 -18
  105. package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +235 -67
  106. package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +462 -49
  107. package/esm2015/base/lib/vendor/classes/fast-track-enterprise-search.js +37 -13
  108. package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +281 -62
  109. package/esm2015/base/lib/vendor/classes/helpers.js +32 -3
  110. package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +228 -54
  111. package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +221 -46
  112. package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +101 -14
  113. package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +67 -40
  114. package/esm2015/base/lib/vendor/classes/modal-types.enum.js +2 -1
  115. package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +146 -11
  116. package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +210 -25
  117. package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +58 -4
  118. package/esm2015/base/lib/vendor/classes/user-favourite.enum.js +2 -1
  119. package/esm2015/base/lib/vendor/data/countries.json +484 -242
  120. package/esm2015/base/lib/vendor/fetchers/eurostar-quote.fetcher.js +3 -3
  121. package/esm2015/base/lib/vendor/fetchers/flight-quote.fetcher.js +3 -3
  122. package/esm2015/base/lib/vendor/fetchers/get-companies.fetcher.js +11 -0
  123. package/esm2015/base/lib/vendor/fetchers/get-company.fetcher.js +11 -0
  124. package/esm2015/base/lib/vendor/fetchers/get-office.fetcher.js +11 -0
  125. package/esm2015/base/lib/vendor/fetchers/get-user-default-mi-value.fetcher.js +10 -0
  126. package/esm2015/base/lib/vendor/fetchers/get-user-guests.fetcher.js +11 -0
  127. package/esm2015/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.js +1 -1
  128. package/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +1 -1
  129. package/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +1 -1
  130. package/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +1 -1
  131. package/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +1 -1
  132. package/esm2015/base/lib/vendor/interfaces/Ifast-track-enterprise-search.js +1 -1
  133. package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +1 -1
  134. package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +2 -1
  135. package/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +1 -1
  136. package/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +1 -1
  137. package/esm2015/base/lib/vendor/interfaces/Imybookings.service.js +1 -1
  138. package/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +1 -1
  139. package/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +1 -1
  140. package/esm2015/base/lib/vendor/interfaces/Isearch.service.js +1 -1
  141. package/esm2015/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.js +1 -1
  142. package/esm2015/base/lib/vendor/interfaces/Iuser.service.js +1 -1
  143. package/esm2015/base/lib/vendor/interfaces/car-hire-search-arg.interface.js +1 -1
  144. package/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +1 -1
  145. package/esm2015/base/lib/vendor/interfaces/summary-interface.js +1 -1
  146. package/esm2015/base/lib/vendor/interfaces/user.data.js +1 -1
  147. package/esm2015/base/lib/vendor/models/traveller.object.js +21 -3
  148. package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +129 -43
  149. package/esm2015/base/lib/vendor/services/http-call.service.js +1 -1
  150. package/esm2015/base/lib/vendor/services/logon.service.js +40 -3
  151. package/esm2015/base/lib/vendor/services/my-bookings.service.js +3 -2
  152. package/esm2015/base/lib/vendor/services/requires-reason.service.js +14 -10
  153. package/esm2015/base/lib/vendor/services/search.service.js +100 -117
  154. package/esm2015/base/lib/vendor/services/url.service.js +3 -1
  155. package/esm2015/base/lib/vendor/services/user.service.js +90 -12
  156. package/esm2015/base/lib/vendor/services/webtoken.service.js +14 -1
  157. package/esm2015/base/lib/vendor/types/graphql.types.js +21 -2
  158. package/esm2015/base/lib/vendor/types/types.js +32 -14
  159. package/esm2015/base/lib/vendor/updaters/create-guest-updater.js +11 -0
  160. package/esm2015/base/sabstravtech-obtservices-base.js +1 -1
  161. package/esm2015/base/updaters.js +2 -1
  162. package/fesm2015/sabstravtech-obtservices-angular.js +1254 -1332
  163. package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
  164. package/fesm2015/sabstravtech-obtservices-base.js +3324 -839
  165. package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
  166. package/package.json +1 -1
@@ -112,7 +112,7 @@ export class UserInfoImpl {
112
112
  this.userInfo.phoneNumber = new PhoneNumberImpl(this.helpers);
113
113
  this.userInfo.supplementaryInfo =
114
114
  this.perPassengerSupplementaryBookingInfoSchema;
115
- if (this.user.id) {
115
+ if (this.user.id && this.user.__typename === 'User') {
116
116
  this.getUserFetcher
117
117
  .fetchOne({ id: this.user.id })
118
118
  .pipe(take(1))
@@ -131,6 +131,7 @@ export class SupplementaryBookingInfoImpl {
131
131
  this.basketItem = basketItem;
132
132
  this.helpers = helpers;
133
133
  this.hasDetails = false;
134
+ this.noCovertSelectSchemas = [SchemaFormat.railSeating, SchemaFormat.passport, SchemaFormat.selectQueue];
134
135
  this.basketItem.perPassengerSupplementaryBookingInfoSchema =
135
136
  basketItem.perPassengerSupplementaryBookingInfoSchema
136
137
  ? this.processSchema(this.basketItem.perPassengerSupplementaryBookingInfoSchema)
@@ -138,6 +139,9 @@ export class SupplementaryBookingInfoImpl {
138
139
  this.userInfo = this.basketItem.users.map((user) => {
139
140
  return new UserInfoImpl(user, getUserFetcher, helpers, this.basketItem.perPassengerPhoneNumber, this.basketItem.perPassengerAddress, this.basketItem.perPassengerSupplementaryBookingInfoSchema);
140
141
  });
142
+ this.guestInfo = this.basketItem.guests.map((guest) => {
143
+ return new UserInfoImpl(guest, getUserFetcher, helpers, this.basketItem.perPassengerPhoneNumber, this.basketItem.perPassengerAddress, this.basketItem.perPassengerSupplementaryBookingInfoSchema);
144
+ });
141
145
  this.address = new AddressImpl(this.helpers);
142
146
  this.phoneNumber = new PhoneNumberImpl(this.helpers);
143
147
  this.basketItem.perItemSupplementaryBookingInfoSchema = this.basketItem
@@ -184,7 +188,7 @@ export class SupplementaryBookingInfoImpl {
184
188
  item.format ||
185
189
  this.schemaWidgetToFormat(item.widget) ||
186
190
  this.schemaTypeToFormat(item.type);
187
- if (item.oneOf && item.oneOf.length > 0 && item.format !== 'railSeating' && item.format !== SchemaFormat.selectQueue) {
191
+ if (item.oneOf && item.oneOf.length > 0 && !this.noCovertSelectSchemas.includes(item.format)) {
188
192
  item.format = SchemaFormat.select;
189
193
  }
190
194
  });
@@ -230,7 +234,8 @@ export class SupplementaryBookingInfoImpl {
230
234
  basketItem: this.basketItem.id,
231
235
  userInfo: [],
232
236
  supplementaryInfo: {},
233
- paymentMethodDetails: {}
237
+ paymentMethodDetails: {},
238
+ guestInfo: []
234
239
  };
235
240
  if (values.perItemAddress !== undefined) {
236
241
  newValue.address = this.helpers.toStrings(values.perItemAddress, AddressSchema);
@@ -242,6 +247,7 @@ export class SupplementaryBookingInfoImpl {
242
247
  newValue.supplementaryInfo = this.helpers.toStrings(values.perItemSupplementarySchema, this.perItemSupplementarySchema);
243
248
  }
244
249
  newValue.userInfo = this.userInfo.map((userInfo, index) => {
250
+ var _a, _b;
245
251
  const userValue = { id: userInfo.id, supplementaryInfo: {} };
246
252
  const thisUserSupplemental = values['user_' + index] || {};
247
253
  if (thisUserSupplemental.perPassengerAddress !== undefined) {
@@ -254,9 +260,57 @@ export class SupplementaryBookingInfoImpl {
254
260
  undefined) {
255
261
  userValue.supplementaryInfo = this.helpers.toStrings(thisUserSupplemental.perPassengerSupplementaryBookingInfoSchema, this.perPassengerSupplementaryBookingInfoSchema);
256
262
  }
263
+ if (userValue.supplementaryInfo.passport) {
264
+ if ((_a = userValue.supplementaryInfo.passport.dateOfExpiry) === null || _a === void 0 ? void 0 : _a.year) {
265
+ userValue.supplementaryInfo.passport.dateOfExpiry = this.helpers.formatIsoDate(this.helpers.ngDateToMoment(userValue.supplementaryInfo.passport.dateOfExpiry));
266
+ }
267
+ if ((_b = userValue.supplementaryInfo.passport.dateOfIssue) === null || _b === void 0 ? void 0 : _b.year) {
268
+ userValue.supplementaryInfo.passport.dateOfIssue = this.helpers.formatIsoDate(this.helpers.ngDateToMoment(userValue.supplementaryInfo.passport.dateOfIssue));
269
+ }
270
+ if (!userValue.supplementaryInfo.passport.documentId && (!userValue.supplementaryInfo.passport.number ||
271
+ !userValue.supplementaryInfo.passport.dateOfExpiry ||
272
+ !userValue.supplementaryInfo.passport.dateOfIssue ||
273
+ !userValue.supplementaryInfo.passport.codeOfIssuingState ||
274
+ !userValue.supplementaryInfo.passport.gender ||
275
+ !userValue.supplementaryInfo.passport.nationality)) {
276
+ delete userValue.supplementaryInfo.passport;
277
+ }
278
+ }
279
+ return userValue;
280
+ });
281
+ newValue.guestInfo = this.guestInfo.map((guestInfo, index) => {
282
+ var _a, _b;
283
+ const userValue = { id: guestInfo.id, supplementaryInfo: {} };
284
+ const thisUserSupplemental = values['guest_' + index] || {};
285
+ if (thisUserSupplemental.perPassengerAddress !== undefined) {
286
+ userValue.address = this.helpers.toStrings(thisUserSupplemental.perPassengerAddress, AddressSchema);
287
+ }
288
+ if (thisUserSupplemental.perPassengerPhoneNumber !== undefined) {
289
+ userValue.phoneNumber = this.helpers.toStrings(thisUserSupplemental.perPassengerPhoneNumber, PhoneNumberSchema);
290
+ }
291
+ if (thisUserSupplemental.perPassengerSupplementaryBookingInfoSchema !==
292
+ undefined) {
293
+ userValue.supplementaryInfo = this.helpers.toStrings(thisUserSupplemental.perPassengerSupplementaryBookingInfoSchema, this.perPassengerSupplementaryBookingInfoSchema);
294
+ }
295
+ if (userValue.supplementaryInfo.passport) {
296
+ if ((_a = userValue.supplementaryInfo.passport.dateOfExpiry) === null || _a === void 0 ? void 0 : _a.year) {
297
+ userValue.supplementaryInfo.passport.dateOfExpiry = this.helpers.formatIsoDate(this.helpers.ngDateToMoment(userValue.supplementaryInfo.passport.dateOfExpiry));
298
+ }
299
+ if ((_b = userValue.supplementaryInfo.passport.dateOfIssue) === null || _b === void 0 ? void 0 : _b.year) {
300
+ userValue.supplementaryInfo.passport.dateOfIssue = this.helpers.formatIsoDate(this.helpers.ngDateToMoment(userValue.supplementaryInfo.passport.dateOfIssue));
301
+ }
302
+ if (!userValue.supplementaryInfo.passport.documentId && (!userValue.supplementaryInfo.passport.number ||
303
+ !userValue.supplementaryInfo.passport.dateOfExpiry ||
304
+ !userValue.supplementaryInfo.passport.dateOfIssue ||
305
+ !userValue.supplementaryInfo.passport.codeOfIssuingState ||
306
+ !userValue.supplementaryInfo.passport.gender ||
307
+ !userValue.supplementaryInfo.passport.nationality)) {
308
+ delete userValue.supplementaryInfo.passport;
309
+ }
310
+ }
257
311
  return userValue;
258
312
  });
259
313
  return newValue;
260
314
  }
261
315
  }
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcGxlbWVudGFyeS1ib29raW5nLWluZm8taW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9zdXBwbGVtZW50YXJ5LWJvb2tpbmctaW5mby1pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFLTCxZQUFZLEVBRVosT0FBTyxFQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFvQnhCLE1BQU0sWUFBWSxHQUFXO0lBQzNCLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQVc7SUFDaEMsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUUsWUFBWTtRQUN6QixRQUFRLEVBQUUsWUFBWTtRQUN0QixNQUFNLEVBQUUsWUFBWTtRQUNwQixTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztDQUM3RCxDQUFDO0FBQ0YsTUFBTSxhQUFhLEdBQVc7SUFDNUIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixZQUFZLEVBQUUsWUFBWTtRQUMxQixNQUFNLEVBQUUsWUFBWTtRQUNwQixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsWUFBWTtRQUNwQixRQUFRLEVBQUUsWUFBWTtRQUN0QixXQUFXLEVBQUUsWUFBWTtLQUMxQjtJQUNELFFBQVEsRUFBRTtRQUNSLGNBQWM7UUFDZCxRQUFRO1FBQ1IsTUFBTTtRQUNOLFFBQVE7UUFDUixVQUFVO1FBQ1YsYUFBYTtLQUNkO0NBQ0YsQ0FBQztB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QVMsQ0FBQztRQUNuQixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBHZXRVc2VyQWRkcmVzc1Jlc3VsdCxcclxuICBHZXRVc2VyUGhvbmVOdW1iZXJSZXN1bHQsXHJcbiAgR2V0VXNlclJlc3VsdCxcclxuICBTY2hlbWEsXHJcbiAgU2NoZW1hRm9ybWF0LFxyXG4gIFNjaGVtYVR5cGUsXHJcbiAgV2lkZ2V0c1xyXG59IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNlR2V0VXNlckZldGNoZXIsXHJcbiAgU2VhcmNoR2V0VXNlckZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvdXNlci1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBBZGRyZXNzLFxyXG4gIEJhc2tldEl0ZW0sXHJcbiAgQm9va2luZ0FkZHJlc3MsXHJcbiAgQm9va2luZ1Bob25lTnVtYmVyLFxyXG4gIEdldFVzZXJRdWVyeVZhcmlhYmxlcyxcclxuICBQYXltZW50TWV0aG9kSW5wdXQsXHJcbiAgUGhvbmVOdW1iZXIsXHJcbiAgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvLFxyXG4gIFVzZXIsXHJcbiAgVXNlckluZm9cclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9Jc3VwcGxlbWVudGFyeS1ib29raW5nLWluZm8taW1wbCc7XHJcbmltcG9ydCB7IGRlZmF1bHRUbyB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5jb25zdCBTY2hlbWFTdHJpbmc6IFNjaGVtYSA9IHtcclxuICB0eXBlOiAnc3RyaW5nJ1xyXG59O1xyXG5cclxuY29uc3QgUGhvbmVOdW1iZXJTY2hlbWE6IFNjaGVtYSA9IHtcclxuICB0eXBlOiAnb2JqZWN0JyxcclxuICBwcm9wZXJ0aWVzOiB7XHJcbiAgICBjb3VudHJ5Q29kZTogU2NoZW1hU3RyaW5nLFxyXG4gICAgYXJlYUNvZGU6IFNjaGVtYVN0cmluZyxcclxuICAgIG51bWJlcjogU2NoZW1hU3RyaW5nLFxyXG4gICAgZXh0ZW5zaW9uOiBTY2hlbWFTdHJpbmdcclxuICB9LFxyXG4gIHJlcXVpcmVkOiBbJ2NvdW50cnlDb2RlJywgJ2FyZWFDb2RlJywgJ251bWJlcicsICdleHRlbnNpb24nXVxyXG59O1xyXG5jb25zdCBBZGRyZXNzU2NoZW1hOiBTY2hlbWEgPSB7XHJcbiAgdHlwZTogJ29iamVjdCcsXHJcbiAgcHJvcGVydGllczoge1xyXG4gICAgbnVtYmVyT3JOYW1lOiBTY2hlbWFTdHJpbmcsXHJcbiAgICBzdHJlZXQ6IFNjaGVtYVN0cmluZyxcclxuICAgIHRvd246IFNjaGVtYVN0cmluZyxcclxuICAgIGNvdW50eTogU2NoZW1hU3RyaW5nLFxyXG4gICAgcG9zdGNvZGU6IFNjaGVtYVN0cmluZyxcclxuICAgIGNvdW50cnlDb2RlOiBTY2hlbWFTdHJpbmdcclxuICB9LFxyXG4gIHJlcXVpcmVkOiBbXHJcbiAgICAnbnVtYmVyT3JOYW1lJyxcclxuICAgICdzdHJlZXQnLFxyXG4gICAgJ3Rvd24nLFxyXG4gICAgJ2NvdW50eScsXHJcbiAgICAncG9zdGNvZGUnLFxyXG4gICAgJ2NvdW50cnlDb2RlJ1xyXG4gIF1cclxufTtcclxuZXhwb3J0IGNsYXNzIEFkZHJlc3NJbXBsIHtcclxuICBwcml2YXRlIGRldGFpbHM6IEJvb2tpbmdBZGRyZXNzID0ge1xyXG4gICAgbnVtYmVyT3JOYW1lOiAnJyxcclxuICAgIHN0cmVldDogJycsXHJcbiAgICB0b3duOiAnJyxcclxuICAgIGNvdW50eTogJycsXHJcbiAgICBwb3N0Y29kZTogJycsXHJcbiAgICBjb3VudHJ5Q29kZTogJ0dCJ1xyXG4gIH07XHJcblxyXG4gIGJvb2tpbmdBZGRyZXNzOiBCZWhhdmlvclN1YmplY3Q8Qm9va2luZ0FkZHJlc3NbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxyXG4gICAgQm9va2luZ0FkZHJlc3NbXVxyXG4gID4oW10pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcykge31cclxuXHJcbiAgdXBkYXRlRGV0YWlscyh2YWx1ZXM6IChCb29raW5nQWRkcmVzcyB8IEFkZHJlc3MgfCBHZXRVc2VyQWRkcmVzc1Jlc3VsdClbXSkge1xyXG4gICAgdGhpcy5ib29raW5nQWRkcmVzcy5uZXh0KFxyXG4gICAgICB2YWx1ZXMubWFwKCh2YWx1ZTogQm9va2luZ0FkZHJlc3MgfCBBZGRyZXNzIHwgR2V0VXNlckFkZHJlc3NSZXN1bHQpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5oZWxwZXJzLnNhbmF0aXplUmV0dXJuczxCb29raW5nQWRkcmVzcz4oXHJcbiAgICAgICAgICB0aGlzLmRldGFpbHMsXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVySW1wbCB7XHJcbiAgcHJpdmF0ZSBkZXRhaWxzOiBCb29raW5nUGhvbmVOdW1iZXIgPSB7XHJcbiAgICBjb3VudHJ5Q29kZTogJycsXHJcbiAgICBhcmVhQ29kZTogJycsXHJcbiAgICBudW1iZXI6ICcnLFxyXG4gICAgZXh0ZW5zaW9uOiAnJ1xyXG4gIH07XHJcblxyXG4gIGJvb2tpbmdQaG9uZU51bWJlcjogQmVoYXZpb3JTdWJqZWN0PEJvb2tpbmdQaG9uZU51bWJlcltdPiA9XHJcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEJvb2tpbmdQaG9uZU51bWJlcltdPihbXSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXMpIHt9XHJcblxyXG4gIHVwZGF0ZURldGFpbHMoXHJcbiAgICB2YWx1ZXM6IChCb29raW5nUGhvbmVOdW1iZXIgfCBQaG9uZU51bWJlciB8IEdldFVzZXJQaG9uZU51bWJlclJlc3VsdClbXVxyXG4gICkge1xyXG4gICAgdGhpcy5ib29raW5nUGhvbmVOdW1iZXIubmV4dCh2YWx1ZXMubWFwKFxyXG4gICAgICAgIChcclxuICAgICAgICAgIHZhbHVlOiBCb29raW5nUGhvbmVOdW1iZXIgfCBQaG9uZU51bWJlciB8IEdldFVzZXJQaG9uZU51bWJlclJlc3VsdFxyXG4gICAgICAgICk6IEJvb2tpbmdQaG9uZU51bWJlciA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5oZWxwZXJzLnNhbmF0aXplUmV0dXJuczxCb29raW5nUGhvbmVOdW1iZXI+KFxyXG4gICAgICAgICAgICB0aGlzLmRldGFpbHMsXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VySW5mb0ltcGw8USBleHRlbmRzIFNlYXJjaEdldFVzZXJGZXRjaGVyVHlwZT4ge1xyXG4gIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlci5pZDtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyQWRkcmVzcygpOiBBZGRyZXNzSW1wbCB7XHJcbiAgICBpZiAodGhpcy51c2VySW5mby5hZGRyZXNzID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc2V0VXBVc2VySW5mbygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudXNlckluZm8uYWRkcmVzcztcclxuICB9XHJcblxyXG4gIGdldCB1c2VyUGhvbmVOdW1iZXIoKTogUGhvbmVOdW1iZXJJbXBsIHtcclxuICAgIGlmICh0aGlzLnVzZXJJbmZvPy5waG9uZU51bWJlciA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNldFVwVXNlckluZm8oKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnVzZXJJbmZvLnBob25lTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJTdXBwbGVtZW50YXJ5SW5mbygpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMudXNlckluZm8uc3VwcGxlbWVudGFyeUluZm8gPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZXRVcFVzZXJJbmZvKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy51c2VySW5mby5zdXBwbGVtZW50YXJ5SW5mbztcclxuICB9XHJcbiAgdXNlckluZm86IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBhZGRyZXNzOiBBZGRyZXNzSW1wbDtcclxuICAgIHBob25lTnVtYmVyOiBQaG9uZU51bWJlckltcGw7XHJcbiAgICBzdXBwbGVtZW50YXJ5SW5mbzogU2NoZW1hO1xyXG4gIH07XHJcbiAgdXNlckRldGFpbHM6IEdldFVzZXJSZXN1bHQgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyOiBVc2VyLFxyXG4gICAgcHJpdmF0ZSBnZXRVc2VyRmV0Y2hlcjogQmFzZUdldFVzZXJGZXRjaGVyPFE+LFxyXG4gICAgcHJpdmF0ZSBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXMsXHJcbiAgICBwcml2YXRlIHBlclBhc3NlbmdlclBob25lTnVtYmVyOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBwZXJQYXNzZW5nZXJBZGRyZXNzOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBwZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWE6IFNjaGVtYVxyXG4gICkge1xyXG4gICAgdGhpcy51c2VySW5mbyA9IHtcclxuICAgICAgaWQ6IHVzZXIuaWQsXHJcbiAgICAgIGFkZHJlc3M6IG51bGwsXHJcbiAgICAgIHBob25lTnVtYmVyOiBudWxsLFxyXG4gICAgICBzdXBwbGVtZW50YXJ5SW5mbzogbnVsbFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBVc2VySW5mbygpIHtcclxuICAgIHRoaXMudXNlckluZm8uYWRkcmVzcyA9IG5ldyBBZGRyZXNzSW1wbCh0aGlzLmhlbHBlcnMpO1xyXG4gICAgdGhpcy51c2VySW5mby5waG9uZU51bWJlciA9IG5ldyBQaG9uZU51bWJlckltcGwodGhpcy5oZWxwZXJzKTtcclxuICAgIHRoaXMudXNlckluZm8uc3VwcGxlbWVudGFyeUluZm8gPVxyXG4gICAgICB0aGlzLnBlclBhc3NlbmdlclN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYTtcclxuICAgIGlmICh0aGlzLnVzZXIuaWQpIHtcclxuICAgICAgdGhpcy5nZXRVc2VyRmV0Y2hlclxyXG4gICAgICAgIC5mZXRjaE9uZSh7IGlkOiB0aGlzLnVzZXIuaWQgfSlcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogR2V0VXNlclJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJEZXRhaWxzID0gcmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJJbmZvLmFkZHJlc3MudXBkYXRlRGV0YWlscyhyZXN1bHQ/LmFkZHJlc3Nlcyk7XHJcbiAgICAgICAgICAgIHRoaXMudXNlckluZm8ucGhvbmVOdW1iZXIudXBkYXRlRGV0YWlscyhyZXN1bHQ/LnBob25lTnVtYmVycyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvSW1wbDxRIGV4dGVuZHMgU2VhcmNoR2V0VXNlckZldGNoZXJUeXBlPlxyXG4gIGltcGxlbWVudHMgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvSW50ZXJmYWNlXHJcbntcclxuICAvLyBGcm9tIFN1cHBsZW1lbnRhcnRCb29raW5nSW5mb1xyXG5cclxuICBnZXQgcGVySXRlbUFkZHJlc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmJhc2tldEl0ZW0ucGVySXRlbUFkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVySXRlbVBob25lTnVtYmVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5iYXNrZXRJdGVtLnBlckl0ZW1QaG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIGdldCBwZXJJdGVtU3VwcGxlbWVudGFyeVNjaGVtYSgpOiBTY2hlbWEge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFza2V0SXRlbS5wZXJJdGVtU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlclBhc3NlbmdlckFkZHJlc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyQWRkcmVzcztcclxuICB9XHJcblxyXG4gIGdldCBwZXJQYXNzZW5nZXJQaG9uZU51bWJlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJQaG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIGdldCBwZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEoKTogU2NoZW1hIHtcclxuICAgIHJldHVybiB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hO1xyXG4gIH1cclxuXHJcbiAgLy8gYWRpdGlvbmFsIGZpZWxkc1xyXG4gIGFkZHJlc3M6IEFkZHJlc3NJbXBsO1xyXG4gIHBob25lTnVtYmVyOiBQaG9uZU51bWJlckltcGw7XHJcbiAgdXNlckluZm86IFVzZXJJbmZvSW1wbDxRPltdO1xyXG4gIGhhc0RldGFpbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYmFza2V0SXRlbTogQmFza2V0SXRlbSxcclxuICAgIHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzLFxyXG4gICAgZ2V0VXNlckZldGNoZXI6IEJhc2VHZXRVc2VyRmV0Y2hlcjxRPlxyXG4gICkge1xyXG4gICAgdGhpcy5iYXNrZXRJdGVtLnBlclBhc3NlbmdlclN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYSA9XHJcbiAgICAgIGJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICAgPyB0aGlzLnByb2Nlc3NTY2hlbWEoXHJcbiAgICAgICAgICAgIHRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWFcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG51bGw7XHJcbiAgICB0aGlzLnVzZXJJbmZvID0gdGhpcy5iYXNrZXRJdGVtLnVzZXJzLm1hcCgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IFVzZXJJbmZvSW1wbChcclxuICAgICAgICB1c2VyLFxyXG4gICAgICAgIGdldFVzZXJGZXRjaGVyLFxyXG4gICAgICAgIGhlbHBlcnMsXHJcbiAgICAgICAgdGhpcy5iYXNrZXRJdGVtLnBlclBhc3NlbmdlclBob25lTnVtYmVyLFxyXG4gICAgICAgIHRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJBZGRyZXNzLFxyXG4gICAgICAgIHRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWFcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkcmVzcyA9IG5ldyBBZGRyZXNzSW1wbCh0aGlzLmhlbHBlcnMpO1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9IG5ldyBQaG9uZU51bWJlckltcGwodGhpcy5oZWxwZXJzKTtcclxuXHJcbiAgICB0aGlzLmJhc2tldEl0ZW0ucGVySXRlbVN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYSA9IHRoaXMuYmFza2V0SXRlbVxyXG4gICAgICAucGVySXRlbVN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYVxyXG4gICAgICA/IHRoaXMucHJvY2Vzc1NjaGVtYShcclxuICAgICAgICAgIHRoaXMuYmFza2V0SXRlbS5wZXJJdGVtU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hIHx8IHt9XHJcbiAgICAgICAgKVxyXG4gICAgICA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzU2NoZW1hKHNjaGVtYTogU2NoZW1hKSB7XHJcbiAgICBjb25zb2xlLndhcm4oJ3Byb2Nlc3Npbmc6ICcsIHNjaGVtYSk7XHJcbiAgICBzY2hlbWEgPSB0aGlzLmhlbHBlcnMuY2xvbmUoc2NoZW1hKTtcclxuICAgIHRoaXMuaGFzRGV0YWlscyA9XHJcbiAgICAgIHRoaXMucGVySXRlbUFkZHJlc3MgfHxcclxuICAgICAgdGhpcy5wZXJJdGVtUGhvbmVOdW1iZXIgfHxcclxuICAgICAgdGhpcy5wZXJQYXNzZW5nZXJBZGRyZXNzIHx8XHJcbiAgICAgIHRoaXMucGVyUGFzc2VuZ2VyUGhvbmVOdW1iZXI7XHJcbiAgICBPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcyB8fCB7fSkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ2hlcmU6ICcsIGtleSk7XHJcbiAgICAgIHRoaXMuaGFzRGV0YWlscyA9IHRydWU7XHJcbiAgICAgIGNvbnN0IGl0ZW06IFNjaGVtYSA9IHNjaGVtYS5wcm9wZXJ0aWVzW2tleV07XHJcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgaXRlbS5mb3JtYXQgPSB0aGlzLmFkZFJhaWxGb3JtYXQoa2V5KSB8fCBTY2hlbWFGb3JtYXQub2JqZWN0XHJcbiAgICAgICAgc2NoZW1hLnByb3BlcnRpZXNba2V5XSA9IHtcclxuICAgICAgICAgIC4uLnRoaXMucHJvY2Vzc1NjaGVtYShpdGVtKSxcclxuICAgICAgICAgIGZvcm1hdDogdGhpcy5hZGRSYWlsRm9ybWF0KGtleSkgfHwgU2NoZW1hRm9ybWF0Lm9iamVjdFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgaXRlbS5mb3JtYXQgPVxyXG4gICAgICAgIGl0ZW0uZm9ybWF0IHx8XHJcbiAgICAgICAgdGhpcy5zY2hlbWFXaWRnZXRUb0Zvcm1hdChpdGVtLndpZGdldCkgfHxcclxuICAgICAgICB0aGlzLnNjaGVtYVR5cGVUb0Zvcm1hdChpdGVtLnR5cGUpO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5vbmVPZiAmJiBpdGVtLm9uZU9mLmxlbmd0aCA+IDAgJiYgaXRlbS5mb3JtYXQgIT09ICdyYWlsU2VhdGluZycgJiYgaXRlbS5mb3JtYXQgIT09IFNjaGVtYUZvcm1hdC5zZWxlY3RRdWV1ZSkge1xyXG4gICAgICAgICAgaXRlbS5mb3JtYXQgPSBTY2hlbWFGb3JtYXQuc2VsZWN0O1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2coYCsrKyBoYXMgRGV0YWlsczogJHt0aGlzLmhhc0RldGFpbHN9ICsrK2ApO1xyXG4gICAgcmV0dXJuIHNjaGVtYTtcclxuICB9XHJcblxyXG4gIHNjaGVtYVdpZGdldFRvRm9ybWF0KHdpZGdldDogc3RyaW5nKTogU2NoZW1hRm9ybWF0IHtcclxuICAgIHN3aXRjaCAod2lkZ2V0KSB7XHJcbiAgICAgIGNhc2UgV2lkZ2V0cy5DT1VOVFJZX0NPREU6XHJcbiAgICAgICAgcmV0dXJuIFNjaGVtYUZvcm1hdC5jb3VudHJ5Q29kZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZFJhaWxGb3JtYXQoa2V5OiBzdHJpbmcpOiBTY2hlbWFGb3JtYXQge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSBTY2hlbWFGb3JtYXQuYWRkaXRpb25hbFNlYXRQcmVmZXJlbmNlOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYWRkaXRpb25hbFNlYXRQcmVmZXJlbmNlO1xyXG4gICAgICBjYXNlIFNjaGVtYUZvcm1hdC5zZWF0UHJlZkdyb3VwczpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0LnNlYXRQcmVmR3JvdXBzO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2NoZW1hVHlwZVRvRm9ybWF0KHR5cGU6IFNjaGVtYVR5cGUpOiBTY2hlbWFGb3JtYXQge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuIFNjaGVtYUZvcm1hdC5zdHJpbmc7XHJcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuaW50ZWdlcjtcclxuICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0Lm9iamVjdDtcclxuICAgICAgY2FzZSAnYXJyYXknOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYXJyYXk7XHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYm9vbGVhbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0LnN0cmluZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVN1cHBsZW10YWxCb29raW5nSW5mb3JtYXRpb24odmFsdWVzOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgfSk6IFN1cHBsZW1lbnRhcnlCb29raW5nSW5mbyB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZTogU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvID0ge1xyXG4gICAgICBiYXNrZXRJdGVtOiB0aGlzLmJhc2tldEl0ZW0uaWQsXHJcbiAgICAgIHVzZXJJbmZvOiBbXSxcclxuICAgICAgc3VwcGxlbWVudGFyeUluZm86IHt9LFxyXG4gICAgICBwYXltZW50TWV0aG9kRGV0YWlsczoge30gYXMgUGF5bWVudE1ldGhvZElucHV0XHJcbiAgICB9O1xyXG4gICAgaWYgKHZhbHVlcy5wZXJJdGVtQWRkcmVzcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG5ld1ZhbHVlLmFkZHJlc3MgPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgIHZhbHVlcy5wZXJJdGVtQWRkcmVzcyxcclxuICAgICAgICBBZGRyZXNzU2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVzLnBlckl0ZW1QaG9uZU51bWJlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG5ld1ZhbHVlLnBob25lTnVtYmVyID0gdGhpcy5oZWxwZXJzLnRvU3RyaW5ncyhcclxuICAgICAgICB2YWx1ZXMucGVySXRlbVBob25lTnVtYmVyLFxyXG4gICAgICAgIFBob25lTnVtYmVyU2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVzLnBlckl0ZW1TdXBwbGVtZW50YXJ5U2NoZW1hICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbmV3VmFsdWUuc3VwcGxlbWVudGFyeUluZm8gPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgIHZhbHVlcy5wZXJJdGVtU3VwcGxlbWVudGFyeVNjaGVtYSxcclxuICAgICAgICB0aGlzLnBlckl0ZW1TdXBwbGVtZW50YXJ5U2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3VmFsdWUudXNlckluZm8gPSB0aGlzLnVzZXJJbmZvLm1hcChcclxuICAgICAgKHVzZXJJbmZvOiBVc2VySW5mb0ltcGw8UT4sIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyVmFsdWU6IFVzZXJJbmZvID0geyBpZDogdXNlckluZm8uaWQsIHN1cHBsZW1lbnRhcnlJbmZvOiB7fSB9O1xyXG4gICAgICAgIGNvbnN0IHRoaXNVc2VyU3VwcGxlbWVudGFsID0gdmFsdWVzWyd1c2VyXycgKyBpbmRleF0gfHwge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5hZGRyZXNzID0gdGhpcy5oZWxwZXJzLnRvU3RyaW5ncyhcclxuICAgICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyQWRkcmVzcyxcclxuICAgICAgICAgICAgQWRkcmVzc1NjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5waG9uZU51bWJlciA9IHRoaXMuaGVscGVycy50b1N0cmluZ3MoXHJcbiAgICAgICAgICAgIHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyLFxyXG4gICAgICAgICAgICBQaG9uZU51bWJlclNjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hICE9PVxyXG4gICAgICAgICAgdW5kZWZpbmVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8gPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgICAgICB0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEsXHJcbiAgICAgICAgICAgIHRoaXMucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVzZXJWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICB9XHJcbn1cclxuIl19
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcGxlbWVudGFyeS1ib29raW5nLWluZm8taW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9zdXBwbGVtZW50YXJ5LWJvb2tpbmctaW5mby1pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFLTCxZQUFZLEVBRVosT0FBTyxFQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFzQnhCLE1BQU0sWUFBWSxHQUFXO0lBQzNCLElBQUksRUFBRSxRQUFRO0NBQ2YsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQVc7SUFDaEMsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixXQUFXLEVBQUUsWUFBWTtRQUN6QixRQUFRLEVBQUUsWUFBWTtRQUN0QixNQUFNLEVBQUUsWUFBWTtRQUNwQixTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztDQUM3RCxDQUFDO0FBQ0YsTUFBTSxhQUFhLEdBQVc7SUFDNUIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUU7UUFDVixZQUFZLEVBQUUsWUFBWTtRQUMxQixNQUFNLEVBQUUsWUFBWTtRQUNwQixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsWUFBWTtRQUNwQixRQUFRLEVBQUUsWUFBWTtRQUN0QixXQUFXLEVBQUUsWUFBWTtLQUMxQjtJQUNELFFBQVEsRUFBRTtRQUNSLGNBQWM7UUFDZCxRQUFRO1FBQ1IsTUFBTTtRQUNOLFFBQVE7UUFDUixVQUFVO1FBQ1YsYUFBYTtLQUNkO0NBQ0YsQ0FBQztB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LGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZO29CQUNsRCxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsV0FBVztvQkFDakQsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGtCQUFrQjtvQkFDeEQsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU07b0JBQzVDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbEQ7b0JBQ0EsT0FBTyxTQUFTLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO2lCQUM3QzthQUVGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlSGVscGVyUm91dGluZXMgfSBmcm9tICcuLi9jbGFzc2VzL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgR2V0VXNlckFkZHJlc3NSZXN1bHQsXHJcbiAgR2V0VXNlclBob25lTnVtYmVyUmVzdWx0LFxyXG4gIEdldFVzZXJSZXN1bHQsXHJcbiAgU2NoZW1hLFxyXG4gIFNjaGVtYUZvcm1hdCxcclxuICBTY2hlbWFUeXBlLFxyXG4gIFdpZGdldHNcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUdldFVzZXJGZXRjaGVyLFxyXG4gIFNlYXJjaEdldFVzZXJGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL3VzZXItZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgQWRkcmVzcyxcclxuICBCYXNrZXRJdGVtLFxyXG4gIEJvb2tpbmdBZGRyZXNzLFxyXG4gIEJvb2tpbmdQaG9uZU51bWJlcixcclxuICBHZXRVc2VyUXVlcnlWYXJpYWJsZXMsXHJcbiAgR3Vlc3QsXHJcbiAgUGF5bWVudE1ldGhvZElucHV0LFxyXG4gIFBob25lTnVtYmVyLFxyXG4gIFN1cHBsZW1lbnRhcnlCb29raW5nSW5mbyxcclxuICBVc2VyLFxyXG4gIFVzZXJJbmZvLFxyXG4gIFVzZXJPckd1ZXN0XHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7IFN1cHBsZW1lbnRhcnlCb29raW5nSW5mb0ludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSXN1cHBsZW1lbnRhcnktYm9va2luZy1pbmZvLWltcGwnO1xyXG5pbXBvcnQgeyBkZWZhdWx0VG8gfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuY29uc3QgU2NoZW1hU3RyaW5nOiBTY2hlbWEgPSB7XHJcbiAgdHlwZTogJ3N0cmluZydcclxufTtcclxuXHJcbmNvbnN0IFBob25lTnVtYmVyU2NoZW1hOiBTY2hlbWEgPSB7XHJcbiAgdHlwZTogJ29iamVjdCcsXHJcbiAgcHJvcGVydGllczoge1xyXG4gICAgY291bnRyeUNvZGU6IFNjaGVtYVN0cmluZyxcclxuICAgIGFyZWFDb2RlOiBTY2hlbWFTdHJpbmcsXHJcbiAgICBudW1iZXI6IFNjaGVtYVN0cmluZyxcclxuICAgIGV4dGVuc2lvbjogU2NoZW1hU3RyaW5nXHJcbiAgfSxcclxuICByZXF1aXJlZDogWydjb3VudHJ5Q29kZScsICdhcmVhQ29kZScsICdudW1iZXInLCAnZXh0ZW5zaW9uJ11cclxufTtcclxuY29uc3QgQWRkcmVzc1NjaGVtYTogU2NoZW1hID0ge1xyXG4gIHR5cGU6ICdvYmplY3QnLFxyXG4gIHByb3BlcnRpZXM6IHtcclxuICAgIG51bWJlck9yTmFtZTogU2NoZW1hU3RyaW5nLFxyXG4gICAgc3RyZWV0OiBTY2hlbWFTdHJpbmcsXHJcbiAgICB0b3duOiBTY2hlbWFTdHJpbmcsXHJcbiAgICBjb3VudHk6IFNjaGVtYVN0cmluZyxcclxuICAgIHBvc3Rjb2RlOiBTY2hlbWFTdHJpbmcsXHJcbiAgICBjb3VudHJ5Q29kZTogU2NoZW1hU3RyaW5nXHJcbiAgfSxcclxuICByZXF1aXJlZDogW1xyXG4gICAgJ251bWJlck9yTmFtZScsXHJcbiAgICAnc3RyZWV0JyxcclxuICAgICd0b3duJyxcclxuICAgICdjb3VudHknLFxyXG4gICAgJ3Bvc3Rjb2RlJyxcclxuICAgICdjb3VudHJ5Q29kZSdcclxuICBdXHJcbn07XHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzSW1wbCB7XHJcbiAgcHJpdmF0ZSBkZXRhaWxzOiBCb29raW5nQWRkcmVzcyA9IHtcclxuICAgIG51bWJlck9yTmFtZTogJycsXHJcbiAgICBzdHJlZXQ6ICcnLFxyXG4gICAgdG93bjogJycsXHJcbiAgICBjb3VudHk6ICcnLFxyXG4gICAgcG9zdGNvZGU6ICcnLFxyXG4gICAgY291bnRyeUNvZGU6ICdHQidcclxuICB9O1xyXG5cclxuICBib29raW5nQWRkcmVzczogQmVoYXZpb3JTdWJqZWN0PEJvb2tpbmdBZGRyZXNzW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIEJvb2tpbmdBZGRyZXNzW11cclxuICA+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXMpIHt9XHJcblxyXG4gIHVwZGF0ZURldGFpbHModmFsdWVzOiAoQm9va2luZ0FkZHJlc3MgfCBBZGRyZXNzIHwgR2V0VXNlckFkZHJlc3NSZXN1bHQpW10pIHtcclxuICAgIHRoaXMuYm9va2luZ0FkZHJlc3MubmV4dChcclxuICAgICAgdmFsdWVzLm1hcCgodmFsdWU6IEJvb2tpbmdBZGRyZXNzIHwgQWRkcmVzcyB8IEdldFVzZXJBZGRyZXNzUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVscGVycy5zYW5hdGl6ZVJldHVybnM8Qm9va2luZ0FkZHJlc3M+KFxyXG4gICAgICAgICAgdGhpcy5kZXRhaWxzLFxyXG4gICAgICAgICAgdmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU51bWJlckltcGwge1xyXG4gIHByaXZhdGUgZGV0YWlsczogQm9va2luZ1Bob25lTnVtYmVyID0ge1xyXG4gICAgY291bnRyeUNvZGU6ICcnLFxyXG4gICAgYXJlYUNvZGU6ICcnLFxyXG4gICAgbnVtYmVyOiAnJyxcclxuICAgIGV4dGVuc2lvbjogJydcclxuICB9O1xyXG5cclxuICBib29raW5nUGhvbmVOdW1iZXI6IEJlaGF2aW9yU3ViamVjdDxCb29raW5nUGhvbmVOdW1iZXJbXT4gPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxCb29raW5nUGhvbmVOdW1iZXJbXT4oW10pO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzKSB7fVxyXG5cclxuICB1cGRhdGVEZXRhaWxzKFxyXG4gICAgdmFsdWVzOiAoQm9va2luZ1Bob25lTnVtYmVyIHwgUGhvbmVOdW1iZXIgfCBHZXRVc2VyUGhvbmVOdW1iZXJSZXN1bHQpW11cclxuICApIHtcclxuICAgIHRoaXMuYm9va2luZ1Bob25lTnVtYmVyLm5leHQodmFsdWVzLm1hcChcclxuICAgICAgICAoXHJcbiAgICAgICAgICB2YWx1ZTogQm9va2luZ1Bob25lTnVtYmVyIHwgUGhvbmVOdW1iZXIgfCBHZXRVc2VyUGhvbmVOdW1iZXJSZXN1bHRcclxuICAgICAgICApOiBCb29raW5nUGhvbmVOdW1iZXIgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGVscGVycy5zYW5hdGl6ZVJldHVybnM8Qm9va2luZ1Bob25lTnVtYmVyPihcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxzLFxyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckluZm9JbXBsPFEgZXh0ZW5kcyBTZWFyY2hHZXRVc2VyRmV0Y2hlclR5cGU+IHtcclxuICBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXIuaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlckFkZHJlc3MoKTogQWRkcmVzc0ltcGwge1xyXG4gICAgaWYgKHRoaXMudXNlckluZm8uYWRkcmVzcyA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNldFVwVXNlckluZm8oKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnVzZXJJbmZvLmFkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlclBob25lTnVtYmVyKCk6IFBob25lTnVtYmVySW1wbCB7XHJcbiAgICBpZiAodGhpcy51c2VySW5mbz8ucGhvbmVOdW1iZXIgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZXRVcFVzZXJJbmZvKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy51c2VySW5mby5waG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyU3VwcGxlbWVudGFyeUluZm8oKTogYW55IHtcclxuICAgIGlmICh0aGlzLnVzZXJJbmZvLnN1cHBsZW1lbnRhcnlJbmZvID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc2V0VXBVc2VySW5mbygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudXNlckluZm8uc3VwcGxlbWVudGFyeUluZm87XHJcbiAgfVxyXG4gIHVzZXJJbmZvOiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgYWRkcmVzczogQWRkcmVzc0ltcGw7XHJcbiAgICBwaG9uZU51bWJlcjogUGhvbmVOdW1iZXJJbXBsO1xyXG4gICAgc3VwcGxlbWVudGFyeUluZm86IFNjaGVtYTtcclxuICB9O1xyXG4gIHVzZXJEZXRhaWxzOiBHZXRVc2VyUmVzdWx0ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXNlcjogVXNlck9yR3Vlc3QsXHJcbiAgICBwcml2YXRlIGdldFVzZXJGZXRjaGVyOiBCYXNlR2V0VXNlckZldGNoZXI8UT4sXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgcGVyUGFzc2VuZ2VyUGhvbmVOdW1iZXI6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIHBlclBhc3NlbmdlckFkZHJlc3M6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIHBlclBhc3NlbmdlclN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYTogU2NoZW1hXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJJbmZvID0ge1xyXG4gICAgICBpZDogdXNlci5pZCxcclxuICAgICAgYWRkcmVzczogbnVsbCxcclxuICAgICAgcGhvbmVOdW1iZXI6IG51bGwsXHJcbiAgICAgIHN1cHBsZW1lbnRhcnlJbmZvOiBudWxsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcFVzZXJJbmZvKCkge1xyXG4gICAgdGhpcy51c2VySW5mby5hZGRyZXNzID0gbmV3IEFkZHJlc3NJbXBsKHRoaXMuaGVscGVycyk7XHJcbiAgICB0aGlzLnVzZXJJbmZvLnBob25lTnVtYmVyID0gbmV3IFBob25lTnVtYmVySW1wbCh0aGlzLmhlbHBlcnMpO1xyXG4gICAgdGhpcy51c2VySW5mby5zdXBwbGVtZW50YXJ5SW5mbyA9XHJcbiAgICAgIHRoaXMucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hO1xyXG4gICAgaWYgKHRoaXMudXNlci5pZCAmJiB0aGlzLnVzZXIuX190eXBlbmFtZSA9PT0gJ1VzZXInKSB7XHJcbiAgICAgIHRoaXMuZ2V0VXNlckZldGNoZXJcclxuICAgICAgICAuZmV0Y2hPbmUoeyBpZDogdGhpcy51c2VyLmlkIH0pXHJcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IEdldFVzZXJSZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy51c2VyRGV0YWlscyA9IHJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy51c2VySW5mby5hZGRyZXNzLnVwZGF0ZURldGFpbHMocmVzdWx0Py5hZGRyZXNzZXMpO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJJbmZvLnBob25lTnVtYmVyLnVwZGF0ZURldGFpbHMocmVzdWx0Py5waG9uZU51bWJlcnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvSW1wbDxRIGV4dGVuZHMgU2VhcmNoR2V0VXNlckZldGNoZXJUeXBlPlxyXG4gIGltcGxlbWVudHMgU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvSW50ZXJmYWNlXHJcbntcclxuICAvLyBGcm9tIFN1cHBsZW1lbnRhcnRCb29raW5nSW5mb1xyXG5cclxuICBnZXQgcGVySXRlbUFkZHJlc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmJhc2tldEl0ZW0ucGVySXRlbUFkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVySXRlbVBob25lTnVtYmVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5iYXNrZXRJdGVtLnBlckl0ZW1QaG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIGdldCBwZXJJdGVtU3VwcGxlbWVudGFyeVNjaGVtYSgpOiBTY2hlbWEge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFza2V0SXRlbS5wZXJJdGVtU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlclBhc3NlbmdlckFkZHJlc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyQWRkcmVzcztcclxuICB9XHJcblxyXG4gIGdldCBwZXJQYXNzZW5nZXJQaG9uZU51bWJlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJQaG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIGdldCBwZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEoKTogU2NoZW1hIHtcclxuICAgIHJldHVybiB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hO1xyXG4gIH1cclxuXHJcbiAgLy8gYWRpdGlvbmFsIGZpZWxkc1xyXG4gIGFkZHJlc3M6IEFkZHJlc3NJbXBsO1xyXG4gIHBob25lTnVtYmVyOiBQaG9uZU51bWJlckltcGw7XHJcbiAgdXNlckluZm86IFVzZXJJbmZvSW1wbDxRPltdO1xyXG4gIGd1ZXN0SW5mbzogVXNlckluZm9JbXBsPFE+W107XHJcbiAgaGFzRGV0YWlsczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vQ292ZXJ0U2VsZWN0U2NoZW1hczogU2NoZW1hRm9ybWF0W10gPSBbU2NoZW1hRm9ybWF0LnJhaWxTZWF0aW5nLCBTY2hlbWFGb3JtYXQucGFzc3BvcnQsIFNjaGVtYUZvcm1hdC5zZWxlY3RRdWV1ZV07XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGJhc2tldEl0ZW06IEJhc2tldEl0ZW0sXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIGdldFVzZXJGZXRjaGVyOiBCYXNlR2V0VXNlckZldGNoZXI8UT5cclxuICApIHtcclxuICAgIHRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEgPVxyXG4gICAgICBiYXNrZXRJdGVtLnBlclBhc3NlbmdlclN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYVxyXG4gICAgICAgID8gdGhpcy5wcm9jZXNzU2NoZW1hKFxyXG4gICAgICAgICAgICB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgdGhpcy51c2VySW5mbyA9IHRoaXMuYmFza2V0SXRlbS51c2Vycy5tYXAoKHVzZXI6IFVzZXIpID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBVc2VySW5mb0ltcGwoXHJcbiAgICAgICAgdXNlcixcclxuICAgICAgICBnZXRVc2VyRmV0Y2hlcixcclxuICAgICAgICBoZWxwZXJzLFxyXG4gICAgICAgIHRoaXMuYmFza2V0SXRlbS5wZXJQYXNzZW5nZXJQaG9uZU51bWJlcixcclxuICAgICAgICB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyQWRkcmVzcyxcclxuICAgICAgICB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmd1ZXN0SW5mbyA9IHRoaXMuYmFza2V0SXRlbS5ndWVzdHMubWFwKChndWVzdDogR3Vlc3QpID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBVc2VySW5mb0ltcGwoXHJcbiAgICAgICAgZ3Vlc3QsXHJcbiAgICAgICAgZ2V0VXNlckZldGNoZXIsXHJcbiAgICAgICAgaGVscGVycyxcclxuICAgICAgICB0aGlzLmJhc2tldEl0ZW0ucGVyUGFzc2VuZ2VyUGhvbmVOdW1iZXIsXHJcbiAgICAgICAgdGhpcy5iYXNrZXRJdGVtLnBlclBhc3NlbmdlckFkZHJlc3MsXHJcbiAgICAgICAgdGhpcy5iYXNrZXRJdGVtLnBlclBhc3NlbmdlclN1cHBsZW1lbnRhcnlCb29raW5nSW5mb1NjaGVtYVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRyZXNzID0gbmV3IEFkZHJlc3NJbXBsKHRoaXMuaGVscGVycyk7XHJcbiAgICB0aGlzLnBob25lTnVtYmVyID0gbmV3IFBob25lTnVtYmVySW1wbCh0aGlzLmhlbHBlcnMpO1xyXG5cclxuICAgIHRoaXMuYmFza2V0SXRlbS5wZXJJdGVtU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hID0gdGhpcy5iYXNrZXRJdGVtXHJcbiAgICAgIC5wZXJJdGVtU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgID8gdGhpcy5wcm9jZXNzU2NoZW1hKFxyXG4gICAgICAgICAgdGhpcy5iYXNrZXRJdGVtLnBlckl0ZW1TdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEgfHwge31cclxuICAgICAgICApXHJcbiAgICAgIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NTY2hlbWEoc2NoZW1hOiBTY2hlbWEpIHtcclxuICAgIGNvbnNvbGUud2FybigncHJvY2Vzc2luZzogJywgc2NoZW1hKTtcclxuICAgIHNjaGVtYSA9IHRoaXMuaGVscGVycy5jbG9uZShzY2hlbWEpO1xyXG4gICAgdGhpcy5oYXNEZXRhaWxzID1cclxuICAgICAgdGhpcy5wZXJJdGVtQWRkcmVzcyB8fFxyXG4gICAgICB0aGlzLnBlckl0ZW1QaG9uZU51bWJlciB8fFxyXG4gICAgICB0aGlzLnBlclBhc3NlbmdlckFkZHJlc3MgfHxcclxuICAgICAgdGhpcy5wZXJQYXNzZW5nZXJQaG9uZU51bWJlcjtcclxuICAgIE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzIHx8IHt9KS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGVyZTogJywga2V5KTtcclxuICAgICAgdGhpcy5oYXNEZXRhaWxzID0gdHJ1ZTtcclxuICAgICAgY29uc3QgaXRlbTogU2NoZW1hID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcclxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpdGVtLmZvcm1hdCA9IHRoaXMuYWRkUmFpbEZvcm1hdChrZXkpIHx8IFNjaGVtYUZvcm1hdC5vYmplY3RcclxuICAgICAgICBzY2hlbWEucHJvcGVydGllc1trZXldID0ge1xyXG4gICAgICAgICAgLi4udGhpcy5wcm9jZXNzU2NoZW1hKGl0ZW0pLFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmFkZFJhaWxGb3JtYXQoa2V5KSB8fCBTY2hlbWFGb3JtYXQub2JqZWN0XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaXRlbS5mb3JtYXQgPVxyXG4gICAgICAgIGl0ZW0uZm9ybWF0IHx8XHJcbiAgICAgICAgdGhpcy5zY2hlbWFXaWRnZXRUb0Zvcm1hdChpdGVtLndpZGdldCkgfHxcclxuICAgICAgICB0aGlzLnNjaGVtYVR5cGVUb0Zvcm1hdChpdGVtLnR5cGUpO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5vbmVPZiAmJiBpdGVtLm9uZU9mLmxlbmd0aCA+IDAgJiYgIXRoaXMubm9Db3ZlcnRTZWxlY3RTY2hlbWFzLmluY2x1ZGVzKGl0ZW0uZm9ybWF0KSkge1xyXG4gICAgICAgICAgaXRlbS5mb3JtYXQgPSBTY2hlbWFGb3JtYXQuc2VsZWN0O1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2coYCsrKyBoYXMgRGV0YWlsczogJHt0aGlzLmhhc0RldGFpbHN9ICsrK2ApO1xyXG4gICAgcmV0dXJuIHNjaGVtYTtcclxuICB9XHJcblxyXG4gIHNjaGVtYVdpZGdldFRvRm9ybWF0KHdpZGdldDogc3RyaW5nKTogU2NoZW1hRm9ybWF0IHtcclxuICAgIHN3aXRjaCAod2lkZ2V0KSB7XHJcbiAgICAgIGNhc2UgV2lkZ2V0cy5DT1VOVFJZX0NPREU6XHJcbiAgICAgICAgcmV0dXJuIFNjaGVtYUZvcm1hdC5jb3VudHJ5Q29kZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZFJhaWxGb3JtYXQoa2V5OiBzdHJpbmcpOiBTY2hlbWFGb3JtYXQge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSBTY2hlbWFGb3JtYXQuYWRkaXRpb25hbFNlYXRQcmVmZXJlbmNlOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYWRkaXRpb25hbFNlYXRQcmVmZXJlbmNlO1xyXG4gICAgICBjYXNlIFNjaGVtYUZvcm1hdC5zZWF0UHJlZkdyb3VwczpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0LnNlYXRQcmVmR3JvdXBzO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2NoZW1hVHlwZVRvRm9ybWF0KHR5cGU6IFNjaGVtYVR5cGUpOiBTY2hlbWFGb3JtYXQge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuIFNjaGVtYUZvcm1hdC5zdHJpbmc7XHJcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuaW50ZWdlcjtcclxuICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0Lm9iamVjdDtcclxuICAgICAgY2FzZSAnYXJyYXknOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYXJyYXk7XHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBTY2hlbWFGb3JtYXQuYm9vbGVhbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gU2NoZW1hRm9ybWF0LnN0cmluZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVN1cHBsZW10YWxCb29raW5nSW5mb3JtYXRpb24odmFsdWVzOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgfSk6IFN1cHBsZW1lbnRhcnlCb29raW5nSW5mbyB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZTogU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvID0ge1xyXG4gICAgICBiYXNrZXRJdGVtOiB0aGlzLmJhc2tldEl0ZW0uaWQsXHJcbiAgICAgIHVzZXJJbmZvOiBbXSxcclxuICAgICAgc3VwcGxlbWVudGFyeUluZm86IHt9LFxyXG4gICAgICBwYXltZW50TWV0aG9kRGV0YWlsczoge30gYXMgUGF5bWVudE1ldGhvZElucHV0LFxyXG4gICAgICBndWVzdEluZm86IFtdXHJcbiAgICB9O1xyXG4gICAgaWYgKHZhbHVlcy5wZXJJdGVtQWRkcmVzcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG5ld1ZhbHVlLmFkZHJlc3MgPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgIHZhbHVlcy5wZXJJdGVtQWRkcmVzcyxcclxuICAgICAgICBBZGRyZXNzU2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVzLnBlckl0ZW1QaG9uZU51bWJlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG5ld1ZhbHVlLnBob25lTnVtYmVyID0gdGhpcy5oZWxwZXJzLnRvU3RyaW5ncyhcclxuICAgICAgICB2YWx1ZXMucGVySXRlbVBob25lTnVtYmVyLFxyXG4gICAgICAgIFBob25lTnVtYmVyU2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVzLnBlckl0ZW1TdXBwbGVtZW50YXJ5U2NoZW1hICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbmV3VmFsdWUuc3VwcGxlbWVudGFyeUluZm8gPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgIHZhbHVlcy5wZXJJdGVtU3VwcGxlbWVudGFyeVNjaGVtYSxcclxuICAgICAgICB0aGlzLnBlckl0ZW1TdXBwbGVtZW50YXJ5U2NoZW1hXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV3VmFsdWUudXNlckluZm8gPSB0aGlzLnVzZXJJbmZvLm1hcChcclxuICAgICAgKHVzZXJJbmZvOiBVc2VySW5mb0ltcGw8UT4sIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyVmFsdWU6IFVzZXJJbmZvID0geyBpZDogdXNlckluZm8uaWQsIHN1cHBsZW1lbnRhcnlJbmZvOiB7fSB9O1xyXG4gICAgICAgIGNvbnN0IHRoaXNVc2VyU3VwcGxlbWVudGFsID0gdmFsdWVzWyd1c2VyXycgKyBpbmRleF0gfHwge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5hZGRyZXNzID0gdGhpcy5oZWxwZXJzLnRvU3RyaW5ncyhcclxuICAgICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyQWRkcmVzcyxcclxuICAgICAgICAgICAgQWRkcmVzc1NjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5waG9uZU51bWJlciA9IHRoaXMuaGVscGVycy50b1N0cmluZ3MoXHJcbiAgICAgICAgICAgIHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyLFxyXG4gICAgICAgICAgICBQaG9uZU51bWJlclNjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hICE9PVxyXG4gICAgICAgICAgdW5kZWZpbmVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8gPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgICAgICB0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEsXHJcbiAgICAgICAgICAgIHRoaXMucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydCkge1xyXG5cclxuICAgICAgICAgIGlmICh1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZGF0ZU9mRXhwaXJ5Py55ZWFyKSB7XHJcbiAgICAgICAgICAgIHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZFeHBpcnkgPSB0aGlzLmhlbHBlcnMuZm9ybWF0SXNvRGF0ZSh0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZkV4cGlyeSkpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZJc3N1ZT8ueWVhcikge1xyXG4gICAgICAgICAgICB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZGF0ZU9mSXNzdWUgPSB0aGlzLmhlbHBlcnMuZm9ybWF0SXNvRGF0ZSh0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZklzc3VlKSlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZG9jdW1lbnRJZCAmJiAoXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQubnVtYmVyIHx8IFxyXG4gICAgICAgICAgICAhdXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZkV4cGlyeSB8fCBcclxuICAgICAgICAgICAgIXVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZJc3N1ZSB8fCBcclxuICAgICAgICAgICAgIXVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5jb2RlT2ZJc3N1aW5nU3RhdGUgfHwgXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZ2VuZGVyIHx8IFxyXG4gICAgICAgICAgICAhdXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0Lm5hdGlvbmFsaXR5IClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBkZWxldGUgdXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IFxyXG5cclxuICAgICAgICByZXR1cm4gdXNlclZhbHVlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIG5ld1ZhbHVlLmd1ZXN0SW5mbyA9IHRoaXMuZ3Vlc3RJbmZvLm1hcChcclxuICAgICAgKGd1ZXN0SW5mbzogVXNlckluZm9JbXBsPFE+LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlclZhbHVlOiBVc2VySW5mbyA9IHsgaWQ6IGd1ZXN0SW5mby5pZCwgc3VwcGxlbWVudGFyeUluZm86IHt9IH07XHJcbiAgICAgICAgY29uc3QgdGhpc1VzZXJTdXBwbGVtZW50YWwgPSB2YWx1ZXNbJ2d1ZXN0XycgKyBpbmRleF0gfHwge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5hZGRyZXNzID0gdGhpcy5oZWxwZXJzLnRvU3RyaW5ncyhcclxuICAgICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyQWRkcmVzcyxcclxuICAgICAgICAgICAgQWRkcmVzc1NjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHVzZXJWYWx1ZS5waG9uZU51bWJlciA9IHRoaXMuaGVscGVycy50b1N0cmluZ3MoXHJcbiAgICAgICAgICAgIHRoaXNVc2VyU3VwcGxlbWVudGFsLnBlclBhc3NlbmdlclBob25lTnVtYmVyLFxyXG4gICAgICAgICAgICBQaG9uZU51bWJlclNjaGVtYVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpc1VzZXJTdXBwbGVtZW50YWwucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hICE9PVxyXG4gICAgICAgICAgdW5kZWZpbmVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8gPSB0aGlzLmhlbHBlcnMudG9TdHJpbmdzKFxyXG4gICAgICAgICAgICB0aGlzVXNlclN1cHBsZW1lbnRhbC5wZXJQYXNzZW5nZXJTdXBwbGVtZW50YXJ5Qm9va2luZ0luZm9TY2hlbWEsXHJcbiAgICAgICAgICAgIHRoaXMucGVyUGFzc2VuZ2VyU3VwcGxlbWVudGFyeUJvb2tpbmdJbmZvU2NoZW1hXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydCkge1xyXG5cclxuICAgICAgICAgIGlmICh1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZGF0ZU9mRXhwaXJ5Py55ZWFyKSB7XHJcbiAgICAgICAgICAgIHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZFeHBpcnkgPSB0aGlzLmhlbHBlcnMuZm9ybWF0SXNvRGF0ZSh0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZkV4cGlyeSkpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZJc3N1ZT8ueWVhcikge1xyXG4gICAgICAgICAgICB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZGF0ZU9mSXNzdWUgPSB0aGlzLmhlbHBlcnMuZm9ybWF0SXNvRGF0ZSh0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZklzc3VlKSlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZG9jdW1lbnRJZCAmJiAoXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQubnVtYmVyIHx8IFxyXG4gICAgICAgICAgICAhdXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0LmRhdGVPZkV4cGlyeSB8fCBcclxuICAgICAgICAgICAgIXVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5kYXRlT2ZJc3N1ZSB8fCBcclxuICAgICAgICAgICAgIXVzZXJWYWx1ZS5zdXBwbGVtZW50YXJ5SW5mby5wYXNzcG9ydC5jb2RlT2ZJc3N1aW5nU3RhdGUgfHwgXHJcbiAgICAgICAgICAgICF1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQuZ2VuZGVyIHx8IFxyXG4gICAgICAgICAgICAhdXNlclZhbHVlLnN1cHBsZW1lbnRhcnlJbmZvLnBhc3Nwb3J0Lm5hdGlvbmFsaXR5KVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB1c2VyVmFsdWUuc3VwcGxlbWVudGFyeUluZm8ucGFzc3BvcnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gXHJcblxyXG4gICAgICAgIHJldHVybiB1c2VyVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -9,6 +9,7 @@ UserFavorurite.HideFlightCabinClasses = new UserFavorurite('hideFlightCabinClass
9
9
  UserFavorurite.AlternativeRailItineraryEnabled = new UserFavorurite('alternativeRailItineraryEnabled');
10
10
  UserFavorurite.riskMinimumLevel = new UserFavorurite('riskMinimumLevel');
11
11
  UserFavorurite.ENABLE_CHATBOT = new UserFavorurite('enableChatbot');
12
+ UserFavorurite.LocalCurrency = new UserFavorurite('local_currency');
12
13
  export class Suppliers {
13
14
  constructor(value) {
14
15
  this.value = value;
@@ -16,4 +17,4 @@ export class Suppliers {
16
17
  }
17
18
  Suppliers.non = new Suppliers('non');
18
19
  Suppliers.EVI = new Suppliers('evi');
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mYXZvdXJpdGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy91c2VyLWZhdm91cml0ZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxjQUFjO0lBUXpCLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQzs7QUFQN0IsNkJBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RELDhCQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN4RCxxQ0FBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3RFLDhDQUErQixHQUFHLElBQUksY0FBYyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDeEYsK0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUMxRCw2QkFBYyxHQUFHLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBSzlELE1BQU0sT0FBTyxTQUFTO0lBR3BCLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQzs7QUFGN0IsYUFBRyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLGFBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VyRmF2b3J1cml0ZSB7XHJcbiAgc3RhdGljIE1heEZsaWdodENsYXNzID0gbmV3IFVzZXJGYXZvcnVyaXRlKCdNYXhGbGlnaHRDbGFzcycpO1xyXG4gIHN0YXRpYyBTU09fbm9fcGFzc3dvcmQgPSBuZXcgVXNlckZhdm9ydXJpdGUoJ1NTT19ub19wYXNzd29yZCcpO1xyXG4gIHN0YXRpYyBIaWRlRmxpZ2h0Q2FiaW5DbGFzc2VzID0gbmV3IFVzZXJGYXZvcnVyaXRlKCdoaWRlRmxpZ2h0Q2FiaW5DbGFzc2VzJyk7XHJcbiAgc3RhdGljIEFsdGVybmF0aXZlUmFpbEl0aW5lcmFyeUVuYWJsZWQgPSBuZXcgVXNlckZhdm9ydXJpdGUoJ2FsdGVybmF0aXZlUmFpbEl0aW5lcmFyeUVuYWJsZWQnKTtcclxuICBzdGF0aWMgcmlza01pbmltdW1MZXZlbCA9IG5ldyBVc2VyRmF2b3J1cml0ZSgncmlza01pbmltdW1MZXZlbCcpO1xyXG4gIHN0YXRpYyBFTkFCTEVfQ0hBVEJPVCA9IG5ldyBVc2VyRmF2b3J1cml0ZSgnZW5hYmxlQ2hhdGJvdCcpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZykge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFN1cHBsaWVycyB7XHJcbiAgc3RhdGljIG5vbiA9IG5ldyBTdXBwbGllcnMoJ25vbicpO1xyXG4gIHN0YXRpYyBFVkkgPSBuZXcgU3VwcGxpZXJzKCdldmknKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZykge31cclxufVxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mYXZvdXJpdGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy91c2VyLWZhdm91cml0ZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxjQUFjO0lBU3pCLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQzs7QUFSN0IsNkJBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RELDhCQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN4RCxxQ0FBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3RFLDhDQUErQixHQUFHLElBQUksY0FBYyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDeEYsK0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUMxRCw2QkFBYyxHQUFHLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3JELDRCQUFhLEdBQW1CLElBQUksY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFLOUUsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBbUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDOztBQUY3QixhQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsYUFBRyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXJGYXZvcnVyaXRlIHtcclxuICBzdGF0aWMgTWF4RmxpZ2h0Q2xhc3MgPSBuZXcgVXNlckZhdm9ydXJpdGUoJ01heEZsaWdodENsYXNzJyk7XHJcbiAgc3RhdGljIFNTT19ub19wYXNzd29yZCA9IG5ldyBVc2VyRmF2b3J1cml0ZSgnU1NPX25vX3Bhc3N3b3JkJyk7XHJcbiAgc3RhdGljIEhpZGVGbGlnaHRDYWJpbkNsYXNzZXMgPSBuZXcgVXNlckZhdm9ydXJpdGUoJ2hpZGVGbGlnaHRDYWJpbkNsYXNzZXMnKTtcclxuICBzdGF0aWMgQWx0ZXJuYXRpdmVSYWlsSXRpbmVyYXJ5RW5hYmxlZCA9IG5ldyBVc2VyRmF2b3J1cml0ZSgnYWx0ZXJuYXRpdmVSYWlsSXRpbmVyYXJ5RW5hYmxlZCcpO1xyXG4gIHN0YXRpYyByaXNrTWluaW11bUxldmVsID0gbmV3IFVzZXJGYXZvcnVyaXRlKCdyaXNrTWluaW11bUxldmVsJyk7XHJcbiAgc3RhdGljIEVOQUJMRV9DSEFUQk9UID0gbmV3IFVzZXJGYXZvcnVyaXRlKCdlbmFibGVDaGF0Ym90Jyk7XHJcbiAgc3RhdGljIExvY2FsQ3VycmVuY3k6IFVzZXJGYXZvcnVyaXRlID0gbmV3IFVzZXJGYXZvcnVyaXRlKCdsb2NhbF9jdXJyZW5jeScpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZykge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFN1cHBsaWVycyB7XHJcbiAgc3RhdGljIG5vbiA9IG5ldyBTdXBwbGllcnMoJ25vbicpO1xyXG4gIHN0YXRpYyBFVkkgPSBuZXcgU3VwcGxpZXJzKCdldmknKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZykge31cclxufVxyXG4iXX0=