@pega/angular-sdk-components 23.1.10 → 24.1.10

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 (192) hide show
  1. package/esm2022/lib/_bridge/angular-pconnect.mjs +18 -6
  2. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +4 -4
  3. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +3 -1
  4. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +1 -1
  5. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +4 -4
  6. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +4 -4
  7. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +4 -4
  8. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +5 -5
  9. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +3 -3
  10. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +9 -6
  11. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +5 -5
  12. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +5 -5
  13. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +5 -5
  14. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +4 -4
  15. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +5 -5
  16. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +5 -5
  17. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +16 -9
  18. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +4 -4
  19. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +4 -4
  20. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +3 -3
  21. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +6 -6
  22. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +5 -7
  23. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +109 -45
  24. package/esm2022/lib/_components/field/currency/currency.component.mjs +34 -17
  25. package/esm2022/lib/_components/field/date/date.component.mjs +6 -6
  26. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +21 -42
  27. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +38 -10
  28. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +7 -12
  29. package/esm2022/lib/_components/field/email/email.component.mjs +5 -5
  30. package/esm2022/lib/_components/field/group/group.component.mjs +9 -6
  31. package/esm2022/lib/_components/field/integer/integer.component.mjs +5 -5
  32. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +3 -3
  33. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +307 -0
  34. package/esm2022/lib/_components/field/multiselect/utils.mjs +187 -0
  35. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +27 -8
  36. package/esm2022/lib/_components/field/phone/phone.component.mjs +5 -5
  37. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +7 -12
  38. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +6 -6
  39. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +7 -6
  40. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +5 -5
  41. package/esm2022/lib/_components/field/text/text.component.mjs +5 -5
  42. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +5 -7
  43. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +5 -5
  44. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +5 -5
  45. package/esm2022/lib/_components/field/time/time.component.mjs +8 -6
  46. package/esm2022/lib/_components/field/url/url.component.mjs +8 -6
  47. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +38 -26
  48. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +18 -0
  49. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +71 -0
  50. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +35 -39
  51. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +1 -1
  52. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +3 -3
  53. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +41 -13
  54. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +3 -3
  55. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +5 -6
  56. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +3 -3
  57. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +36 -40
  58. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +4 -4
  59. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +5 -6
  60. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +10 -13
  61. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +3 -3
  62. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +6 -6
  63. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +11 -7
  64. package/esm2022/lib/_components/infra/reference/reference.component.mjs +5 -5
  65. package/esm2022/lib/_components/infra/region/region.component.mjs +4 -4
  66. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +5 -5
  67. package/esm2022/lib/_components/infra/stages/stages.component.mjs +5 -5
  68. package/esm2022/lib/_components/infra/view/view.component.mjs +6 -6
  69. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +5 -5
  70. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +5 -5
  71. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +38 -9
  72. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +6 -12
  73. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +5 -5
  74. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +6 -8
  75. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +5 -5
  76. package/esm2022/lib/_components/template/details/details.component.mjs +5 -5
  77. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +5 -5
  78. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +5 -5
  79. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +5 -5
  80. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +5 -5
  81. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +5 -5
  82. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +5 -5
  83. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +5 -6
  84. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +4 -4
  85. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +9 -19
  86. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +10 -5
  87. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +4 -4
  88. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +5 -5
  89. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +4 -4
  90. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +1 -1
  91. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +35 -31
  92. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -2
  93. package/esm2022/lib/_components/template/list-view/utils.mjs +1 -1
  94. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +5 -5
  95. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +4 -4
  96. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +4 -4
  97. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +4 -4
  98. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +4 -4
  99. package/esm2022/lib/_components/template/page/page.component.mjs +5 -5
  100. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +5 -5
  101. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +5 -6
  102. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +5 -7
  103. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +2 -2
  104. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +49 -28
  105. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +7 -9
  106. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +4 -4
  107. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +5 -5
  108. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +4 -4
  109. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +4 -4
  110. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +4 -4
  111. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +5 -5
  112. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +4 -4
  113. package/esm2022/lib/_components/template/utils.mjs +1 -1
  114. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +4 -4
  115. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +5 -5
  116. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +8 -6
  117. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +4 -4
  118. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +231 -424
  119. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +6 -7
  120. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +5 -9
  121. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +18 -22
  122. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +6 -6
  123. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +5 -5
  124. package/esm2022/lib/_components/widget/todo/todo.component.mjs +8 -7
  125. package/esm2022/lib/_components/widget/utility/utility.component.mjs +5 -5
  126. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +5 -5
  127. package/esm2022/lib/_helpers/case-utils.mjs +1 -1
  128. package/esm2022/lib/_helpers/currency-utils.mjs +1 -1
  129. package/esm2022/lib/_helpers/event-util.mjs +1 -1
  130. package/esm2022/lib/_helpers/field-group-utils.mjs +1 -1
  131. package/esm2022/lib/_helpers/filter-utils.mjs +1 -1
  132. package/esm2022/lib/_helpers/formatters/boolean.mjs +1 -1
  133. package/esm2022/lib/_helpers/formatters/currency.mjs +2 -2
  134. package/esm2022/lib/_helpers/formatters/date.mjs +1 -1
  135. package/esm2022/lib/_helpers/formatters/format-utils.mjs +3 -3
  136. package/esm2022/lib/_helpers/formatters/index.mjs +1 -1
  137. package/esm2022/lib/_helpers/instructions-utils.mjs +36 -0
  138. package/esm2022/lib/_helpers/tab-utils.mjs +1 -1
  139. package/esm2022/lib/_helpers/template-utils.mjs +4 -4
  140. package/esm2022/lib/_helpers/utils.mjs +6 -6
  141. package/esm2022/lib/_messages/error-messages.service.mjs +3 -3
  142. package/esm2022/lib/_messages/get-login-status.service.mjs +3 -3
  143. package/esm2022/lib/_messages/oauth-response.service.mjs +3 -3
  144. package/esm2022/lib/_messages/progress-spinner.service.mjs +3 -3
  145. package/esm2022/lib/_messages/reset-pconnect.service.mjs +3 -3
  146. package/esm2022/lib/_messages/update-worklist.service.mjs +3 -3
  147. package/esm2022/lib/_services/case.service.mjs +4 -4
  148. package/esm2022/lib/_services/datapage.service.mjs +5 -5
  149. package/esm2022/lib/_services/server-config.service.mjs +3 -3
  150. package/esm2022/public-api.mjs +3 -1
  151. package/fesm2022/pega-angular-sdk-components.mjs +1996 -1429
  152. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  153. package/lib/_bridge/angular-pconnect.d.ts +2 -0
  154. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +2 -0
  155. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +2 -0
  156. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -1
  157. package/lib/_components/field/check-box/check-box.component.d.ts +18 -0
  158. package/lib/_components/field/currency/currency.component.d.ts +7 -5
  159. package/lib/_components/field/date-time/date-time.component.d.ts +1 -1
  160. package/lib/_components/field/decimal/decimal.component.d.ts +9 -1
  161. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
  162. package/lib/_components/field/multiselect/multiselect.component.d.ts +64 -0
  163. package/lib/_components/field/multiselect/utils.d.ts +8 -0
  164. package/lib/_components/field/percentage/percentage.component.d.ts +6 -0
  165. package/lib/_components/field/time/time.component.d.ts +1 -0
  166. package/lib/_components/field/url/url.component.d.ts +1 -0
  167. package/lib/_components/field/user-reference/user-reference.component.d.ts +9 -4
  168. package/lib/_components/infra/Containers/base-components/flow-container-base.component.d.ts +8 -0
  169. package/lib/_components/infra/Containers/base-components/helper.d.ts +1 -0
  170. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +6 -7
  171. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +3 -2
  172. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  173. package/lib/_components/infra/assignment/assignment.component.d.ts +2 -2
  174. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  175. package/lib/_components/infra/navbar/navbar.component.d.ts +2 -0
  176. package/lib/_components/template/case-summary/case-summary.component.d.ts +2 -0
  177. package/lib/_components/template/field-value-list/field-value-list.component.d.ts +2 -1
  178. package/lib/_components/template/list-view/list-view.component.d.ts +8 -4
  179. package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -1
  180. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +2 -0
  181. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +2 -0
  182. package/lib/_components/widget/attachment/attachment.component.d.ts +30 -54
  183. package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -3
  184. package/lib/_components/widget/todo/todo.component.d.ts +4 -3
  185. package/lib/_helpers/common.d.ts +1 -1
  186. package/lib/_helpers/field-group-utils.d.ts +1 -1
  187. package/lib/_helpers/filter-utils.d.ts +1 -1
  188. package/lib/_helpers/formatters/common.d.ts +2 -2
  189. package/lib/_helpers/instructions-utils.d.ts +4 -0
  190. package/lib/doc/KeyReleaseUpdates.md +18 -1
  191. package/package.json +3 -3
  192. package/public-api.d.ts +2 -0
@@ -214,13 +214,25 @@ export class AngularPConnectService {
214
214
  }
215
215
  else {
216
216
  returnObject.compID = theCompID;
217
- returnObject.unsubscribeFn = theUnsub;
217
+ returnObject.unsubscribeFn = () => {
218
+ this.removeFormField(inComp);
219
+ theUnsub();
220
+ };
218
221
  }
219
222
  // initialize this components entry in the componentPropsArr
220
223
  this.componentPropsArr[theCompID] = {};
224
+ this.addFormField(inComp);
221
225
  // return object with compID and unsubscribe...
222
226
  return returnObject;
223
227
  }
228
+ addFormField(inComp) {
229
+ inComp.pConn$?.addFormField();
230
+ }
231
+ removeFormField(inComp) {
232
+ if (inComp.pConn$?.removeFormField) {
233
+ inComp.pConn$?.removeFormField();
234
+ }
235
+ }
224
236
  // Returns true if the component's entry in ___componentPropsArr___ is
225
237
  // the same as the inCompProps passed in.
226
238
  // As a side effect, update the component's entry in componentPropsArr
@@ -404,13 +416,13 @@ export class AngularPConnectService {
404
416
  inComp.pConn$.setAction('onBlur', this.eventHandler.bind(this));
405
417
  }
406
418
  }
407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularPConnectService, deps: [{ token: i1.ProgressSpinnerService }, { token: i2.ErrorMessagesService }, { token: i3.Utils }], target: i0.ɵɵFactoryTarget.Injectable }); }
408
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularPConnectService, providedIn: 'root' }); }
419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AngularPConnectService, deps: [{ token: i1.ProgressSpinnerService }, { token: i2.ErrorMessagesService }, { token: i3.Utils }], target: i0.ɵɵFactoryTarget.Injectable }); }
420
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AngularPConnectService, providedIn: 'root' }); }
409
421
  }
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularPConnectService, decorators: [{
422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AngularPConnectService, decorators: [{
411
423
  type: Injectable,
412
424
  args: [{
413
425
  providedIn: 'root'
414
426
  }]
415
- }], ctorParameters: function () { return [{ type: i1.ProgressSpinnerService }, { type: i2.ErrorMessagesService }, { type: i3.Utils }]; } });
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBR3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFlMUMsTUFBTSxPQUFPLHNCQUFzQjtJQW1CakMsNENBQTRDO2FBQzdCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFFaEMsWUFDVSxTQUFpQyxFQUNqQyxTQUErQixFQUMvQixLQUFZO1FBRlosY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDL0IsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXhCdEI7O1dBRUc7UUFDSyxhQUFRLEdBQVEsSUFBSSxDQUFDO1FBRTdCOztXQUVHO1FBQ0ssdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRS9COzs7OztXQUtHO1FBQ0ssc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBVXZDLHlEQUF5RDtRQUN6RCw0REFBNEQ7UUFDNUQsb0RBQW9EO1FBQ3BELGtEQUFrRDtRQUNsRCwrQ0FBK0M7UUFDL0MsS0FBSyxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFELDZEQUE2RDtRQUM3RCwrQkFBK0I7UUFDL0IsK0RBQStEO1FBQy9ELFdBQVc7UUFDWCxrRUFBa0U7UUFDbEUsSUFBSTtJQUNOLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxD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LENBQUM7U0FDeEU7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsNERBQTREO0lBQzVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxNQUFNO1FBQzNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELFFBQVEsb0JBQW9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3SCxPQUFPO1NBQ1I7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDOytHQS9jVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uL19tZXNzYWdlcy9lcnJvci1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vX2hlbHBlcnMvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJQQ29ubmVjdERhdGEge1xuICBjb21wSUQ/OiBzdHJpbmc7XG4gIHVuc3Vic2NyaWJlRm4/OiBGdW5jdGlvbjtcbiAgdmFsaWRhdGVNZXNzYWdlPzogc3RyaW5nO1xuICBhY3Rpb25zPzoge1xuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBvbkJsdXI6IEZ1bmN0aW9uO1xuICB9O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIExvY2FsIHZhcmlhYmxlIGZvciBhY2Nlc3MgdG8gdGhlIHN0b3JlIG9uY2UgdGhlIHNlcnZpY2UgaXMgY29ubmVjdGVkIHRvIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSB0aGVTdG9yZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogTG9jYWwgdmFyaWFibGUgdXNlZCB0byBjb21wdXRlIHRoZSBuZXh0IGNvbXBvbmVudElEXG4gICAqL1xuICBwcml2YXRlIGNvdW50ZXJDb21wb25lbnRJRCA9IDA7XG5cbiAgLyoqXG4gICAqIExvY2FsIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhlIGFzc29jaWF0aW9uIG9mIGFuIGNvbXBvbmVudCB0byBpdHMgbW9zdCByZWNlbnQgXCJwcm9wc1wiXG4gICAqICB3aGVyZSBcInByb3BzXCIgaXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBjb21wb25lbnQncyBnZXRDb25maWdQcm9wcyBhbG9uZyB3aXRoXG4gICAqIGFueXRoaW5nIGFkZGVkIGJ5IHBvcHVsYXRlQWRkaXRpb25hbFByb3BzLlxuICAgKiBFYWNoIGVudHJ5IGlzOiB7IF9fY29tcG9uZW50SURfXzogX3RoZSBjb21wb25lbnQncyBtb3N0IHJlY2VudCBwcm9wc18gfVxuICAgKi9cbiAgcHJpdmF0ZSBjb21wb25lbnRQcm9wc0FycjogT2JqZWN0W10gPSBbXTtcblxuICAvKiBVc2VkIHRvIHRvZ2dsZSBzb21lIGNsYXNzLXdpZGUgbG9nZ2luZyAqL1xuICBwcml2YXRlIHN0YXRpYyBiTG9nZ2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXJTZXJ2aWNlOiBFcnJvck1lc3NhZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHtcbiAgICAvLyBFc3RhYmxpc2ggbmVjZXNzYXJ5IG92ZXJyaWRlIGZsYWdzIGZvciBvdXIgdXNlIG9mIENvcmVcbiAgICAvLyBjb25zdCBjb3JlT3ZlcnJpZGVzID0geyBcImR5bmFtaWNMb2FkQ29tcG9uZW50c1wiOiBmYWxzZSB9O1xuICAgIC8vIGxldCBjb3JlT3ZlcnJpZGVzID0gUENvcmUuZ2V0QmVoYXZpb3JPdmVycmlkZXMoKTtcbiAgICAvLyBjb3JlT3ZlcnJpZGVzW1wiZHluYW1pY0xvYWRDb21wb25lbnRzXCJdID0gZmFsc2U7XG4gICAgLy8gUENvcmUuc2V0QmVoYXZpb3JPdmVycmlkZXMoIGNvcmVPdmVycmlkZXMgKTtcbiAgICBQQ29yZS5zZXRCZWhhdmlvck92ZXJyaWRlKCdkeW5hbWljTG9hZENvbXBvbmVudHMnLCBmYWxzZSk7XG5cbiAgICAvLyBBbHdheXMgYmVzdCB0byB1c2UgZGVlcCBvYmplY3QgY29tcGFyZSB3aGVuIGl0J3MgYXZhaWxhYmxlXG4gICAgLy8gaWYgKGlzRXF1YWwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBBbmd1bGFyUENvbm5lY3QgaXMgdXNpbmcgZGVlcCBvYmplY3QgY29tcGFyZWApO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gY29uc29sZS5sb2coYEFuZ3VsYXJQQ29ubmVjdCBpcyB1c2luZyBKU09OLnN0cmluZ2lmeSBjb21wYXJlYCk7XG4gICAgLy8gfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSB1bmlxdWUgKGZvciB0aGlzIHNlc3Npb24pIENvbXBvbmVudElEIHRoYXQgc2hvdWxkXG4gICAqIGJlIHVzZWQgZm9yIHRoYXQgY29tcG9uZW50IHRvIHVwZGF0ZSBpdHMgbW9zdCByZWNlbnQgcHJvcHNcbiAgICogKHdoaWNoIGNhbiBhbHNvIGJlIGNvbXBhcmVkIGFnYWluc3QgaXRzIHByZXZpb3VzIHZhbHVlXG4gICAqIGJlZm9yZSB1cGRhdGluZykuIE5vdGUgdGhhdCB0aGlzIHJldHVybnMgYSBzdHJpbmcgc28gd2UgY2FuIHVzZVxuICAgKiBpdCBhcyBhIGtleSBpbiBhbiBhc3NvY2lhdGl2ZSBhcnJheVxuICAgKiBAcmV0dXJucyB0aGUgbmV4dCBjb21wb25lbnRJRFxuICAgKi9cbiAgcHJpdmF0ZSBnZXROZXh0Q29tcG9uZW50SWQoKTogc3RyaW5nIHtcbiAgICB0aGlzLmNvdW50ZXJDb21wb25lbnRJRCArPSAxO1xuICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIHN0cmluZyB2ZXJzaW9uIG9mIHRoZSBudW1iZXIgc28gd2UgaGF2ZSBhblxuICAgIC8vICBhc3NvY2lhdGl2ZSBhcnJheSB0aGF0IHdlIGNhbiBjbGVhbiB1cCBsYXRlciwgaWYgbmVlZGVkLlxuICAgIHJldHVybiB0aGlzLmNvdW50ZXJDb21wb25lbnRJRC50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDYWxsaW5nIG9iamVjdCAoaW5Db21wKSBzdWJzY3JpYmVzIHRvIHN0b3JlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbkNvbXAgVGhlIGNvbXBvbmVudCB0aGF0J3Mgc3Vic2NyaWJpbmcgdG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBpbkNhbGxiYWNrIFRoZSBjb21wb25lbnQncyBjYWxsYmFjayBmdW5jdGlvbiAodHlwaWNhbGx5IGNhbGxlZCBvblN0YXRlQ2hhbmdlKSB0aGF0IHdpbGxcbiAgICogYmUgY2FsbGVkIHdoZW4gdGhlIHN0b3JlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSAqKnVuc3Vic2NyaWJlKiogZnVuY3Rpb24gdGhhdCBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBuZWVkc1xuICAgKiB0byB1bnN1YnNjcmliZSBmcm9tIHRoZSBzdG9yZS4gKFR5cGljYWxseSBkdXJpbmcgbmdPbkRlc3Ryb3kpXG4gICAqL1xuICBwcml2YXRlIHN1YnNjcmliZVRvU3RvcmUoaW5Db21wOiBhbnkgPSBudWxsLCBpbkNhbGxiYWNrOiBGdW5jdGlvbiB8IG51bGwgPSBudWxsKTogRnVuY3Rpb24ge1xuICAgIC8vIGNvbnN0IHRoZUNvbXBOYW1lOiBzdHJpbmcgPSBpbkNvbXAgPyBgJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gIDogJ25vIGNvbXBvbmVudCBwcm92aWRlZCc7XG4gICAgbGV0IGZuVW5zdWJzY3JpYmU7XG4gICAgLy8gY29uc29sZS5sb2coIGBCcmlkZ2Ugc3Vic2NyaWJpbmc6ICR7dGhlQ29tcE5hbWV9IGApO1xuICAgIGlmIChpbkNvbXApIHtcbiAgICAgIGZuVW5zdWJzY3JpYmUgPSB0aGlzLmdldFN0b3JlKCkuc3Vic2NyaWJlKGluQ2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gZm5VbnN1YnNjcmliZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBDb21wb25lbnQncyBwcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgKGEpIHRvIHBvcHVsYXRlIGNvbXBvbmVudFByb3BzQXJyXG4gIC8vICBhbmQgKGIpIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnRpZXMgYXJlIGJlaW5nIG9idGFpbmVkXG4gICAqL1xuICBwcml2YXRlIGdldENvbXBvbmVudFByb3BzKGluQ29tcDogYW55ID0gbnVsbCk6IE9iamVjdCB7XG4gICAgbGV0IGNvbXBQcm9wczogYW55ID0ge307XG4gICAgbGV0IGFkZFByb3BzID0ge307XG5cbiAgICBpZiAoaW5Db21wID09PSBudWxsKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGdldENvbXBvbmVudFByb3BzIGNhbGxlZCB3aXRoIGJhZCBjb21wb25lbnQ6ICR7aW5Db21wfWApO1xuICAgIH1cblxuICAgIC8vIGlmICgoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiRmxvd0NvbnRhaW5lckNvbXBvbmVudFwiKSB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiVmlld0NvbnRhaW5lckNvbXBvbmVudFwiKVxuICAgIC8vICAgICB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiVmlld0NvbXBvbmVudFwiKSB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiRGVmZXJMb2FkQ29tcG9uZW50XCIpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyhgLS0+IEFuZ3VsYXJQQ29ubmVjdCBnZXRDb21wb25lbnRQcm9wczogJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICAvLyB9XG5cbiAgICBpZiAoaW5Db21wLmFkZGl0aW9uYWxQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGluQ29tcC5hZGRpdGlvbmFsUHJvcHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGFkZFByb3BzID0gaW5Db21wLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHMoaW5Db21wLmFkZGl0aW9uYWxQcm9wcyk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbkNvbXAuYWRkaXRpb25hbFByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHByb3BzVG9BZGQgPSBpbkNvbXAuYWRkaXRpb25hbFByb3BzKFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKSwgaW5Db21wLnBDb25uJCk7XG4gICAgICAgIGFkZFByb3BzID0gaW5Db21wLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHMocHJvcHNUb0FkZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcFByb3BzID0gaW5Db21wLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuXG4gICAgLy8gY29uc3QgY29tcG9uZW50TmFtZSA9IGluQ29tcC5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBjb21tZW50IGlzIGZyb20gdGhlIE5lYnVsYS9Db25zdGVsbGF0aW9uIHZlcnNpb24gb2YgdGhpcyBjb2RlLiBNZWFudCBhcyBhIHJlbWluZGVyIHRvIGNoZWNrIHRoaXMgb2NjYXNpb25hbGx5XG4gICAgLy8gcG9wdWxhdGUgYWRkaXRpb25hbCBwcm9wcyB3aGljaCBhcmUgY29tcG9uZW50IHNwZWNpZmljIGFuZCBub3QgcHJlc2VudCBpbiBjb25maWd1cmF0aW9uc1xuICAgIC8vIFRoaXMgYmxvY2sgY2FuIGJlIHJlbW92ZWQgb25jZSBhbGwgdGhlc2UgcHJvcHMgd2lsbCBiZSBhZGRlZCBhcyBwYXJ0IG9mIGNvbmZpZ3NcbiAgICBpbkNvbXAucENvbm4kLnBvcHVsYXRlQWRkaXRpb25hbFByb3BzKGNvbXBQcm9wcyk7XG5cbiAgICBjb21wUHJvcHMgPSBpbkNvbXAucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyhjb21wUHJvcHMpO1xuXG4gICAgaWYgKGNvbXBQcm9wcyAmJiB1bmRlZmluZWQgIT09IGNvbXBQcm9wcy52YWxpZGF0ZW1lc3NhZ2UgJiYgY29tcFByb3BzLnZhbGlkYXRlbWVzc2FnZSAhPSAnJykge1xuICAgICAgLy8gY29uc29sZS5sb2coIGAgICB2YWxpZGF0ZW1lc3NhZ2UgZm9yICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9ICR7aW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEuY29tcElEfTogJHtjb21wUHJvcHMudmFsaWRhdGVtZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb21wUHJvcHMsXG4gICAgICAuLi5hZGRQcm9wc1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdW5pcXVlIGlkIGZvciBnaXZlbiBjb21wb25lbnQgY3JlYXRlZCB3aGVuIHJlZ2lzdGVyaW5nXG4gICAqIE90aGVyd2lzZSwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnR5IGlzIGJlaW5nIHJlcXVlc3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXRDb21wb25lbnRJRChpbkNvbXApOiBzdHJpbmcge1xuICAgIHJldHVybiBpbkNvbXAuYnJpZGdlQ29tcG9uZW50SUQgfHwgaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEuY29tcElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHJlcXVlc3RlZCBwcm9wZXJ0eSBmb3IgdGhlIGNvbXBvbmVudCBpZiBpdCBleGlzdHMuXG4gICAqIE90aGVyd2lzZSwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnR5IGlzIGJlaW5nIHJlcXVlc3RlZC5cbiAgICogQHBhcmFtIGluUHJvcCBUaGUgcHJvcGVydHkgYmVpbmcgcmVxdWVzdGVkLlxuICAgKi9cbiAgcHVibGljIGdldENvbXBvbmVudFByb3AoaW5Db21wOiBhbnkgPSBudWxsLCBpblByb3AgPSAnJykge1xuICAgIGlmIChpbkNvbXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogZ2V0Q29tcG9uZW50UHJvcCBjYWxsZWQgd2l0aCBiYWQgY29tcG9uZW50OiAke2luQ29tcH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wSUQgPSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YS5jb21wSUQ7XG5cbiAgICAvLyBMb29rIHVwIHByb3BlcnR5IGluIHRoZSBjb21wb25lbnQncyBlbnRyeSBpbiBjb21wb25lbnRQcm9wQXJyYXkgKHdoaWNoIHNob3VsZCBoYXZlIHRoZSBtb3N0IHJlY2VudCB2YWx1ZSlcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wc0Fycltjb21wSURdW2luUHJvcF07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgY29tcGxldGUgc2V0IG9mIHJlc29sdmVkIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoXG4gICAqIHRoaXMgY29tcG9uZW50LlxuICAgKiBUaGlzIGlzIHRoZSBmdWxsIHNldCBvZiBwcm9wZXJ0aWVzIHRoYXQgYXJlIHRyYWNrZWQgaW4gUmVkdXggZm9yIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRDb21wbGV0ZVByb3BzKGluQ29tcDogYW55ID0gbnVsbCkge1xuICAgIGlmIChpbkNvbXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogZ2V0Q3VycmVudENvbXBsZXRlUHJvcHMgY2FsbGVkIHdpdGggYmFkIGNvbXBvbmVudDogJHtpbkNvbXB9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BzQXJyW2luQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLmNvbXBJRF07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21wb25lbnQgYW5kIGl0cyBjYWxsYmFjayBmdW5jdGlvbi4gV2hlbiBhIGNvbXBvbmVudCBjYWxscyB0aGlzIG1ldGhvZFxuICAgKiAodHlwaWNhbGx5IGZyb20gaXRzIG5nT25Jbml0KSwgdGhlIGNvbXBvbmVudCBpcyBnaXZlbiBhIHVuaXF1ZSBjb21wb25lbnRJRCAoZm9yIHRoaXMgc2Vzc2lvbilcbiAgICogYW5kIHN1YnNjcmliZXMgdGhlIGNvbXBvbmVudCB0byB0aGUgc3RvcmUuIEFzIGEgc2lkZSBlZmZlY3QsIGl0IGFsc28gYXNzaWducyB0aGUgY29tcG9uZW50J3NcbiAgICogYWN0aW9ucyAoZnJvbSBpdHMgbWV0YWRhdGEpIHRvIHRoZSBjb21wb25lbnQncyBfX19hY3Rpb25zX19fIGFuZCBiaW5kcyB0aGUgY29tcG9uZW50J3MgY2FsbGJhY2tcbiAgICogKHBhc3NlZCBpbiBhcyBfX19pbkNhbGxiYWNrX19fKSB0byB0aGUgY29tcG9uZW50LiBJZiBhIHByb2JsZW0gaXMgZW5jb3VudGVyZWQsIGFuIGVtcHR5IG9iamVjdCxcbiAgICoge30sIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0gaW5Db21wIFRoZSBjb21wb25lbnQgYmVpbmcgcmVnaXN0ZXJlZCBhbmQgc3Vic2NyaWJlZFxuICAgKiBAcGFyYW0gaW5DYWxsYmFjayBUaGUgY29tcG9uZW50J3MgY2FsbGJhY2sgZnVuY3Rpb24gKHR5cGljYWxseSBjYWxsZWQgb25TdGF0ZUNoYW5nZSkgdGhhdFxuICAgKiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgc3RhdGUgY2hhbmdlcy5cbiAgICogQHJldHVybnMgQSBKU09OIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czpcbiAgICogY29tcElEOiB0aGUgdW5pcXVlIElEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCxcbiAgICogdW5zdWJzY3JpYmVGbjogdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgbmVlZHMgdG8gdW5zdWJzY3JpYmUgZnJvbSB0aGUgc3RvcmUsXG4gICAqIHZhbGlkYXRlTWVzc2FnZTogYW55IHZhbGlkYXRpb24vZXJyb3IgbWVzc2FnZSB0aGF0IGdldHMgZ2VuZXJhdGVkIGZvciB0aGlzIG9iamVjdCxcbiAgICogYWN0aW9uczogYW55IGFjdGlvbnMgdGhhdCBhcmUgZGVmaW5lZCBmb3IgdGhpcyBvYmplY3RcbiAgICovXG4gIHJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KGluQ29tcCwgaW5DYWxsYmFjazogRnVuY3Rpb24gfCBudWxsID0gbnVsbCk6IEFuZ3VsYXJQQ29ubmVjdERhdGEge1xuICAgIC8vIENyZWF0ZSBhbiBpbml0aWFsIG9iamVjdCB0byBiZSByZXR1cm5lZC5cbiAgICBjb25zdCByZXR1cm5PYmplY3Q6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7XG4gICAgICBjb21wSUQ6ICcnLFxuICAgICAgdW5zdWJzY3JpYmVGbjogdW5kZWZpbmVkLFxuICAgICAgdmFsaWRhdGVNZXNzYWdlOiAnJyxcbiAgICAgIGFjdGlvbnM6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBpZiAoaW5Db21wID09PSBudWxsIHx8IGluQ2FsbGJhY2sgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmU6IGluQ29tcDogJHtpbkNvbXB9IGluQ2FsbGJhY2s6ICR7aW5DYWxsYmFja31gKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcFR5cGUgPSBpbkNvbXAuY29uc3RydWN0b3IubmFtZTtcblxuICAgIGlmIChBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLmJMb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgcmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQ6ICR7Y29tcFR5cGV9YCk7XG4gICAgfVxuXG4gICAgaWYgKHVuZGVmaW5lZCAhPT0gaW5Db21wLmJyaWRnZUNvbXBvbmVudElEKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBPTEQgU0NIT09MOiAke2NvbXBUeXBlfWApO1xuICAgIH1cblxuICAgIGlmICh1bmRlZmluZWQgPT09IGluQ29tcC5hY3Rpb25zICYmIHVuZGVmaW5lZCA9PT0gaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmUgZnJvbSAke2NvbXBUeXBlfTogYWN0aW9ucyBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuICAgIGlmICh1bmRlZmluZWQgPT09IGluQ29tcC5icmlkZ2VDb21wb25lbnRJRCAmJiB1bmRlZmluZWQgPT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byByZWdpc3RlckFuZFN1YnNjcmliZSBmcm9tICR7Y29tcFR5cGV9OiBicmlkZ2VDb21wb25lbnRJRCBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgICB9XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wLnVuc3Vic2NyaWJlU3RvcmUgJiYgdW5kZWZpbmVkID09PSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmUgZnJvbSAke2NvbXBUeXBlfTogdW5zdWJzY3JpYmVTdG9yZSBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgICB9XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wLnZhbGlkYXRlTWVzc2FnZSAmJiB1bmRlZmluZWQgPT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIHJlZ2lzdGVyQW5kU3Vic2NyaWJlIGZyb20gJHtjb21wVHlwZX06IHZhbGlkYXRlTWVzc2FnZSBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuXG4gICAgLy8gY2FsbCBwcm9jZXNzQWN0aW9ucyB0byBwb3B1bGF0ZSBtZXRhZGF0YSB3aXRoIGFjdGlvbnMgYXMgaW4gUENvbm5lY3RIT1IgaW5pdGlhbGl6ZVxuICAgIHRoaXMucHJvY2Vzc0FjdGlvbnMoaW5Db21wKTtcbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAuYWN0aW9ucykge1xuICAgICAgcmV0dXJuT2JqZWN0LmFjdGlvbnMgPSBpbkNvbXAucENvbm4kLmdldEFjdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5Db21wLmFjdGlvbnMgPSBpbkNvbXAucENvbm4kLmdldEFjdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyBiaW5kIHRoZSBwcm92aWRlZCBjYWxsYmFjayB0byB0aGUgY29tcG9uZW50IGl0J3MgYXNzb2NpYXRlZCB3aXRoXG4gICAgaW5DYWxsYmFjayA9IGluQ2FsbGJhY2suYmluZChpbkNvbXApO1xuXG4gICAgLy8gTm93IHByb2NlZWQgdG8gcmVnaXN0ZXIgYW5kIHN1YnNjcmliZS4uLlxuICAgIGNvbnN0IHRoZUNvbXBJRDogc3RyaW5nID0gdGhpcy5nZXROZXh0Q29tcG9uZW50SWQoKTtcbiAgICBjb25zdCB0aGVVbnN1YjogRnVuY3Rpb24gfCBudWxsID0gdGhpcy5zdWJzY3JpYmVUb1N0b3JlKGluQ29tcCwgaW5DYWxsYmFjayk7XG5cbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YSkge1xuICAgICAgaW5Db21wLmJyaWRnZUNvbXBvbmVudElEID0gdGhlQ29tcElEO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5PYmplY3QuY29tcElEID0gdGhlQ29tcElEO1xuICAgICAgcmV0dXJuT2JqZWN0LnVuc3Vic2NyaWJlRm4gPSB0aGVVbnN1YjtcbiAgICB9XG5cbiAgICAvLyBpbml0aWFsaXplIHRoaXMgY29tcG9uZW50cyBlbnRyeSBpbiB0aGUgY29tcG9uZW50UHJvcHNBcnJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BzQXJyW3RoZUNvbXBJRF0gPSB7fTtcblxuICAgIC8vIHJldHVybiBvYmplY3Qgd2l0aCBjb21wSUQgYW5kIHVuc3Vic2NyaWJlLi4uXG4gICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgfVxuXG4gIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29tcG9uZW50J3MgZW50cnkgaW4gX19fY29tcG9uZW50UHJvcHNBcnJfX18gaXNcbiAgLy8gIHRoZSBzYW1lIGFzIHRoZSBpbkNvbXBQcm9wcyBwYXNzZWQgaW4uXG4gIC8vICBBcyBhIHNpZGUgZWZmZWN0LCB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIGVudHJ5IGluIGNvbXBvbmVudFByb3BzQXJyXG4gIC8vICBOT1RFOiBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlIGluY29taW5nIGNvbXBvbmVudCBoYXMgdGhlIGZvbGxvd2luZzpcbiAgLy8gICogYSBicmlkZ2VDb21wb25lbnRJRCA8c3RyaW5nPiBwcm9wZXJ0eSAtIHVzZWQgYXMgbG9va3VwIGtleSBpbiBjb21wb25lbnRQcm9wc0FyclxuICAvLyAgKiBhIHBDb25uJCA8Pz4gcHJvcGVydHkgLSB1c2VkIHRvIGFjY2VzcyBmdW5jdGlvbnMgYWNjZXNzZWQgaW4gZ2V0Q29tcG9uZW50UHJvcHNcbiAgLy8gUmV0dXJuIHRydWU6IG1lYW5zIHRoZSBjb21wb25lbnQgcHJvcHMgYXJlIGRpZmZlcmVudCBhbmQgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAvLyBSZXR1cm4gZmFsc2U6IG1lYW5zIHRoZSBjb21wb25lbnQgcHJvcHMgYXJlIHRoZSBzYW1lIGFuZCB0aGUgY29tcG9uZW50IGRvZXNuJ3QgbmVlZCB0byB1cGRhdGUgKHJlLXJlbmRlcilcbiAgLy8gIE9uIGJhZCBpbnB1dCwgcmV0dXJuIGZhbHNlO1xuICAvKipcbiAgICogUmV0dXJucyAqKnRydWUqKiBpZiB0aGUgY29tcG9uZW50J3MgZW50cnkgaW4gX19fY29tcG9uZW50UHJvcHNBcnJfX18gaXNcbiAgICogdGhlIHNhbWUgYXMgdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgY3VycmVudCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbXBvbmVudCAoX19faW5Db21wX19fKSBwYXNzZWQgaW4uXG4gICAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoZSBjb21wb25lbnQncyBlbnRyeSBpbiBfX19jb21wb25lbnRQcm9wc0Fycl9fXyBpcyB1cGRhdGVkLlxuICAgKiAqKk5vdGUqKjogSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBpbmNvbWluZyBjb21wb25lbnQgaGFzIHRoZSBmb2xsb3dpbmc6XG4gICAqIChhKSBhIGJyaWRnZUNvbXBvbmVudElEIF9zdHJpbmdfIHByb3BlcnR5IHVzZWQgYXMgbG9va3VwIGtleSBpbiBfX19jb21wb25lbnRQcm9wc0Fycl9fX1xuICAgKiBhbmQgKGIpIGEgX19fcENvbm4kX19fIHByb3BlcnR5IHVzZWQgdG8gYWNjZXNzIGZ1bmN0aW9ucyBjYWxsZWQgaW4gX19fZ2V0Q29tcG9uZW50UHJvcHNfX19cbiAgICpcbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IGFza2luZyBpZiBpdCBzaG91bGQgdXBkYXRlIGl0c2VsZlxuICAgKiBAcmV0dXJucyBSZXR1cm4gKip0cnVlKio6IG1lYW5zIHRoZSBjb21wb25lbnQgcHJvcHMgYXJlIGRpZmZlcmVudCBhbmQgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKS5cbiAgICogUmV0dXJuICoqZmFsc2UqKjogbWVhbnMgdGhlIGNvbXBvbmVudCBwcm9wcyBhcmUgdGhlIHNhbWUgYW5kIHRoZSBjb21wb25lbnQgZG9lc24ndCBuZWVkIHRvIHVwZGF0ZSAocmUtcmVuZGVyKS5cbiAgICogSWYgdGhlICoqKmluQ29tcCoqKiBpbnB1dCBpcyBiYWQsIGZhbHNlIGlzIGFsc28gcmV0dXJuZWQuXG4gICAqL1xuICBzaG91bGRDb21wb25lbnRVcGRhdGUoaW5Db21wKTogYm9vbGVhbiB7XG4gICAgLy8gY29uc3QgYlNob3dMb2dnaW5nID0gZmFsc2U7XG4gICAgbGV0IGJSZXQgPSBmYWxzZTtcbiAgICAvLyBjaGVjayBmb3IgcmVhc29uYWJsZSBpbnB1dFxuICAgIGlmIChVdGlscy5pc0VtcHR5T2JqZWN0KGluQ29tcCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gc2hvdWxkQ29tcG9uZW50VXBkYXRlOiBpbkNvbXA6ICR7SlNPTi5zdHJpbmdpZnkoaW5Db21wKX1gKTtcbiAgICAgIHJldHVybiBiUmV0O1xuICAgIH1cbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAudmFsaWRhdGVNZXNzYWdlICYmIHVuZGVmaW5lZCA9PT0gaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gc2hvdWxkQ29tcG9uZW50VXBkYXRlOiAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfSBkb2VzIG5vdCBoYXZlIGEgdmFsaWRhdGVNZXNzYWdlIHByb3BlcnR5LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBJRCA9IHRoaXMuZ2V0Q29tcG9uZW50SUQoaW5Db21wKTtcblxuICAgIGNvbnN0IGN1cnJlbnRQcm9wczogYW55ID0gdGhpcy5jb21wb25lbnRQcm9wc0Fycltjb21wSURdO1xuICAgIGNvbnN0IGN1cnJlbnRQcm9wc0FzU3RyOiBzdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXJyZW50UHJvcHMpO1xuXG4gICAgY29uc3QgaW5jb21pbmdQcm9wczogYW55ID0gdGhpcy5nZXRDb21wb25lbnRQcm9wcyhpbkNvbXApO1xuXG4gICAgLy8gaWYgaGF2ZSBwYWdlTWVzc2FnZXMsIGFuZCBpdCBpcyBibGFuaywgcmVtb3ZlIGl0LiAgVGhpcyBjYXVzZXMgaXNzdWVzIG9mIG1ha2luZyBpdCBhcHBlYXJcbiAgICAvLyB0aGF0IGEgd2lsbCBjYXVzZSBhbiB1cGRhdGUsIHdoZW4gdGhlcmUgaXMgbm8gY2hhbmdlXG4gICAgaWYgKHRoaXMuaXNQYWdlTWVzc2FnZXNFbXB0eShpbmNvbWluZ1Byb3BzKSkge1xuICAgICAgaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEucGFnZU1lc3NhZ2VzID0gaW5jb21pbmdQcm9wcy5wYWdlTWVzc2FnZXM7XG4gICAgICBkZWxldGUgaW5jb21pbmdQcm9wcy5wYWdlTWVzc2FnZXM7XG4gICAgfVxuXG4gICAgaWYgKGluY29taW5nUHJvcHMuaHR0cE1lc3NhZ2VzKSB7XG4gICAgICBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YS5odHRwTWVzc2FnZXMgPSBpbmNvbWluZ1Byb3BzLmh0dHBNZXNzYWdlcztcbiAgICAgIGluY29taW5nUHJvcHMuaHR0cE1lc3NhZ2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGluY29taW5nUHJvcHNBc1N0cjogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoaW5jb21pbmdQcm9wcyk7XG5cbiAgICBiUmV0ID0gaXNFcXVhbCA/ICFpc0VxdWFsKGN1cnJlbnRQcm9wcywgaW5jb21pbmdQcm9wcykgOiBjdXJyZW50UHJvcHNBc1N0ciAhPSBpbmNvbWluZ1Byb3BzQXNTdHI7XG5cbiAgICAvLyBCZWxvdyBwaWVjZSBvZiBjb2RlIGlzIG5lZWRlZCB0byByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCBzaW5jZSB3ZSB3YW5uYSBldmFsdWF0ZSB0aGUgVmlzaWJpbGl0eSBleHByZXNzaW9uIHdpdGhpbiBWaWV3IGNvbXBvbmVudCBpbiBzdWNoIGNhc2VzXG4gICAgaWYgKGluQ29tcC5wQ29ubiQubWV0YS5jb25maWcuY29udGV4dD8ubGVuZ3RoID4gMCAmJiBpbkNvbXAucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBOb3cgdXBkYXRlIHRoZSBlbnRyeSBpbiBjb21wb25lbnRQcm9wc0FyciB3aXRoIHRoZSBpbmNvbWluZyB2YWx1ZSBzb1xuICAgIC8vICB3ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IHRoYXQgbmV4dCB0aW1lLi4uXG4gICAgdGhpcy5jb21wb25lbnRQcm9wc0Fycltjb21wSURdID0gaW5jb21pbmdQcm9wcztcbiAgICBjb25zdCB2YWxpZGF0ZW1lc3NhZ2UgPSBpbmNvbWluZ1Byb3BzLnZhbGlkYXRlbWVzc2FnZSA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzLnV0aWxzLmh0bWxEZWNvZGUoaW5jb21pbmdQcm9wcy52YWxpZGF0ZW1lc3NhZ2UpO1xuICAgIC8vIGFuZCB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIHZhbGlkYXRpb24gbWVzc2FnZSAoaWYgdW5kZWZpbmVkLCBpdCBzaG91bGQgYmUgc2V0IHRvIFwiXCIpXG4gICAgaWYgKHVuZGVmaW5lZCAhPT0gaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEpIHtcbiAgICAgIGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA9IHZhbGlkYXRlbWVzc2FnZTtcblxuICAgICAgaWYgKGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgICAvLyBpZiBoYXZlIGEgdmFsaWRhdGUgbWVzc2FnZSwgdHVybiBvZmYgc3Bpbm5lclxuICAgICAgICBjb25zdCB0aW1lciA9IGludGVydmFsKDEwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG5cbiAgICAgICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgc0Vycm9yTWVzc2FnZSA9IGN1cnJlbnRQcm9wcyAmJiBjdXJyZW50UHJvcHMubGFiZWwgPyBjdXJyZW50UHJvcHMubGFiZWwuY29uY2F0KCcgLSAnKSA6ICcnO1xuICAgICAgICBzRXJyb3JNZXNzYWdlID0gc0Vycm9yTWVzc2FnZS5jb25jYXQoaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlKTtcbiAgICAgICAgdGhpcy5lclNlcnZpY2Uuc2VuZE1lc3NhZ2UoJ3VwZGF0ZScsIHNFcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpbkNvbXAudmFsaWRhdGVNZXNzYWdlID0gdmFsaWRhdGVtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmIChiUmV0ICYmIGNvbXBJRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBiUmV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coIGBBbmd1bGFyUENvbm5lY3QgY29tcG9uZW50ICR7Y29tcElEfSAtICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9IC0gc2hvdWxkQ29tcG9uZW50VXBkYXRlOiAke2JSZXR9YCk7XG4gICAgLy8gY29uc29sZS5sb2coXCJjdXJyZW50IHByb3BzOiBcIiArIGN1cnJlbnRQcm9wc0FzU3RyKTtcblxuICAgIGlmIChiUmV0KSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgKioqKiBjaGFuZ2UgZm9yOiAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgLy8gY29uc29sZS5sb2coXCJjdXJyZW50IHByb3BzOiBcIiArIGN1cnJlbnRQcm9wc0FzU3RyKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiaW5jb21pbmcgcHJvcHM6IFwiICsgaW5jb21pbmdQcm9wc0FzU3RyKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGAgICAgJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX06IHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5pbmc6ICR7YlJldH0sIGNvbXBJZDogJHtjb21wSUR9YCApO1xuICAgICAgLy8gY29uc29sZS5sb2coIGAgICAgVXBkYXRpbmcgd2l0aCBjb21wb25lbnRQcm9wcyBmb3IgJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX06ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5jb21wb25lbnRQcm9wc0Fycltjb21wSURdKX1gKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCBgICAgICAgICAgIGFuZCB2YWxpZGF0ZU1lc3NhZ2U6ICR7aW5Db21wLnZhbGlkYXRlTWVzc2FnZX1gKTtcbiAgICB9XG4gICAgLy8gZWxzZSBpZiAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUuaW5kZXhPZihcIlZpZXdcIikgPj0gMCB8fCBpbkNvbXAuY29uc3RydWN0b3IubmFtZS5pbmRleE9mKFwiUm9vdFwiKSA+PSAwKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyhcIm5vIGNoYW5nZVwiKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiY3VycmVudCBwcm9wczogXCIgKyBjdXJyZW50UHJvcHNBc1N0cik7XG4gICAgLy8gICBjb25zb2xlLmxvZyhcImluY29taW5nIHByb3BzOiBcIiArIGluY29taW5nUHJvcHNBc1N0cik7XG4gICAgLy8gICBjb25zb2xlLmxvZyhgICAgICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9OiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuaW5nOiAke2JSZXR9LCBjb21wSWQ6ICR7Y29tcElEfWAgKTtcblxuICAgIC8vIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKGAgICAgJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX06IHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5pbmc6ICR7YlJldH1gKTtcblxuICAgIHJldHVybiBiUmV0O1xuICB9XG5cbiAgaXNQYWdlTWVzc2FnZXNFbXB0eShpbmNvbWluZ1Byb3BzKSB7XG4gICAgcmV0dXJuIGluY29taW5nUHJvcHMucGFnZU1lc3NhZ2VzICYmIGluY29taW5nUHJvcHMucGFnZU1lc3NhZ2VzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW4gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgZW5jb3VudGVyZWQgYSBjaGFuZ2UgZXZlbnRcbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IGNhbGxpbmcgdGhlIGNoYW5nZSBldmVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50XG4gICAqL1xuICBjaGFuZ2VIYW5kbGVyKGluQ29tcCwgZXZlbnQpIHtcbiAgICBjb25zdCBiTG9nZ2luZyA9IGZhbHNlO1xuICAgIGlmIChiTG9nZ2luZykge1xuICAgICAgLy8gY29uc29sZS5sb2coYEFuZ3VsYXJQQ29ubmVjdC5jaGFuZ2VIYW5kbGVyYCk7XG4gICAgfVxuICAgIC8vIGNoZWNrIGZvciByZWFzb25hYmxlIGlucHV0XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wIHx8IFV0aWxzLmlzRW1wdHlPYmplY3QoaW5Db21wKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byBjaGFuZ2VIYW5kbGVyOiBpbkNvbXA6ICR7SlNPTi5zdHJpbmdpZnkoaW5Db21wKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwQ29ubmVjdCA9IGluQ29tcC5wQ29ubiQ7XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gcENvbm5lY3QpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gY2hhbmdlSGFuZGxlcjogaW5Db21wLnBDb25uJDogJHtwQ29ubmVjdH1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjbGVhciBvdXQgZXJyb3JzXG4gICAgdGhpcy5lclNlcnZpY2Uuc2VuZE1lc3NhZ2UoJ2Rpc21pc3MnLCAnJyk7XG5cbiAgICBwQ29ubmVjdC5nZXRBY3Rpb25zQXBpKCkuY2hhbmdlSGFuZGxlcihwQ29ubmVjdCwgZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbiBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGhhcyBlbmNvdW50ZXJlZCBhbiBldmVudCAoc3VjaCBhcyBibHVyKVxuICAgKiBAcGFyYW0gaW5Db21wIFRoZSBjb21wb25lbnQgY2FsbGluZyB0aGUgZXZlbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudFxuICAgKi9cbiAgZXZlbnRIYW5kbGVyKGluQ29tcCwgZXZlbnQpIHtcbiAgICBjb25zdCBiTG9nZ2luZyA9IGZhbHNlO1xuICAgIGlmIChiTG9nZ2luZykge1xuICAgICAgLy8gY29uc29sZS5sb2coYEFuZ3VsYXJQQ29ubmVjdC5ldmVudEhhbmRsZXJgKTtcbiAgICB9XG4gICAgLy8gY2hlY2sgZm9yIHJlYXNvbmFibGUgaW5wdXRcbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAgfHwgVXRpbHMuaXNFbXB0eU9iamVjdChpbkNvbXApKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIGV2ZW50SGFuZGxlcjogaW5Db21wOiAke0pTT04uc3RyaW5naWZ5KGluQ29tcCl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcENvbm5lY3QgPSBpbkNvbXAucENvbm4kO1xuICAgIGlmICh1bmRlZmluZWQgPT09IHBDb25uZWN0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIGV2ZW50SGFuZGxlcjogaW5Db21wLnBDb25uJDogJHtwQ29ubmVjdH1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwQ29ubmVjdC5nZXRBY3Rpb25zQXBpKCkuZXZlbnRIYW5kbGVyKHBDb25uZWN0LCBldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgQSBoYW5kbGUgdG8gdGhlIGFwcGxpY2F0aW9uJ3Mgc3RvcmVcbiAgICovXG4gIGdldFN0b3JlKCkge1xuICAgIGlmICh0aGlzLnRoZVN0b3JlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnRoZVN0b3JlID0gUENvcmUuZ2V0U3RvcmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGhlU3RvcmU7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGJMb2dNc2cgSWYgdHJ1ZSwgd2lsbCB3cml0ZSB0aGUgc3RyaW5naWZpZWQgc3RhdGUgdG8gdGhlIHN0b3JlIGZvciBkZWJ1Z2dpbmcvaW5zcGVjdGlvblxuICAgKiBAcGFyYW0gaW5Db21wIElmIHN1cHBsaWVkLCB0aGUgY29tcG9uZW50IHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgc3RvcmUncyBzdGF0ZVxuICAgKiBAcmV0dXJucyBBIGhhbmRsZSB0byB0aGUgX19zdGF0ZV9fIG9mIGFwcGxpY2F0aW9uJ3Mgc3RvcmVcbiAgICovXG4gIGdldFN0YXRlKGJMb2dNc2c6IGJvb2xlYW4gPSBmYWxzZSwgaW5Db21wOiBhbnkgPSBudWxsKSB7XG4gICAgY29uc3QgdGhlU3RhdGU6IG9iamVjdCA9IHRoaXMuZ2V0U3RvcmUoKS5nZXRTdGF0ZSgpO1xuICAgIGlmIChiTG9nTXNnKSB7XG4gICAgICBjb25zdCB0aGVDb21wTmFtZTogc3RyaW5nID0gaW5Db21wID8gYCR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9OiBgIDogJyc7XG4gICAgICBjb25zb2xlLmxvZyhgJHt0aGVDb21wTmFtZX0gU3RvcmUgc3RhdGU6ICR7SlNPTi5zdHJpbmdpZnkodGhlU3RhdGUpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhlU3RhdGU7XG4gIH1cblxuICAvLyBwcm9jZXNzQWN0aW9ucyAtIGNhcnJpZWQgb3ZlciBmcm9tIFBDb25uZWN0SE9DIGluaXRpYWxpemVcbiAgLyoqXG4gICAqICBwcm9jZXNzQWN0aW9ucyBleHBvc2VzIGFsbCBhY3Rpb25zIGluIHRoZSBtZXRhZGF0YS5cbiAgICogIEF0dGFjaGVzIGNvbW1vbiBoYW5kbGVyIChldmVudEhhbmRsZXIpIGZvciBhbGwgYWN0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc0FjdGlvbnMoaW5Db21wKSB7XG4gICAgY29uc3QgcENvbm5lY3QgPSBpbkNvbXAucENvbm4kO1xuICAgIGlmICh1bmRlZmluZWQgPT09IHBDb25uZWN0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIHByb2Nlc3NBY3Rpb25zOiBwQ29ubiQ6ICR7cENvbm5lY3R9IGZyb20gY29tcG9uZW50OiAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpbkNvbXAucENvbm4kLmlzRWRpdGFibGUoKSkge1xuICAgICAgaW5Db21wLnBDb25uJC5zZXRBY3Rpb24oJ29uQ2hhbmdlJywgdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xuICAgICAgaW5Db21wLnBDb25uJC5zZXRBY3Rpb24oJ29uQmx1cicsIHRoaXMuZXZlbnRIYW5kbGVyLmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxufVxuIl19
427
+ }], ctorParameters: () => [{ type: i1.ProgressSpinnerService }, { type: i2.ErrorMessagesService }, { type: i3.Utils }] });
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBR3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFlMUMsTUFBTSxPQUFPLHNCQUFzQjtJQW1CakMsNENBQTRDO2FBQzdCLGFBQVEsR0FBRyxLQUFLLEFBQVIsQ0FBUztJQUVoQyxZQUNVLFNBQWlDLEVBQ2pDLFNBQStCLEVBQy9CLEtBQVk7UUFGWixjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBeEJ0Qjs7V0FFRztRQUNLLGFBQVEsR0FBUSxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFDSyx1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFFL0I7Ozs7O1dBS0c7UUFDSyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFVdkMseURBQXlEO1FBQ3pELDREQUE0RDtRQUM1RCxvREFBb0Q7UUFDcEQsa0RBQWtEO1FBQ2xELCtDQUErQztRQUMvQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFMUQsNkRBQTZEO1FBQzdELCtCQUErQjtRQUMvQiwrREFBK0Q7UUFDL0QsV0FBVztRQUNYLGtFQUFrRTtRQUNsRSxJQUFJO0lBQ04sQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixJ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QW9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3SCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDOytHQTlkVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uL19tZXNzYWdlcy9lcnJvci1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vX2hlbHBlcnMvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJQQ29ubmVjdERhdGEge1xuICBjb21wSUQ/OiBzdHJpbmc7XG4gIHVuc3Vic2NyaWJlRm4/OiBGdW5jdGlvbjtcbiAgdmFsaWRhdGVNZXNzYWdlPzogc3RyaW5nO1xuICBhY3Rpb25zPzoge1xuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbjtcbiAgICBvbkJsdXI6IEZ1bmN0aW9uO1xuICB9O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIExvY2FsIHZhcmlhYmxlIGZvciBhY2Nlc3MgdG8gdGhlIHN0b3JlIG9uY2UgdGhlIHNlcnZpY2UgaXMgY29ubmVjdGVkIHRvIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSB0aGVTdG9yZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogTG9jYWwgdmFyaWFibGUgdXNlZCB0byBjb21wdXRlIHRoZSBuZXh0IGNvbXBvbmVudElEXG4gICAqL1xuICBwcml2YXRlIGNvdW50ZXJDb21wb25lbnRJRCA9IDA7XG5cbiAgLyoqXG4gICAqIExvY2FsIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhlIGFzc29jaWF0aW9uIG9mIGFuIGNvbXBvbmVudCB0byBpdHMgbW9zdCByZWNlbnQgXCJwcm9wc1wiXG4gICAqICB3aGVyZSBcInByb3BzXCIgaXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBjb21wb25lbnQncyBnZXRDb25maWdQcm9wcyBhbG9uZyB3aXRoXG4gICAqIGFueXRoaW5nIGFkZGVkIGJ5IHBvcHVsYXRlQWRkaXRpb25hbFByb3BzLlxuICAgKiBFYWNoIGVudHJ5IGlzOiB7IF9fY29tcG9uZW50SURfXzogX3RoZSBjb21wb25lbnQncyBtb3N0IHJlY2VudCBwcm9wc18gfVxuICAgKi9cbiAgcHJpdmF0ZSBjb21wb25lbnRQcm9wc0FycjogT2JqZWN0W10gPSBbXTtcblxuICAvKiBVc2VkIHRvIHRvZ2dsZSBzb21lIGNsYXNzLXdpZGUgbG9nZ2luZyAqL1xuICBwcml2YXRlIHN0YXRpYyBiTG9nZ2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXJTZXJ2aWNlOiBFcnJvck1lc3NhZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHtcbiAgICAvLyBFc3RhYmxpc2ggbmVjZXNzYXJ5IG92ZXJyaWRlIGZsYWdzIGZvciBvdXIgdXNlIG9mIENvcmVcbiAgICAvLyBjb25zdCBjb3JlT3ZlcnJpZGVzID0geyBcImR5bmFtaWNMb2FkQ29tcG9uZW50c1wiOiBmYWxzZSB9O1xuICAgIC8vIGxldCBjb3JlT3ZlcnJpZGVzID0gUENvcmUuZ2V0QmVoYXZpb3JPdmVycmlkZXMoKTtcbiAgICAvLyBjb3JlT3ZlcnJpZGVzW1wiZHluYW1pY0xvYWRDb21wb25lbnRzXCJdID0gZmFsc2U7XG4gICAgLy8gUENvcmUuc2V0QmVoYXZpb3JPdmVycmlkZXMoIGNvcmVPdmVycmlkZXMgKTtcbiAgICBQQ29yZS5zZXRCZWhhdmlvck92ZXJyaWRlKCdkeW5hbWljTG9hZENvbXBvbmVudHMnLCBmYWxzZSk7XG5cbiAgICAvLyBBbHdheXMgYmVzdCB0byB1c2UgZGVlcCBvYmplY3QgY29tcGFyZSB3aGVuIGl0J3MgYXZhaWxhYmxlXG4gICAgLy8gaWYgKGlzRXF1YWwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBBbmd1bGFyUENvbm5lY3QgaXMgdXNpbmcgZGVlcCBvYmplY3QgY29tcGFyZWApO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gY29uc29sZS5sb2coYEFuZ3VsYXJQQ29ubmVjdCBpcyB1c2luZyBKU09OLnN0cmluZ2lmeSBjb21wYXJlYCk7XG4gICAgLy8gfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSB1bmlxdWUgKGZvciB0aGlzIHNlc3Npb24pIENvbXBvbmVudElEIHRoYXQgc2hvdWxkXG4gICAqIGJlIHVzZWQgZm9yIHRoYXQgY29tcG9uZW50IHRvIHVwZGF0ZSBpdHMgbW9zdCByZWNlbnQgcHJvcHNcbiAgICogKHdoaWNoIGNhbiBhbHNvIGJlIGNvbXBhcmVkIGFnYWluc3QgaXRzIHByZXZpb3VzIHZhbHVlXG4gICAqIGJlZm9yZSB1cGRhdGluZykuIE5vdGUgdGhhdCB0aGlzIHJldHVybnMgYSBzdHJpbmcgc28gd2UgY2FuIHVzZVxuICAgKiBpdCBhcyBhIGtleSBpbiBhbiBhc3NvY2lhdGl2ZSBhcnJheVxuICAgKiBAcmV0dXJucyB0aGUgbmV4dCBjb21wb25lbnRJRFxuICAgKi9cbiAgcHJpdmF0ZSBnZXROZXh0Q29tcG9uZW50SWQoKTogc3RyaW5nIHtcbiAgICB0aGlzLmNvdW50ZXJDb21wb25lbnRJRCArPSAxO1xuICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIHN0cmluZyB2ZXJzaW9uIG9mIHRoZSBudW1iZXIgc28gd2UgaGF2ZSBhblxuICAgIC8vICBhc3NvY2lhdGl2ZSBhcnJheSB0aGF0IHdlIGNhbiBjbGVhbiB1cCBsYXRlciwgaWYgbmVlZGVkLlxuICAgIHJldHVybiB0aGlzLmNvdW50ZXJDb21wb25lbnRJRC50b1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDYWxsaW5nIG9iamVjdCAoaW5Db21wKSBzdWJzY3JpYmVzIHRvIHN0b3JlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbkNvbXAgVGhlIGNvbXBvbmVudCB0aGF0J3Mgc3Vic2NyaWJpbmcgdG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBpbkNhbGxiYWNrIFRoZSBjb21wb25lbnQncyBjYWxsYmFjayBmdW5jdGlvbiAodHlwaWNhbGx5IGNhbGxlZCBvblN0YXRlQ2hhbmdlKSB0aGF0IHdpbGxcbiAgICogYmUgY2FsbGVkIHdoZW4gdGhlIHN0b3JlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSAqKnVuc3Vic2NyaWJlKiogZnVuY3Rpb24gdGhhdCBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBuZWVkc1xuICAgKiB0byB1bnN1YnNjcmliZSBmcm9tIHRoZSBzdG9yZS4gKFR5cGljYWxseSBkdXJpbmcgbmdPbkRlc3Ryb3kpXG4gICAqL1xuICBwcml2YXRlIHN1YnNjcmliZVRvU3RvcmUoaW5Db21wOiBhbnkgPSBudWxsLCBpbkNhbGxiYWNrOiBGdW5jdGlvbiB8IG51bGwgPSBudWxsKTogRnVuY3Rpb24ge1xuICAgIC8vIGNvbnN0IHRoZUNvbXBOYW1lOiBzdHJpbmcgPSBpbkNvbXAgPyBgJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gIDogJ25vIGNvbXBvbmVudCBwcm92aWRlZCc7XG4gICAgbGV0IGZuVW5zdWJzY3JpYmU7XG4gICAgLy8gY29uc29sZS5sb2coIGBCcmlkZ2Ugc3Vic2NyaWJpbmc6ICR7dGhlQ29tcE5hbWV9IGApO1xuICAgIGlmIChpbkNvbXApIHtcbiAgICAgIGZuVW5zdWJzY3JpYmUgPSB0aGlzLmdldFN0b3JlKCkuc3Vic2NyaWJlKGluQ2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gZm5VbnN1YnNjcmliZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBDb21wb25lbnQncyBwcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgKGEpIHRvIHBvcHVsYXRlIGNvbXBvbmVudFByb3BzQXJyXG4gIC8vICBhbmQgKGIpIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnRpZXMgYXJlIGJlaW5nIG9idGFpbmVkXG4gICAqL1xuICBwcml2YXRlIGdldENvbXBvbmVudFByb3BzKGluQ29tcDogYW55ID0gbnVsbCk6IE9iamVjdCB7XG4gICAgbGV0IGNvbXBQcm9wczogYW55ID0ge307XG4gICAgbGV0IGFkZFByb3BzID0ge307XG5cbiAgICBpZiAoaW5Db21wID09PSBudWxsKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGdldENvbXBvbmVudFByb3BzIGNhbGxlZCB3aXRoIGJhZCBjb21wb25lbnQ6ICR7aW5Db21wfWApO1xuICAgIH1cblxuICAgIC8vIGlmICgoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiRmxvd0NvbnRhaW5lckNvbXBvbmVudFwiKSB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiVmlld0NvbnRhaW5lckNvbXBvbmVudFwiKVxuICAgIC8vICAgICB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiVmlld0NvbXBvbmVudFwiKSB8fCAoaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiRGVmZXJMb2FkQ29tcG9uZW50XCIpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyhgLS0+IEFuZ3VsYXJQQ29ubmVjdCBnZXRDb21wb25lbnRQcm9wczogJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICAvLyB9XG5cbiAgICBpZiAoaW5Db21wLmFkZGl0aW9uYWxQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGluQ29tcC5hZGRpdGlvbmFsUHJvcHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGFkZFByb3BzID0gaW5Db21wLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHMoaW5Db21wLmFkZGl0aW9uYWxQcm9wcyk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbkNvbXAuYWRkaXRpb25hbFByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHByb3BzVG9BZGQgPSBpbkNvbXAuYWRkaXRpb25hbFByb3BzKFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKSwgaW5Db21wLnBDb25uJCk7XG4gICAgICAgIGFkZFByb3BzID0gaW5Db21wLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHMocHJvcHNUb0FkZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcFByb3BzID0gaW5Db21wLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuXG4gICAgLy8gY29uc3QgY29tcG9uZW50TmFtZSA9IGluQ29tcC5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBjb21tZW50IGlzIGZyb20gdGhlIE5lYnVsYS9Db25zdGVsbGF0aW9uIHZlcnNpb24gb2YgdGhpcyBjb2RlLiBNZWFudCBhcyBhIHJlbWluZGVyIHRvIGNoZWNrIHRoaXMgb2NjYXNpb25hbGx5XG4gICAgLy8gcG9wdWxhdGUgYWRkaXRpb25hbCBwcm9wcyB3aGljaCBhcmUgY29tcG9uZW50IHNwZWNpZmljIGFuZCBub3QgcHJlc2VudCBpbiBjb25maWd1cmF0aW9uc1xuICAgIC8vIFRoaXMgYmxvY2sgY2FuIGJlIHJlbW92ZWQgb25jZSBhbGwgdGhlc2UgcHJvcHMgd2lsbCBiZSBhZGRlZCBhcyBwYXJ0IG9mIGNvbmZpZ3NcbiAgICBpbkNvbXAucENvbm4kLnBvcHVsYXRlQWRkaXRpb25hbFByb3BzKGNvbXBQcm9wcyk7XG5cbiAgICBjb21wUHJvcHMgPSBpbkNvbXAucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyhjb21wUHJvcHMpO1xuXG4gICAgaWYgKGNvbXBQcm9wcyAmJiB1bmRlZmluZWQgIT09IGNvbXBQcm9wcy52YWxpZGF0ZW1lc3NhZ2UgJiYgY29tcFByb3BzLnZhbGlkYXRlbWVzc2FnZSAhPSAnJykge1xuICAgICAgLy8gY29uc29sZS5sb2coIGAgICB2YWxpZGF0ZW1lc3NhZ2UgZm9yICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9ICR7aW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEuY29tcElEfTogJHtjb21wUHJvcHMudmFsaWRhdGVtZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb21wUHJvcHMsXG4gICAgICAuLi5hZGRQcm9wc1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdW5pcXVlIGlkIGZvciBnaXZlbiBjb21wb25lbnQgY3JlYXRlZCB3aGVuIHJlZ2lzdGVyaW5nXG4gICAqIE90aGVyd2lzZSwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnR5IGlzIGJlaW5nIHJlcXVlc3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXRDb21wb25lbnRJRChpbkNvbXApOiBzdHJpbmcge1xuICAgIHJldHVybiBpbkNvbXAuYnJpZGdlQ29tcG9uZW50SUQgfHwgaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEuY29tcElEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHJlcXVlc3RlZCBwcm9wZXJ0eSBmb3IgdGhlIGNvbXBvbmVudCBpZiBpdCBleGlzdHMuXG4gICAqIE90aGVyd2lzZSwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IHdob3NlIHByb3BlcnR5IGlzIGJlaW5nIHJlcXVlc3RlZC5cbiAgICogQHBhcmFtIGluUHJvcCBUaGUgcHJvcGVydHkgYmVpbmcgcmVxdWVzdGVkLlxuICAgKi9cbiAgcHVibGljIGdldENvbXBvbmVudFByb3AoaW5Db21wOiBhbnkgPSBudWxsLCBpblByb3AgPSAnJykge1xuICAgIGlmIChpbkNvbXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogZ2V0Q29tcG9uZW50UHJvcCBjYWxsZWQgd2l0aCBiYWQgY29tcG9uZW50OiAke2luQ29tcH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wSUQgPSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YS5jb21wSUQ7XG5cbiAgICAvLyBMb29rIHVwIHByb3BlcnR5IGluIHRoZSBjb21wb25lbnQncyBlbnRyeSBpbiBjb21wb25lbnRQcm9wQXJyYXkgKHdoaWNoIHNob3VsZCBoYXZlIHRoZSBtb3N0IHJlY2VudCB2YWx1ZSlcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wc0Fycltjb21wSURdW2luUHJvcF07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgY29tcGxldGUgc2V0IG9mIHJlc29sdmVkIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoXG4gICAqIHRoaXMgY29tcG9uZW50LlxuICAgKiBUaGlzIGlzIHRoZSBmdWxsIHNldCBvZiBwcm9wZXJ0aWVzIHRoYXQgYXJlIHRyYWNrZWQgaW4gUmVkdXggZm9yIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRDb21wbGV0ZVByb3BzKGluQ29tcDogYW55ID0gbnVsbCkge1xuICAgIGlmIChpbkNvbXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogZ2V0Q3VycmVudENvbXBsZXRlUHJvcHMgY2FsbGVkIHdpdGggYmFkIGNvbXBvbmVudDogJHtpbkNvbXB9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BzQXJyW2luQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLmNvbXBJRF07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21wb25lbnQgYW5kIGl0cyBjYWxsYmFjayBmdW5jdGlvbi4gV2hlbiBhIGNvbXBvbmVudCBjYWxscyB0aGlzIG1ldGhvZFxuICAgKiAodHlwaWNhbGx5IGZyb20gaXRzIG5nT25Jbml0KSwgdGhlIGNvbXBvbmVudCBpcyBnaXZlbiBhIHVuaXF1ZSBjb21wb25lbnRJRCAoZm9yIHRoaXMgc2Vzc2lvbilcbiAgICogYW5kIHN1YnNjcmliZXMgdGhlIGNvbXBvbmVudCB0byB0aGUgc3RvcmUuIEFzIGEgc2lkZSBlZmZlY3QsIGl0IGFsc28gYXNzaWducyB0aGUgY29tcG9uZW50J3NcbiAgICogYWN0aW9ucyAoZnJvbSBpdHMgbWV0YWRhdGEpIHRvIHRoZSBjb21wb25lbnQncyBfX19hY3Rpb25zX19fIGFuZCBiaW5kcyB0aGUgY29tcG9uZW50J3MgY2FsbGJhY2tcbiAgICogKHBhc3NlZCBpbiBhcyBfX19pbkNhbGxiYWNrX19fKSB0byB0aGUgY29tcG9uZW50LiBJZiBhIHByb2JsZW0gaXMgZW5jb3VudGVyZWQsIGFuIGVtcHR5IG9iamVjdCxcbiAgICoge30sIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0gaW5Db21wIFRoZSBjb21wb25lbnQgYmVpbmcgcmVnaXN0ZXJlZCBhbmQgc3Vic2NyaWJlZFxuICAgKiBAcGFyYW0gaW5DYWxsYmFjayBUaGUgY29tcG9uZW50J3MgY2FsbGJhY2sgZnVuY3Rpb24gKHR5cGljYWxseSBjYWxsZWQgb25TdGF0ZUNoYW5nZSkgdGhhdFxuICAgKiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgc3RhdGUgY2hhbmdlcy5cbiAgICogQHJldHVybnMgQSBKU09OIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czpcbiAgICogY29tcElEOiB0aGUgdW5pcXVlIElEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCxcbiAgICogdW5zdWJzY3JpYmVGbjogdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgbmVlZHMgdG8gdW5zdWJzY3JpYmUgZnJvbSB0aGUgc3RvcmUsXG4gICAqIHZhbGlkYXRlTWVzc2FnZTogYW55IHZhbGlkYXRpb24vZXJyb3IgbWVzc2FnZSB0aGF0IGdldHMgZ2VuZXJhdGVkIGZvciB0aGlzIG9iamVjdCxcbiAgICogYWN0aW9uczogYW55IGFjdGlvbnMgdGhhdCBhcmUgZGVmaW5lZCBmb3IgdGhpcyBvYmplY3RcbiAgICovXG4gIHJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KGluQ29tcCwgaW5DYWxsYmFjazogRnVuY3Rpb24gfCBudWxsID0gbnVsbCk6IEFuZ3VsYXJQQ29ubmVjdERhdGEge1xuICAgIC8vIENyZWF0ZSBhbiBpbml0aWFsIG9iamVjdCB0byBiZSByZXR1cm5lZC5cbiAgICBjb25zdCByZXR1cm5PYmplY3Q6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7XG4gICAgICBjb21wSUQ6ICcnLFxuICAgICAgdW5zdWJzY3JpYmVGbjogdW5kZWZpbmVkLFxuICAgICAgdmFsaWRhdGVNZXNzYWdlOiAnJyxcbiAgICAgIGFjdGlvbnM6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBpZiAoaW5Db21wID09PSBudWxsIHx8IGluQ2FsbGJhY2sgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmU6IGluQ29tcDogJHtpbkNvbXB9IGluQ2FsbGJhY2s6ICR7aW5DYWxsYmFja31gKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcFR5cGUgPSBpbkNvbXAuY29uc3RydWN0b3IubmFtZTtcblxuICAgIGlmIChBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLmJMb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgcmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQ6ICR7Y29tcFR5cGV9YCk7XG4gICAgfVxuXG4gICAgaWYgKHVuZGVmaW5lZCAhPT0gaW5Db21wLmJyaWRnZUNvbXBvbmVudElEKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBPTEQgU0NIT09MOiAke2NvbXBUeXBlfWApO1xuICAgIH1cblxuICAgIGlmICh1bmRlZmluZWQgPT09IGluQ29tcC5hY3Rpb25zICYmIHVuZGVmaW5lZCA9PT0gaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmUgZnJvbSAke2NvbXBUeXBlfTogYWN0aW9ucyBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuICAgIGlmICh1bmRlZmluZWQgPT09IGluQ29tcC5icmlkZ2VDb21wb25lbnRJRCAmJiB1bmRlZmluZWQgPT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byByZWdpc3RlckFuZFN1YnNjcmliZSBmcm9tICR7Y29tcFR5cGV9OiBicmlkZ2VDb21wb25lbnRJRCBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgICB9XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wLnVuc3Vic2NyaWJlU3RvcmUgJiYgdW5kZWZpbmVkID09PSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gcmVnaXN0ZXJBbmRTdWJzY3JpYmUgZnJvbSAke2NvbXBUeXBlfTogdW5zdWJzY3JpYmVTdG9yZSBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgICB9XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wLnZhbGlkYXRlTWVzc2FnZSAmJiB1bmRlZmluZWQgPT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIHJlZ2lzdGVyQW5kU3Vic2NyaWJlIGZyb20gJHtjb21wVHlwZX06IHZhbGlkYXRlTWVzc2FnZSBub3QgZGVmaW5lZCBhcyBhIGNsYXNzIHZhcmlhYmxlIGZvciBpbkNvbXBgKTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG4gICAgfVxuXG4gICAgLy8gY2FsbCBwcm9jZXNzQWN0aW9ucyB0byBwb3B1bGF0ZSBtZXRhZGF0YSB3aXRoIGFjdGlvbnMgYXMgaW4gUENvbm5lY3RIT1IgaW5pdGlhbGl6ZVxuICAgIHRoaXMucHJvY2Vzc0FjdGlvbnMoaW5Db21wKTtcbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAuYWN0aW9ucykge1xuICAgICAgcmV0dXJuT2JqZWN0LmFjdGlvbnMgPSBpbkNvbXAucENvbm4kLmdldEFjdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5Db21wLmFjdGlvbnMgPSBpbkNvbXAucENvbm4kLmdldEFjdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyBiaW5kIHRoZSBwcm92aWRlZCBjYWxsYmFjayB0byB0aGUgY29tcG9uZW50IGl0J3MgYXNzb2NpYXRlZCB3aXRoXG4gICAgaW5DYWxsYmFjayA9IGluQ2FsbGJhY2suYmluZChpbkNvbXApO1xuXG4gICAgLy8gTm93IHByb2NlZWQgdG8gcmVnaXN0ZXIgYW5kIHN1YnNjcmliZS4uLlxuICAgIGNvbnN0IHRoZUNvbXBJRDogc3RyaW5nID0gdGhpcy5nZXROZXh0Q29tcG9uZW50SWQoKTtcbiAgICBjb25zdCB0aGVVbnN1YjogRnVuY3Rpb24gfCBudWxsID0gdGhpcy5zdWJzY3JpYmVUb1N0b3JlKGluQ29tcCwgaW5DYWxsYmFjayk7XG5cbiAgICBpZiAodW5kZWZpbmVkID09PSBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YSkge1xuICAgICAgaW5Db21wLmJyaWRnZUNvbXBvbmVudElEID0gdGhlQ29tcElEO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5PYmplY3QuY29tcElEID0gdGhlQ29tcElEO1xuICAgICAgcmV0dXJuT2JqZWN0LnVuc3Vic2NyaWJlRm4gPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZlRm9ybUZpZWxkKGluQ29tcCk7XG4gICAgICAgIHRoZVVuc3ViKCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgdGhpcyBjb21wb25lbnRzIGVudHJ5IGluIHRoZSBjb21wb25lbnRQcm9wc0FyclxuICAgIHRoaXMuY29tcG9uZW50UHJvcHNBcnJbdGhlQ29tcElEXSA9IHt9O1xuXG4gICAgdGhpcy5hZGRGb3JtRmllbGQoaW5Db21wKTtcblxuICAgIC8vIHJldHVybiBvYmplY3Qgd2l0aCBjb21wSUQgYW5kIHVuc3Vic2NyaWJlLi4uXG4gICAgcmV0dXJuIHJldHVybk9iamVjdDtcbiAgfVxuXG4gIGFkZEZvcm1GaWVsZChpbkNvbXApIHtcbiAgICBpbkNvbXAucENvbm4kPy5hZGRGb3JtRmllbGQoKTtcbiAgfVxuXG4gIHJlbW92ZUZvcm1GaWVsZChpbkNvbXApIHtcbiAgICBpZiAoaW5Db21wLnBDb25uJD8ucmVtb3ZlRm9ybUZpZWxkKSB7XG4gICAgICBpbkNvbXAucENvbm4kPy5yZW1vdmVGb3JtRmllbGQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbXBvbmVudCdzIGVudHJ5IGluIF9fX2NvbXBvbmVudFByb3BzQXJyX19fIGlzXG4gIC8vICB0aGUgc2FtZSBhcyB0aGUgaW5Db21wUHJvcHMgcGFzc2VkIGluLlxuICAvLyAgQXMgYSBzaWRlIGVmZmVjdCwgdXBkYXRlIHRoZSBjb21wb25lbnQncyBlbnRyeSBpbiBjb21wb25lbnRQcm9wc0FyclxuICAvLyAgTk9URTogSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBpbmNvbWluZyBjb21wb25lbnQgaGFzIHRoZSBmb2xsb3dpbmc6XG4gIC8vICAqIGEgYnJpZGdlQ29tcG9uZW50SUQgPHN0cmluZz4gcHJvcGVydHkgLSB1c2VkIGFzIGxvb2t1cCBrZXkgaW4gY29tcG9uZW50UHJvcHNBcnJcbiAgLy8gICogYSBwQ29ubiQgPD8+IHByb3BlcnR5IC0gdXNlZCB0byBhY2Nlc3MgZnVuY3Rpb25zIGFjY2Vzc2VkIGluIGdldENvbXBvbmVudFByb3BzXG4gIC8vIFJldHVybiB0cnVlOiBtZWFucyB0aGUgY29tcG9uZW50IHByb3BzIGFyZSBkaWZmZXJlbnQgYW5kIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgLy8gUmV0dXJuIGZhbHNlOiBtZWFucyB0aGUgY29tcG9uZW50IHByb3BzIGFyZSB0aGUgc2FtZSBhbmQgdGhlIGNvbXBvbmVudCBkb2Vzbid0IG5lZWQgdG8gdXBkYXRlIChyZS1yZW5kZXIpXG4gIC8vICBPbiBiYWQgaW5wdXQsIHJldHVybiBmYWxzZTtcbiAgLyoqXG4gICAqIFJldHVybnMgKip0cnVlKiogaWYgdGhlIGNvbXBvbmVudCdzIGVudHJ5IGluIF9fX2NvbXBvbmVudFByb3BzQXJyX19fIGlzXG4gICAqIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGN1cnJlbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wb25lbnQgKF9fX2luQ29tcF9fXykgcGFzc2VkIGluLlxuICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY29tcG9uZW50J3MgZW50cnkgaW4gX19fY29tcG9uZW50UHJvcHNBcnJfX18gaXMgdXBkYXRlZC5cbiAgICogKipOb3RlKio6IEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgaW5jb21pbmcgY29tcG9uZW50IGhhcyB0aGUgZm9sbG93aW5nOlxuICAgKiAoYSkgYSBicmlkZ2VDb21wb25lbnRJRCBfc3RyaW5nXyBwcm9wZXJ0eSB1c2VkIGFzIGxvb2t1cCBrZXkgaW4gX19fY29tcG9uZW50UHJvcHNBcnJfX19cbiAgICogYW5kIChiKSBhIF9fX3BDb25uJF9fXyBwcm9wZXJ0eSB1c2VkIHRvIGFjY2VzcyBmdW5jdGlvbnMgY2FsbGVkIGluIF9fX2dldENvbXBvbmVudFByb3BzX19fXG4gICAqXG4gICAqIEBwYXJhbSBpbkNvbXAgVGhlIGNvbXBvbmVudCBhc2tpbmcgaWYgaXQgc2hvdWxkIHVwZGF0ZSBpdHNlbGZcbiAgICogQHJldHVybnMgUmV0dXJuICoqdHJ1ZSoqOiBtZWFucyB0aGUgY29tcG9uZW50IHByb3BzIGFyZSBkaWZmZXJlbnQgYW5kIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcikuXG4gICAqIFJldHVybiAqKmZhbHNlKio6IG1lYW5zIHRoZSBjb21wb25lbnQgcHJvcHMgYXJlIHRoZSBzYW1lIGFuZCB0aGUgY29tcG9uZW50IGRvZXNuJ3QgbmVlZCB0byB1cGRhdGUgKHJlLXJlbmRlcikuXG4gICAqIElmIHRoZSAqKippbkNvbXAqKiogaW5wdXQgaXMgYmFkLCBmYWxzZSBpcyBhbHNvIHJldHVybmVkLlxuICAgKi9cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKGluQ29tcCk6IGJvb2xlYW4ge1xuICAgIC8vIGNvbnN0IGJTaG93TG9nZ2luZyA9IGZhbHNlO1xuICAgIGxldCBiUmV0ID0gZmFsc2U7XG4gICAgLy8gY2hlY2sgZm9yIHJlYXNvbmFibGUgaW5wdXRcbiAgICBpZiAoVXRpbHMuaXNFbXB0eU9iamVjdChpbkNvbXApKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIHNob3VsZENvbXBvbmVudFVwZGF0ZTogaW5Db21wOiAke0pTT04uc3RyaW5naWZ5KGluQ29tcCl9YCk7XG4gICAgICByZXR1cm4gYlJldDtcbiAgICB9XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wLnZhbGlkYXRlTWVzc2FnZSAmJiB1bmRlZmluZWQgPT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIHNob3VsZENvbXBvbmVudFVwZGF0ZTogJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX0gZG9lcyBub3QgaGF2ZSBhIHZhbGlkYXRlTWVzc2FnZSBwcm9wZXJ0eS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wSUQgPSB0aGlzLmdldENvbXBvbmVudElEKGluQ29tcCk7XG5cbiAgICBjb25zdCBjdXJyZW50UHJvcHM6IGFueSA9IHRoaXMuY29tcG9uZW50UHJvcHNBcnJbY29tcElEXTtcbiAgICBjb25zdCBjdXJyZW50UHJvcHNBc1N0cjogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VycmVudFByb3BzKTtcblxuICAgIGNvbnN0IGluY29taW5nUHJvcHM6IGFueSA9IHRoaXMuZ2V0Q29tcG9uZW50UHJvcHMoaW5Db21wKTtcblxuICAgIC8vIGlmIGhhdmUgcGFnZU1lc3NhZ2VzLCBhbmQgaXQgaXMgYmxhbmssIHJlbW92ZSBpdC4gIFRoaXMgY2F1c2VzIGlzc3VlcyBvZiBtYWtpbmcgaXQgYXBwZWFyXG4gICAgLy8gdGhhdCBhIHdpbGwgY2F1c2UgYW4gdXBkYXRlLCB3aGVuIHRoZXJlIGlzIG5vIGNoYW5nZVxuICAgIGlmICh0aGlzLmlzUGFnZU1lc3NhZ2VzRW1wdHkoaW5jb21pbmdQcm9wcykpIHtcbiAgICAgIGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLnBhZ2VNZXNzYWdlcyA9IGluY29taW5nUHJvcHMucGFnZU1lc3NhZ2VzO1xuICAgICAgZGVsZXRlIGluY29taW5nUHJvcHMucGFnZU1lc3NhZ2VzO1xuICAgIH1cblxuICAgIGlmIChpbmNvbWluZ1Byb3BzLmh0dHBNZXNzYWdlcykge1xuICAgICAgaW5Db21wLmFuZ3VsYXJQQ29ubmVjdERhdGEuaHR0cE1lc3NhZ2VzID0gaW5jb21pbmdQcm9wcy5odHRwTWVzc2FnZXM7XG4gICAgICBpbmNvbWluZ1Byb3BzLmh0dHBNZXNzYWdlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBpbmNvbWluZ1Byb3BzQXNTdHI6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGluY29taW5nUHJvcHMpO1xuXG4gICAgYlJldCA9IGlzRXF1YWwgPyAhaXNFcXVhbChjdXJyZW50UHJvcHMsIGluY29taW5nUHJvcHMpIDogY3VycmVudFByb3BzQXNTdHIgIT0gaW5jb21pbmdQcm9wc0FzU3RyO1xuXG4gICAgLy8gQmVsb3cgcGllY2Ugb2YgY29kZSBpcyBuZWVkZWQgdG8gcmUtcmVuZGVyIHRoZSBjb21wb25lbnQgc2luY2Ugd2Ugd2FubmEgZXZhbHVhdGUgdGhlIFZpc2liaWxpdHkgZXhwcmVzc2lvbiB3aXRoaW4gVmlldyBjb21wb25lbnQgaW4gc3VjaCBjYXNlc1xuICAgIGlmIChpbkNvbXAucENvbm4kLm1ldGEuY29uZmlnLmNvbnRleHQ/Lmxlbmd0aCA+IDAgJiYgaW5Db21wLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkubGVuZ3RoID4gJ2Nhc2VJbmZvLmNvbnRlbnQnLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gTm93IHVwZGF0ZSB0aGUgZW50cnkgaW4gY29tcG9uZW50UHJvcHNBcnIgd2l0aCB0aGUgaW5jb21pbmcgdmFsdWUgc29cbiAgICAvLyAgd2UgY2FuIGNvbXBhcmUgYWdhaW5zdCB0aGF0IG5leHQgdGltZS4uLlxuICAgIHRoaXMuY29tcG9uZW50UHJvcHNBcnJbY29tcElEXSA9IGluY29taW5nUHJvcHM7XG4gICAgY29uc3QgdmFsaWRhdGVtZXNzYWdlID0gaW5jb21pbmdQcm9wcy52YWxpZGF0ZW1lc3NhZ2UgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcy51dGlscy5odG1sRGVjb2RlKGluY29taW5nUHJvcHMudmFsaWRhdGVtZXNzYWdlKTtcbiAgICAvLyBhbmQgdXBkYXRlIHRoZSBjb21wb25lbnQncyB2YWxpZGF0aW9uIG1lc3NhZ2UgKGlmIHVuZGVmaW5lZCwgaXQgc2hvdWxkIGJlIHNldCB0byBcIlwiKVxuICAgIGlmICh1bmRlZmluZWQgIT09IGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhKSB7XG4gICAgICBpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgPSB2YWxpZGF0ZW1lc3NhZ2U7XG5cbiAgICAgIGlmIChpbkNvbXAuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgIT0gJycpIHtcbiAgICAgICAgLy8gaWYgaGF2ZSBhIHZhbGlkYXRlIG1lc3NhZ2UsIHR1cm4gb2ZmIHNwaW5uZXJcbiAgICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuXG4gICAgICAgICAgdGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHNFcnJvck1lc3NhZ2UgPSBjdXJyZW50UHJvcHMgJiYgY3VycmVudFByb3BzLmxhYmVsID8gY3VycmVudFByb3BzLmxhYmVsLmNvbmNhdCgnIC0gJykgOiAnJztcbiAgICAgICAgc0Vycm9yTWVzc2FnZSA9IHNFcnJvck1lc3NhZ2UuY29uY2F0KGluQ29tcC5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSk7XG4gICAgICAgIHRoaXMuZXJTZXJ2aWNlLnNlbmRNZXNzYWdlKCd1cGRhdGUnLCBzRXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaW5Db21wLnZhbGlkYXRlTWVzc2FnZSA9IHZhbGlkYXRlbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAoYlJldCAmJiBjb21wSUQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYlJldCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKCBgQW5ndWxhclBDb25uZWN0IGNvbXBvbmVudCAke2NvbXBJRH0gLSAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfSAtIHNob3VsZENvbXBvbmVudFVwZGF0ZTogJHtiUmV0fWApO1xuICAgIC8vIGNvbnNvbGUubG9nKFwiY3VycmVudCBwcm9wczogXCIgKyBjdXJyZW50UHJvcHNBc1N0cik7XG5cbiAgICBpZiAoYlJldCkge1xuICAgICAgLy8gY29uc29sZS5sb2coYCoqKiogY2hhbmdlIGZvcjogJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiY3VycmVudCBwcm9wczogXCIgKyBjdXJyZW50UHJvcHNBc1N0cik7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcImluY29taW5nIHByb3BzOiBcIiArIGluY29taW5nUHJvcHNBc1N0cik7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgICAgICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9OiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuaW5nOiAke2JSZXR9LCBjb21wSWQ6ICR7Y29tcElEfWAgKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCBgICAgIFVwZGF0aW5nIHdpdGggY29tcG9uZW50UHJvcHMgZm9yICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9OiAke0pTT04uc3RyaW5naWZ5KHRoaXMuY29tcG9uZW50UHJvcHNBcnJbY29tcElEXSl9YCk7XG4gICAgICAvLyBjb25zb2xlLmxvZyggYCAgICAgICAgICBhbmQgdmFsaWRhdGVNZXNzYWdlOiAke2luQ29tcC52YWxpZGF0ZU1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIC8vIGVsc2UgaWYgKGluQ29tcC5jb25zdHJ1Y3Rvci5uYW1lLmluZGV4T2YoXCJWaWV3XCIpID49IDAgfHwgaW5Db21wLmNvbnN0cnVjdG9yLm5hbWUuaW5kZXhPZihcIlJvb3RcIikgPj0gMCkge1xuICAgIC8vICAgY29uc29sZS5sb2coXCJubyBjaGFuZ2VcIik7XG4gICAgLy8gICBjb25zb2xlLmxvZyhcImN1cnJlbnQgcHJvcHM6IFwiICsgY3VycmVudFByb3BzQXNTdHIpO1xuICAgIC8vICAgY29uc29sZS5sb2coXCJpbmNvbWluZyBwcm9wczogXCIgKyBpbmNvbWluZ1Byb3BzQXNTdHIpO1xuICAgIC8vICAgY29uc29sZS5sb2coYCAgICAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfTogc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybmluZzogJHtiUmV0fSwgY29tcElkOiAke2NvbXBJRH1gICk7XG5cbiAgICAvLyB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyhgICAgICR7aW5Db21wLmNvbnN0cnVjdG9yLm5hbWV9OiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuaW5nOiAke2JSZXR9YCk7XG5cbiAgICByZXR1cm4gYlJldDtcbiAgfVxuXG4gIGlzUGFnZU1lc3NhZ2VzRW1wdHkoaW5jb21pbmdQcm9wcykge1xuICAgIHJldHVybiBpbmNvbWluZ1Byb3BzLnBhZ2VNZXNzYWdlcyAmJiBpbmNvbWluZ1Byb3BzLnBhZ2VNZXNzYWdlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaGFzIGVuY291bnRlcmVkIGEgY2hhbmdlIGV2ZW50XG4gICAqIEBwYXJhbSBpbkNvbXAgVGhlIGNvbXBvbmVudCBjYWxsaW5nIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudFxuICAgKi9cbiAgY2hhbmdlSGFuZGxlcihpbkNvbXAsIGV2ZW50KSB7XG4gICAgY29uc3QgYkxvZ2dpbmcgPSBmYWxzZTtcbiAgICBpZiAoYkxvZ2dpbmcpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBBbmd1bGFyUENvbm5lY3QuY2hhbmdlSGFuZGxlcmApO1xuICAgIH1cbiAgICAvLyBjaGVjayBmb3IgcmVhc29uYWJsZSBpbnB1dFxuICAgIGlmICh1bmRlZmluZWQgPT09IGluQ29tcCB8fCBVdGlscy5pc0VtcHR5T2JqZWN0KGluQ29tcCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEFuZ3VsYXJQQ29ubmVjdDogYmFkIGNhbGwgdG8gY2hhbmdlSGFuZGxlcjogaW5Db21wOiAke0pTT04uc3RyaW5naWZ5KGluQ29tcCl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcENvbm5lY3QgPSBpbkNvbXAucENvbm4kO1xuICAgIGlmICh1bmRlZmluZWQgPT09IHBDb25uZWN0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBBbmd1bGFyUENvbm5lY3Q6IGJhZCBjYWxsIHRvIGNoYW5nZUhhbmRsZXI6IGluQ29tcC5wQ29ubiQ6ICR7cENvbm5lY3R9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgb3V0IGVycm9yc1xuICAgIHRoaXMuZXJTZXJ2aWNlLnNlbmRNZXNzYWdlKCdkaXNtaXNzJywgJycpO1xuXG4gICAgcENvbm5lY3QuZ2V0QWN0aW9uc0FwaSgpLmNoYW5nZUhhbmRsZXIocENvbm5lY3QsIGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW4gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgZW5jb3VudGVyZWQgYW4gZXZlbnQgKHN1Y2ggYXMgYmx1cilcbiAgICogQHBhcmFtIGluQ29tcCBUaGUgY29tcG9uZW50IGNhbGxpbmcgdGhlIGV2ZW50XG4gICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnRcbiAgICovXG4gIGV2ZW50SGFuZGxlcihpbkNvbXAsIGV2ZW50KSB7XG4gICAgY29uc3QgYkxvZ2dpbmcgPSBmYWxzZTtcbiAgICBpZiAoYkxvZ2dpbmcpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBBbmd1bGFyUENvbm5lY3QuZXZlbnRIYW5kbGVyYCk7XG4gICAgfVxuICAgIC8vIGNoZWNrIGZvciByZWFzb25hYmxlIGlucHV0XG4gICAgaWYgKHVuZGVmaW5lZCA9PT0gaW5Db21wIHx8IFV0aWxzLmlzRW1wdHlPYmplY3QoaW5Db21wKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byBldmVudEhhbmRsZXI6IGluQ29tcDogJHtKU09OLnN0cmluZ2lmeShpbkNvbXApfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBDb25uZWN0ID0gaW5Db21wLnBDb25uJDtcbiAgICBpZiAodW5kZWZpbmVkID09PSBwQ29ubmVjdCkge1xuICAgICAgY29uc29sZS5lcnJvcihgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byBldmVudEhhbmRsZXI6IGluQ29tcC5wQ29ubiQ6ICR7cENvbm5lY3R9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcENvbm5lY3QuZ2V0QWN0aW9uc0FwaSgpLmV2ZW50SGFuZGxlcihwQ29ubmVjdCwgZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIEEgaGFuZGxlIHRvIHRoZSBhcHBsaWNhdGlvbidzIHN0b3JlXG4gICAqL1xuICBnZXRTdG9yZSgpIHtcbiAgICBpZiAodGhpcy50aGVTdG9yZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy50aGVTdG9yZSA9IFBDb3JlLmdldFN0b3JlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRoZVN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBiTG9nTXNnIElmIHRydWUsIHdpbGwgd3JpdGUgdGhlIHN0cmluZ2lmaWVkIHN0YXRlIHRvIHRoZSBzdG9yZSBmb3IgZGVidWdnaW5nL2luc3BlY3Rpb25cbiAgICogQHBhcmFtIGluQ29tcCBJZiBzdXBwbGllZCwgdGhlIGNvbXBvbmVudCB0aGF0IGlzIHJlcXVlc3RpbmcgdGhlIHN0b3JlJ3Mgc3RhdGVcbiAgICogQHJldHVybnMgQSBoYW5kbGUgdG8gdGhlIF9fc3RhdGVfXyBvZiBhcHBsaWNhdGlvbidzIHN0b3JlXG4gICAqL1xuICBnZXRTdGF0ZShiTG9nTXNnOiBib29sZWFuID0gZmFsc2UsIGluQ29tcDogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IHRoZVN0YXRlOiBvYmplY3QgPSB0aGlzLmdldFN0b3JlKCkuZ2V0U3RhdGUoKTtcbiAgICBpZiAoYkxvZ01zZykge1xuICAgICAgY29uc3QgdGhlQ29tcE5hbWU6IHN0cmluZyA9IGluQ29tcCA/IGAke2luQ29tcC5jb25zdHJ1Y3Rvci5uYW1lfTogYCA6ICcnO1xuICAgICAgY29uc29sZS5sb2coYCR7dGhlQ29tcE5hbWV9IFN0b3JlIHN0YXRlOiAke0pTT04uc3RyaW5naWZ5KHRoZVN0YXRlKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoZVN0YXRlO1xuICB9XG5cbiAgLy8gcHJvY2Vzc0FjdGlvbnMgLSBjYXJyaWVkIG92ZXIgZnJvbSBQQ29ubmVjdEhPQyBpbml0aWFsaXplXG4gIC8qKlxuICAgKiAgcHJvY2Vzc0FjdGlvbnMgZXhwb3NlcyBhbGwgYWN0aW9ucyBpbiB0aGUgbWV0YWRhdGEuXG4gICAqICBBdHRhY2hlcyBjb21tb24gaGFuZGxlciAoZXZlbnRIYW5kbGVyKSBmb3IgYWxsIGFjdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NBY3Rpb25zKGluQ29tcCkge1xuICAgIGNvbnN0IHBDb25uZWN0ID0gaW5Db21wLnBDb25uJDtcbiAgICBpZiAodW5kZWZpbmVkID09PSBwQ29ubmVjdCkge1xuICAgICAgY29uc29sZS5lcnJvcihgQW5ndWxhclBDb25uZWN0OiBiYWQgY2FsbCB0byBwcm9jZXNzQWN0aW9uczogcENvbm4kOiAke3BDb25uZWN0fSBmcm9tIGNvbXBvbmVudDogJHtpbkNvbXAuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaW5Db21wLnBDb25uJC5pc0VkaXRhYmxlKCkpIHtcbiAgICAgIGluQ29tcC5wQ29ubiQuc2V0QWN0aW9uKCdvbkNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICAgIGluQ29tcC5wQ29ubiQuc2V0QWN0aW9uKCdvbkJsdXInLCB0aGlzLmV2ZW50SGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -91,10 +91,10 @@ export class ComponentMapperComponent {
91
91
  this.componentRef.destroy();
92
92
  }
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentMapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ComponentMapperComponent, isStandalone: true, selector: "component-mapper", inputs: { name: "name", props: "props", errorMsg: "errorMsg", outputEvents: "outputEvents", parent: "parent" }, viewQueries: [{ propertyName: "dynamicComponent", first: true, predicate: ["dynamicComponent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #dynamicComponent></ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentMapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ComponentMapperComponent, isStandalone: true, selector: "component-mapper", inputs: { name: "name", props: "props", errorMsg: "errorMsg", outputEvents: "outputEvents", parent: "parent" }, viewQueries: [{ propertyName: "dynamicComponent", first: true, predicate: ["dynamicComponent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #dynamicComponent></ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentMapperComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentMapperComponent, decorators: [{
98
98
  type: Component,
99
99
  args: [{ selector: 'component-mapper', standalone: true, imports: [CommonModule, ErrorBoundaryComponent], template: "<ng-container #dynamicComponent></ng-container>\n" }]
100
100
  }], propDecorators: { dynamicComponent: [{
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
111
111
  }], parent: [{
112
112
  type: Input
113
113
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBK0MsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFFekcsTUFBTSxrQ0FBa0MsR0FBYTtJQUNuRCxxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixlQUFlO0lBQ2YsTUFBTTtJQUNOLFVBQVU7Q0FDWCxDQUFDO0FBU0YsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVlTLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXBCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixhQUFRLEdBQUcsRUFBRSxDQUFDO0tBa0Z4QjtJQTdFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8s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Q0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDOytHQTFGVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw2UkFDSSxnQkFBZ0IsZ0VDdEJ6RCxtREFDQSx5RERrQlksWUFBWTs7NEZBRVgsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7OEJBSXhDLGdCQUFnQjtzQkFEdEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU05RCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGdldENvbXBvbmVudEZyb21NYXAgfSBmcm9tICcuLi9oZWxwZXJzL3Nka19jb21wb25lbnRfbWFwJztcbmltcG9ydCB7IEVycm9yQm91bmRhcnlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9lcnJvci1ib3VuZGFyeS9lcnJvci1ib3VuZGFyeS5jb21wb25lbnQnO1xuXG5jb25zdCBjb21wb25lbnRzUmVxdWlyZURpc3BsYXlPbmx5RkFQcm9wOiBzdHJpbmdbXSA9IFtcbiAgJ0h5YnJpZFZpZXdDb250YWluZXInLFxuICAnTW9kYWxWaWV3Q29udGFpbmVyJyxcbiAgJ1ZpZXdDb250YWluZXInLFxuICAnUm9vdENvbnRhaW5lcicsXG4gICdWaWV3JyxcbiAgJ0Nhc2VWaWV3J1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29tcG9uZW50LW1hcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBFcnJvckJvdW5kYXJ5Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnZHluYW1pY0NvbXBvbmVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBkeW5hbWljQ29tcG9uZW50OiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgQElucHV0KCkgcHJvcHM6IGFueTtcbiAgQElucHV0KCkgZXJyb3JNc2cgPSAnJztcbiAgQElucHV0KCkgb3V0cHV0RXZlbnRzOiBhbnk7XG4gIC8vIHBhcmVudCBwcm9wIGlzIGNvbXB1bHNvcnkgd2hlbiBvdXRwdXRFdmVudHMgaXMgcHJlc2VudFxuICBASW5wdXQoKSBwYXJlbnQ6IGFueTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRDb21wb25lbnQoKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gY2hhbmdlcztcbiAgICBpZiAobmFtZSkge1xuICAgICAgY29uc3QgeyBwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUgfSA9IG5hbWU7XG4gICAgICBpZiAocHJldmlvdXNWYWx1ZSAmJiBwcmV2aW91c1ZhbHVlICE9PSBjdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuYmluZElucHV0UHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBsb2FkQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGdldENvbXBvbmVudEZyb21NYXAodGhpcy5uYW1lKTtcblxuICAgIGlmICh0aGlzLmR5bmFtaWNDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudC5jbGVhcigpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnQuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG5cbiAgICAgIGlmIChjb21wb25lbnQgPT09IEVycm9yQm91bmRhcnlDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubWVzc2FnZSA9IHRoaXMuZXJyb3JNc2c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmJpbmRJbnB1dFByb3BzKCk7XG4gICAgICAgIHRoaXMuYmluZE91dHB1dEV2ZW50cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJpbmRJbnB1dFByb3BzKCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgICBjb25zdCBwcm9wc0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKTtcbiAgICAgICAgY29uc3QgcHJvcHNWYWx1ZXMgPSBPYmplY3QudmFsdWVzKHRoaXMucHJvcHMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChwcm9wc1ZhbHVlc1tpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBXZSdsbCBzZXQgJ2Rpc3BsYXlPbmx5RkEkJyBwcm9wIG9ubHkgdG8gdGhlIGNvbXBvbmVudHMgd2hpY2ggcmVhbGx5IG5lZWQgaXRcbiAgICAgICAgICAgIC8vIEV2ZW50dWFsIHBsYW4gaXMgdG8gZ2V0IHJpZCBvZiB0aGlzIHBhcnRpY3VsYXIgcHJvcFxuICAgICAgICAgICAgaWYgKHByb3BzS2V5c1tpXSA9PT0gJ2Rpc3BsYXlPbmx5RkEkJyAmJiAhY29tcG9uZW50c1JlcXVpcmVEaXNwbGF5T25seUZBUHJvcC5pbmNsdWRlcyh0aGlzLm5hbWUpKSB7XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5zZXRJbnB1dChwcm9wc0tleXNbaV0sIHByb3BzVmFsdWVzW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG4gIH1cblxuICBiaW5kT3V0cHV0RXZlbnRzKCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5vdXRwdXRFdmVudHMpIHtcbiAgICAgICAgY29uc3QgcHJvcHNLZXlzID0gT2JqZWN0LmtleXModGhpcy5vdXRwdXRFdmVudHMpO1xuICAgICAgICBjb25zdCBwcm9wc1ZhbHVlczogYW55ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm91dHB1dEV2ZW50cyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHNLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlW3Byb3BzS2V5c1tpXV0uc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrRm4gPSBwcm9wc1ZhbHVlc1tpXS5iaW5kKHRoaXMucGFyZW50KTtcbiAgICAgICAgICAgIGNhbGxiYWNrRm4odmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICNkeW5hbWljQ29tcG9uZW50PjwvbmctY29udGFpbmVyPlxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBK0MsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFFekcsTUFBTSxrQ0FBa0MsR0FBYTtJQUNuRCxxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixlQUFlO0lBQ2YsTUFBTTtJQUNOLFVBQVU7Q0FDWCxDQUFDO0FBU0YsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVlTLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXBCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixhQUFRLEdBQUcsRUFBRSxDQUFDO0tBa0Z4QjtJQTdFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8s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QUFDLEVBQUU7d0JBQzFELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNwRCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7K0dBMUZVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZSQUNJLGdCQUFnQixnRUN0QnpELG1EQUNBLHlERGtCWSxZQUFZOzs0RkFFWCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQzs4QkFJeEMsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTTlELElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgZ2V0Q29tcG9uZW50RnJvbU1hcCB9IGZyb20gJy4uL2hlbHBlcnMvc2RrX2NvbXBvbmVudF9tYXAnO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL2Vycm9yLWJvdW5kYXJ5L2Vycm9yLWJvdW5kYXJ5LmNvbXBvbmVudCc7XG5cbmNvbnN0IGNvbXBvbmVudHNSZXF1aXJlRGlzcGxheU9ubHlGQVByb3A6IHN0cmluZ1tdID0gW1xuICAnSHlicmlkVmlld0NvbnRhaW5lcicsXG4gICdNb2RhbFZpZXdDb250YWluZXInLFxuICAnVmlld0NvbnRhaW5lcicsXG4gICdSb290Q29udGFpbmVyJyxcbiAgJ1ZpZXcnLFxuICAnQ2FzZVZpZXcnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb21wb25lbnQtbWFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVycm9yQm91bmRhcnlDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudE1hcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdkeW5hbWljQ29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGR5bmFtaWNDb21wb25lbnQ6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBwcm9wczogYW55O1xuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xuICBASW5wdXQoKSBvdXRwdXRFdmVudHM6IGFueTtcbiAgLy8gcGFyZW50IHByb3AgaXMgY29tcHVsc29yeSB3aGVuIG91dHB1dEV2ZW50cyBpcyBwcmVzZW50XG4gIEBJbnB1dCgpIHBhcmVudDogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZENvbXBvbmVudCgpO1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgeyBuYW1lIH0gPSBjaGFuZ2VzO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICBjb25zdCB7IHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSB9ID0gbmFtZTtcbiAgICAgIGlmIChwcmV2aW91c1ZhbHVlICYmIHByZXZpb3VzVmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLmxvYWRDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5iaW5kSW5wdXRQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRDb21wb25lbnQoKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gZ2V0Q29tcG9uZW50RnJvbU1hcCh0aGlzLm5hbWUpO1xuXG4gICAgaWYgKHRoaXMuZHluYW1pY0NvbXBvbmVudCkge1xuICAgICAgdGhpcy5keW5hbWljQ29tcG9uZW50LmNsZWFyKCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuZHluYW1pY0NvbXBvbmVudC5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcblxuICAgICAgaWYgKGNvbXBvbmVudCA9PT0gRXJyb3JCb3VuZGFyeUNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5tZXNzYWdlID0gdGhpcy5lcnJvck1zZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYmluZElucHV0UHJvcHMoKTtcbiAgICAgICAgdGhpcy5iaW5kT3V0cHV0RXZlbnRzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYmluZElucHV0UHJvcHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByb3BzKSB7XG4gICAgICAgIGNvbnN0IHByb3BzS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucHJvcHMpO1xuICAgICAgICBjb25zdCBwcm9wc1ZhbHVlcyA9IE9iamVjdC52YWx1ZXModGhpcy5wcm9wcyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHNLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHByb3BzVmFsdWVzW2ldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFdlJ2xsIHNldCAnZGlzcGxheU9ubHlGQSQnIHByb3Agb25seSB0byB0aGUgY29tcG9uZW50cyB3aGljaCByZWFsbHkgbmVlZCBpdFxuICAgICAgICAgICAgLy8gRXZlbnR1YWwgcGxhbiBpcyB0byBnZXQgcmlkIG9mIHRoaXMgcGFydGljdWxhciBwcm9wXG4gICAgICAgICAgICBpZiAocHJvcHNLZXlzW2ldID09PSAnZGlzcGxheU9ubHlGQSQnICYmICFjb21wb25lbnRzUmVxdWlyZURpc3BsYXlPbmx5RkFQcm9wLmluY2x1ZGVzKHRoaXMubmFtZSkpIHtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRpbnVlXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/LnNldElucHV0KHByb3BzS2V5c1tpXSwgcHJvcHNWYWx1ZXNbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmRPdXRwdXRFdmVudHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLm91dHB1dEV2ZW50cykge1xuICAgICAgICBjb25zdCBwcm9wc0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLm91dHB1dEV2ZW50cyk7XG4gICAgICAgIGNvbnN0IHByb3BzVmFsdWVzOiBhbnkgPSBPYmplY3QudmFsdWVzKHRoaXMub3V0cHV0RXZlbnRzKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wc0tleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2VbcHJvcHNLZXlzW2ldXS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2tGbiA9IHByb3BzVmFsdWVzW2ldLmJpbmQodGhpcy5wYXJlbnQpO1xuICAgICAgICAgICAgY2FsbGJhY2tGbih2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI2R5bmFtaWNDb21wb25lbnQ+PC9uZy1jb250YWluZXI+XG4iXX0=
@@ -66,6 +66,7 @@ import { InlineDashboardPageComponent } from '../../_components/template/inline-
66
66
  import { ListPageComponent } from '../../_components/template/list-page/list-page.component';
67
67
  import { ListViewComponent } from '../../_components/template/list-view/list-view.component';
68
68
  import { MultiReferenceReadonlyComponent } from '../../_components/template/multi-reference-readonly/multi-reference-readonly.component';
69
+ import { MultiselectComponent } from '../../_components/field/multiselect/multiselect.component';
69
70
  import { NarrowWideFormComponent } from '../../_components/template/narrow-wide-form/narrow-wide-form.component';
70
71
  import { OneColumnComponent } from '../../_components/template/one-column/one-column.component';
71
72
  import { OneColumnPageComponent } from '../../_components/template/one-column-page/one-column-page.component';
@@ -178,6 +179,7 @@ const pegaSdkComponentMap = {
178
179
  MaterialUtility: MaterialUtilityComponent,
179
180
  ModalViewContainer: ModalViewContainerComponent,
180
181
  MultiReferenceReadOnly: MultiReferenceReadonlyComponent,
182
+ Multiselect: MultiselectComponent,
181
183
  MultiStep: MultiStepComponent,
182
184
  // 'NarrowWide': NarrowWideFormComponent,
183
185
  NarrowWideDetails: DetailsNarrowWideComponent,
@@ -234,4 +236,4 @@ const pegaSdkComponentMap = {
234
236
  WssQuickCreate: WssQuickCreateComponent
235
237
  };
236
238
  export default pegaSdkComponentMap;
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXBlZ2EtY29tcG9uZW50LW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fYnJpZGdlL2hlbHBlcnMvc2RrLXBlZ2EtY29tcG9uZW50LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDL0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDckksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGFB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QUN6QyxXQUFXLEVBQUUsNEJBQTRCO0lBQ3pDLElBQUksRUFBRSxhQUFhO0lBQ25CLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsV0FBVyxFQUFFLG9CQUFvQjtJQUNqQyxTQUFTLEVBQUUsa0JBQWtCO0lBQzdCLFdBQVcsRUFBRSxvQkFBb0I7SUFDakMsZUFBZSxFQUFFLHdCQUF3QjtJQUN6QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixJQUFJLEVBQUUsYUFBYTtJQUNuQixTQUFTLEVBQUUsa0JBQWtCO0lBQzdCLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsWUFBWSxFQUFFLHFCQUFxQjtJQUNuQyxHQUFHLEVBQUUsWUFBWTtJQUNqQixhQUFhLEVBQUUsc0JBQXNCO0lBQ3JDLFlBQVksRUFBRSw2QkFBNkI7SUFDM0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyw4QkFBOEI7SUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCO0lBQzdDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxTQUFTLEVBQUUsa0JBQWtCO0lBQzdCLGNBQWMsRUFBRSx1QkFBdUI7Q0FDeEMsQ0FBQztBQUVGLGVBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbmZyYSBjb21wb25lbnRzXG5pbXBvcnQgeyBBY3Rpb25CdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvYWN0aW9uLWJ1dHRvbnMvYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2lnbm1lbnRDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvYXNzaWdubWVudC1jYXJkL2Fzc2lnbm1lbnQtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzaWdubWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL2Fzc2lnbm1lbnQvYXNzaWdubWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvZGFzaGJvYXJkLWZpbHRlci9kYXNoYm9hcmQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZlckxvYWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9kZWZlci1sb2FkL2RlZmVyLWxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yQm91bmRhcnlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9lcnJvci1ib3VuZGFyeS9lcnJvci1ib3VuZGFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvZmxvdy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU3RlcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL211bHRpLXN0ZXAvbXVsdGktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2YmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVnaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvcmVnaW9uL3JlZ2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm9vdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFnZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9zdGFnZXMvc3RhZ2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvc3ViLXRhYnMvc3ViLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9Db250YWluZXJzL3ZpZXctY29udGFpbmVyL3ZpZXctY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbi8vIEZpZWxkIGNvbXBvbmVudHNcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FuY2VsQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9jYW5jZWwtYWxlcnQvY2FuY2VsLWFsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja0JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2NoZWNrLWJveC9jaGVjay1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvY3VycmVuY3kvY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9kYXRlL2RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjaW1hbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2RlY2ltYWwvZGVjaW1hbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9lbWFpbC9lbWFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9ncm91cC9ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50ZWdlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2ludGVnZXIvaW50ZWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFZpZXdBY3Rpb25CdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvbGlzdC12aWV3LWFjdGlvbi1idXR0b25zL2xpc3Qtdmlldy1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3BlcmNlbnRhZ2UvcGVyY2VudGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9waG9uZS9waG9uZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvcmFkaW8tYnV0dG9ucy9yYWRpby1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZW1hbnRpY0xpbmtDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9zZW1hbnRpYy1saW5rL3NlbWFudGljLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC90ZXh0LWNvbnRlbnQvdGV4dC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC90aW1lL3RpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IFVybENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3VybC91cmwuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC91c2VyLXJlZmVyZW5jZS91c2VyLXJlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NhbGFyTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3NjYWxhci1saXN0L3NjYWxhci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaWNoVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3JpY2gtdGV4dC9yaWNoLXRleHQuY29tcG9uZW50JztcblxuLy8gVGVtcGxhdGUgY29tcG9uZW50c1xuaW1wb3J0IHsgQXBwU2hlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvYmFubmVyLXBhZ2UvYmFubmVyLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvY2FzZS1zdW1tYXJ5L2Nhc2Utc3VtbWFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZVZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGF0YS1yZWZlcmVuY2UvZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGVmYXVsdC1mb3JtL2RlZmF1bHQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMvZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc05hcnJvd1dpZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLW5hcnJvdy13aWRlL2RldGFpbHMtbmFycm93LXdpZGUuY29tcG9uZW50JztcbmltcG9ydCB7IERldGFpbHNPbmVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLW9uZS1jb2x1bW4vZGV0YWlscy1vbmUtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzU3ViVGFic0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMtc3ViLXRhYnMvZGV0YWlscy1zdWItdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc1RocmVlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy10aHJlZS1jb2x1bW4vZGV0YWlscy10aHJlZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IERldGFpbHNUd29Db2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLXR3by1jb2x1bW4vZGV0YWlscy10d28tY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzV2lkZU5hcnJvd0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMtd2lkZS1uYXJyb3cvZGV0YWlscy13aWRlLW5hcnJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1RhYnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9keW5hbWljLXRhYnMvZHluYW1pYy10YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2ZpZWxkLWdyb3VwLWxpc3QvZmllbGQtZ3JvdXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRHcm91cFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZmllbGQtZ3JvdXAtdGVtcGxhdGUvZmllbGQtZ3JvdXAtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkVmFsdWVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZmllbGQtdmFsdWUtbGlzdC9maWVsZC12YWx1ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmxpbmVEYXNoYm9hcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9pbmxpbmUtZGFzaGJvYXJkL2lubGluZS1kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IElubGluZURhc2hib2FyZFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9pbmxpbmUtZGFzaGJvYXJkLXBhZ2UvaW5saW5lLWRhc2hib2FyZC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0UGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2xpc3QtcGFnZS9saXN0LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvbGlzdC12aWV3L2xpc3Qtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlSZWZlcmVuY2VSZWFkb25seUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL211bHRpLXJlZmVyZW5jZS1yZWFkb25seS9tdWx0aS1yZWZlcmVuY2UtcmVhZG9ubHkuY29tcG9uZW50JztcbmltcG9ydCB7IE5hcnJvd1dpZGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvbmFycm93LXdpZGUtZm9ybS9uYXJyb3ctd2lkZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9vbmUtY29sdW1uL29uZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IE9uZUNvbHVtblBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9vbmUtY29sdW1uLXBhZ2Uvb25lLWNvbHVtbi1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVDb2x1bW5UYWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9vbmUtY29sdW1uLXRhYi9vbmUtY29sdW1uLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvbW90ZWRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvcHJvbW90ZWQtZmlsdGVycy9wcm9tb3RlZC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlTWFudWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvc2ltcGxlLXRhYmxlLW1hbnVhbC9zaW1wbGUtdGFibGUtbWFudWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3NpbXBsZS10YWJsZS1zZWxlY3Qvc2ltcGxlLXRhYmxlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2luZ2xlUmVmZXJlbmNlUmVhZG9ubHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW5nbGUtcmVmZXJlbmNlLXJlYWRvbmx5L3NpbmdsZS1yZWZlcmVuY2UtcmVhZG9ubHkuY29tcG9uZW50JztcbmltcG9ydCB7IFRocmVlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvdGhyZWUtY29sdW1uL3RocmVlLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhyZWVDb2x1bW5QYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvdGhyZWUtY29sdW1uLXBhZ2UvdGhyZWUtY29sdW1uLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFR3b0NvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3R3by1jb2x1bW4vdHdvLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHdvQ29sdW1uUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3R3by1jb2x1bW4tcGFnZS90d28tY29sdW1uLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFR3b0NvbHVtblRhYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3R3by1jb2x1bW4tdGFiL3R3by1jb2x1bW4tdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRlTmFycm93Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3dpZGUtbmFycm93LWZvcm0vd2lkZS1uYXJyb3ctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZU5hcnJvd1BhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS93aWRlLW5hcnJvdy1wYWdlL3dpZGUtbmFycm93LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFdzc05hdkJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3dzcy1uYXYtYmFyL3dzcy1uYXYtYmFyLmNvbXBvbmVudCc7XG5cbi8vIFdpZGdldCBjb21wb25lbnRzXG5pbXBvcnQgeyBBcHBBbm5vdW5jZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvYXBwLWFubm91bmNlbWVudC9hcHAtYW5ub3VuY2VtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdHRhY2htZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvd2lkZ2V0L2F0dGFjaG1lbnQvYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvY2FzZS1oaXN0b3J5L2Nhc2UtaGlzdG9yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVV0aWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvZmlsZS11dGlsaXR5L2ZpbGUtdXRpbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVlZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9mZWVkLWNvbnRhaW5lci9mZWVkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFV0aWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvbGlzdC11dGlsaXR5L2xpc3QtdXRpbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVpY2tDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvcXVpY2stY3JlYXRlL3F1aWNrLWNyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9kb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC90b2RvL3RvZG8uY29tcG9uZW50JztcblxuLy8gRGVzaWduIFN5c3RlbSBjb21wb25lbnRzXG5pbXBvcnQgeyBBbGVydEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VDcmVhdGVTdGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9jYXNlLWNyZWF0ZS1zdGFnZS9jYXNlLWNyZWF0ZS1zdGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9maWVsZC1ncm91cC9maWVsZC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxDYXNlU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC1jYXNlLXN1bW1hcnkvbWF0ZXJpYWwtY2FzZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vbWF0ZXJpYWwtZGV0YWlscy9tYXRlcmlhbC1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbERldGFpbHNGaWVsZHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vbWF0ZXJpYWwtZGV0YWlscy1maWVsZHMvbWF0ZXJpYWwtZGV0YWlscy1maWVsZHMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsU3VtbWFyeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vbWF0ZXJpYWwtc3VtbWFyeS1pdGVtL21hdGVyaWFsLXN1bW1hcnktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxTdW1tYXJ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC1zdW1tYXJ5LWxpc3QvbWF0ZXJpYWwtc3VtbWFyeS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbFV0aWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vbWF0ZXJpYWwtdXRpbGl0eS9tYXRlcmlhbC11dGlsaXR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbFZlcnRpY2FsVGFic0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC12ZXJ0aWNhbC10YWJzL21hdGVyaWFsLXZlcnRpY2FsLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IE9wZXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL29wZXJhdG9yL29wZXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQdWxzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9wdWxzZS9wdWxzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vcmljaC10ZXh0LWVkaXRvci9yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXc3NRdWlja0NyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi93c3MtcXVpY2stY3JlYXRlL3dzcy1xdWljay1jcmVhdGUuY29tcG9uZW50JztcblxuLy8gcGVnYVNka0NvbXBvbmVudE1hcCBpcyB0aGUgSlNPTiBvYmplY3Qgd2hlcmUgd2UnbGwgc3RvcmUgdGhlIGNvbXBvbmVudHMgdGhhdCBhcmVcbi8vIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBwcm92aWRlZCBieSB0aGUgU0RLLiBUaGVzZSB3aWxsIGJlIHVzZWQgaWYgdGhlcmUgaXNuJ3Rcbi8vIGFuIGVudHJ5IGluIHRoZSBsb2NhbFNka0NvbXBvbmVudE1hcFxuXG4vLyBOT1RFOiBBIGZldyBjb21wb25lbnRzIGhhdmUgbm9uLXN0YW5kYXJkIGNhcGl0YWxpemF0aW9uOlxuLy8gICdyZWZlcmVuY2UnIGlzIHdoYXQncyBpbiB0aGUgbWV0YWRhdGEsIG5vdCBSZWZlcmVuY2Vcbi8vICAnVG9kbycgaXMgd2hhdCdzIGluIHRoZSBtZXRhZGF0YSwgbm90IFRvRG9cbi8vICBBbHNvLCBub3RlIHRoYXQgXCJDaGVja2JveFwiIGNvbXBvbmVudCBpcyBuYW1lZC9leHBvcnRlZCBhcyBDaGVja2JveENvbXBvbmVudFxuXG5jb25zdCBwZWdhU2RrQ29tcG9uZW50TWFwID0ge1xuICBBY3Rpb25CdXR0b25zOiBBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxuICBBbGVydDogQWxlcnRDb21wb25lbnQsXG4gIEFsZXJ0QmFubmVyOiBBbGVydEJhbm5lckNvbXBvbmVudCxcbiAgLy8gICAnQWN0aW9uQnV0dG9uc0ZvckZpbGVVdGlsJzogQWN0aW9uQnV0dG9uc0ZvckZpbGVVdGlsLFxuICBBcHBBbm5vdW5jZW1lbnQ6IEFwcEFubm91bmNlbWVudENvbXBvbmVudCxcbiAgQXBwU2hlbGw6IEFwcFNoZWxsQ29tcG9uZW50LFxuICBBc3NpZ25tZW50OiBBc3NpZ25tZW50Q29tcG9uZW50LFxuICBBc3NpZ25tZW50Q2FyZDogQXNzaWdubWVudENhcmRDb21wb25lbnQsXG4gIEF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRDb21wb25lbnQsXG4gIEF1dG9Db21wbGV0ZTogQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxuICBCYW5uZXI6IEJhbm5lckNvbXBvbmVudCxcbiAgQmFubmVyUGFnZTogQmFubmVyUGFnZUNvbXBvbmVudCxcbiAgQ2FuY2VsQWxlcnQ6IENhbmNlbEFsZXJ0Q29tcG9uZW50LFxuICBDYXNlQ3JlYXRlU3RhZ2U6IENhc2VDcmVhdGVTdGFnZUNvbXBvbmVudCxcbiAgQ2FzZUhpc3Rvcnk6IENhc2VIaXN0b3J5Q29tcG9uZW50LFxuICBDYXNlU3VtbWFyeTogQ2FzZVN1bW1hcnlDb21wb25lbnQsXG4gIENhc2VTdW1tYXJ5RmllbGRzOiBNYXRlcmlhbENhc2VTdW1tYXJ5Q29tcG9uZW50LFxuICBDYXNlVmlldzogQ2FzZVZpZXdDb21wb25lbnQsXG4gIC8vICAgJ0Nhc2VWaWV3QWN0aW9uc01lbnUnOiBDYXNlVmlld0FjdGlvbnNNZW51LFxuICBDaGVja2JveDogQ2hlY2tCb3hDb21wb25lbnQsXG4gIENvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICBDdXJyZW5jeTogQ3VycmVuY3lDb21wb25lbnQsXG4gIERhc2hib2FyZEZpbHRlcjogRGFzaGJvYXJkRmlsdGVyQ29tcG9uZW50LFxuICBEYXRhUmVmZXJlbmNlOiBEYXRhUmVmZXJlbmNlQ29tcG9uZW50LFxuICBEYXRlOiBEYXRlQ29tcG9uZW50LFxuICBEYXRlVGltZTogRGF0ZVRpbWVDb21wb25lbnQsXG4gIERlY2ltYWw6IERlY2ltYWxDb21wb25lbnQsXG4gIERlZmF1bHRGb3JtOiBEZWZhdWx0Rm9ybUNvbXBvbmVudCxcbiAgRGVmZXJMb2FkOiBEZWZlckxvYWRDb21wb25lbnQsXG4gIERldGFpbHM6IERldGFpbHNDb21wb25lbnQsXG4gIERldGFpbHNGaWVsZHM6IE1hdGVyaWFsRGV0YWlsc0ZpZWxkc0NvbXBvbmVudCxcbiAgRGV0YWlsc09uZUNvbHVtbjogRGV0YWlsc09uZUNvbHVtbkNvbXBvbmVudCxcbiAgRGV0YWlsc1N1YlRhYnM6IERldGFpbHNTdWJUYWJzQ29tcG9uZW50LFxuICBEZXRhaWxzVGhyZWVDb2x1bW46IERldGFpbHNUaHJlZUNvbHVtbkNvbXBvbmVudCxcbiAgRGV0YWlsc1R3b0NvbHVtbjogRGV0YWlsc1R3b0NvbHVtbkNvbXBvbmVudCxcbiAgRHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50LFxuICBEeW5hbWljVGFiczogRHluYW1pY1RhYnNDb21wb25lbnQsXG4gIEVtYWlsOiBFbWFpbENvbXBvbmVudCxcbiAgRXJyb3JCb3VuZGFyeTogRXJyb3JCb3VuZGFyeUNvbXBvbmVudCxcbiAgRmVlZENvbnRhaW5lcjogRmVlZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRmllbGRHcm91cDogRmllbGRHcm91cENvbXBvbmVudCxcbiAgRmllbGRHcm91cExpc3Q6IEZpZWxkR3JvdXBMaXN0Q29tcG9uZW50LFxuICBGaWVsZEdyb3VwVGVtcGxhdGU6IEZpZWxkR3JvdXBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgRmllbGRWYWx1ZUxpc3Q6IEZpZWxkVmFsdWVMaXN0Q29tcG9uZW50LFxuICBGaWxlVXRpbGl0eTogRmlsZVV0aWxpdHlDb21wb25lbnQsXG4gIEZsb3dDb250YWluZXI6IEZsb3dDb250YWluZXJDb21wb25lbnQsXG4gIEdyb3VwOiBHcm91cENvbXBvbmVudCxcbiAgLy8gICAnRm9sbG93ZXJzJzogRm9sbG93ZXJzLFxuICBJbmxpbmVEYXNoYm9hcmQ6IElubGluZURhc2hib2FyZENvbXBvbmVudCxcbiAgSW5saW5lRGFzaGJvYXJkUGFnZTogSW5saW5lRGFzaGJvYXJkUGFnZUNvbXBvbmVudCxcbiAgSW50ZWdlcjogSW50ZWdlckNvbXBvbmVudCxcbiAgLy8gICAnTGVmdEFsaWduVmVydGljYWxUYWJzJzogTGVmdEFsaWduVmVydGljYWxUYWJzLFxuICBMaXN0UGFnZTogTGlzdFBhZ2VDb21wb25lbnQsXG4gIExpc3RVdGlsaXR5OiBMaXN0VXRpbGl0eUNvbXBvbmVudCxcbiAgTGlzdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50LFxuICBMaXN0Vmlld0FjdGlvbkJ1dHRvbnM6IExpc3RWaWV3QWN0aW9uQnV0dG9uc0NvbXBvbmVudCxcbiAgTWF0ZXJpYWxEZXRhaWxzOiBNYXRlcmlhbERldGFpbHNDb21wb25lbnQsXG4gIE1hdGVyaWFsVXRpbGl0eTogTWF0ZXJpYWxVdGlsaXR5Q29tcG9uZW50LFxuICBNb2RhbFZpZXdDb250YWluZXI6IE1vZGFsVmlld0NvbnRhaW5lckNvbXBvbmVudCxcbiAgTXVsdGlSZWZlcmVuY2VSZWFkT25seTogTXVsdGlSZWZlcmVuY2VSZWFkb25seUNvbXBvbmVudCxcbiAgTXVsdGlTdGVwOiBNdWx0aVN0ZXBDb21wb25lbnQsXG4gIC8vICAgJ05hcnJvd1dpZGUnOiBOYXJyb3dXaWRlRm9ybUNvbXBvbmVudCxcbiAgTmFycm93V2lkZURldGFpbHM6IERldGFpbHNOYXJyb3dXaWRlQ29tcG9uZW50LFxuICBOYXJyb3dXaWRlRm9ybTogTmFycm93V2lkZUZvcm1Db21wb25lbnQsXG4gIC8vICAgJ05hcnJvd1dpZGVQYWdlJzogTmFycm93V2lkZVBhZ2UsXG4gIE5hdkJhcjogTmF2YmFyQ29tcG9uZW50LFxuICBPbmVDb2x1bW46IE9uZUNvbHVtbkNvbXBvbmVudCxcbiAgT25lQ29sdW1uUGFnZTogT25lQ29sdW1uUGFnZUNvbXBvbmVudCxcbiAgT25lQ29sdW1uVGFiOiBPbmVDb2x1bW5UYWJDb21wb25lbnQsXG4gIE9wZXJhdG9yOiBPcGVyYXRvckNvbXBvbmVudCxcbiAgUGFnZTogUGFnZUNvbXBvbmVudCxcbiAgUGVyY2VudGFnZTogUGVyY2VudGFnZUNvbXBvbmVudCxcbiAgUGhvbmU6IFBob25lQ29tcG9uZW50LFxuICBQcm9tb3RlZEZpbHRlcnM6IFByb21vdGVkRmlsdGVyc0NvbXBvbmVudCxcbiAgUHVsc2U6IFB1bHNlQ29tcG9uZW50LFxuICBRdWlja0NyZWF0ZTogUXVpY2tDcmVhdGVDb21wb25lbnQsXG4gIHJlZmVyZW5jZTogUmVmZXJlbmNlQ29tcG9uZW50LFxuICBSYWRpb0J1dHRvbnM6IFJhZGlvQnV0dG9uc0NvbXBvbmVudCxcbiAgUmVnaW9uOiBSZWdpb25Db21wb25lbnQsXG4gIFJpY2hUZXh0OiBSaWNoVGV4dENvbXBvbmVudCxcbiAgUmljaFRleHRFZGl0b3I6IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50LFxuICBSb290Q29udGFpbmVyOiBSb290Q29udGFpbmVyQ29tcG9uZW50LFxuICBTY2FsYXJMaXN0OiBTY2FsYXJMaXN0Q29tcG9uZW50LFxuICBTZW1hbnRpY0xpbms6IFNlbWFudGljTGlua0NvbXBvbmVudCxcbiAgU2ltcGxlVGFibGU6IFNpbXBsZVRhYmxlQ29tcG9uZW50LFxuICBTaW1wbGVUYWJsZU1hbnVhbDogU2ltcGxlVGFibGVNYW51YWxDb21wb25lbnQsXG4gIFNpbXBsZVRhYmxlU2VsZWN0OiBTaW1wbGVUYWJsZVNlbGVjdENvbXBvbmVudCxcbiAgU2luZ2xlUmVmZXJlbmNlUmVhZE9ubHk6IFNpbmdsZVJlZmVyZW5jZVJlYWRvbmx5Q29tcG9uZW50LFxuICBTdGFnZXM6IFN0YWdlc0NvbXBvbmVudCxcbiAgU3ViVGFiczogU3ViVGFic0NvbXBvbmVudCxcbiAgU3VtbWFyeUl0ZW06IE1hdGVyaWFsU3VtbWFyeUl0ZW1Db21wb25lbnQsXG4gIFN1bW1hcnlMaXN0OiBNYXRlcmlhbFN1bW1hcnlMaXN0Q29tcG9uZW50LFxuICBUZXh0OiBUZXh0Q29tcG9uZW50LFxuICBUZXh0QXJlYTogVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRDb250ZW50OiBUZXh0Q29udGVudENvbXBvbmVudCxcbiAgVGV4dElucHV0OiBUZXh0SW5wdXRDb21wb25lbnQsXG4gIFRocmVlQ29sdW1uOiBUaHJlZUNvbHVtbkNvbXBvbmVudCxcbiAgVGhyZWVDb2x1bW5QYWdlOiBUaHJlZUNvbHVtblBhZ2VDb21wb25lbnQsXG4gIFRpbWU6IFRpbWVDb21wb25lbnQsXG4gIFRvZG86IFRvZG9Db21wb25lbnQsXG4gIFR3b0NvbHVtbjogVHdvQ29sdW1uQ29tcG9uZW50LFxuICBUd29Db2x1bW5QYWdlOiBUd29Db2x1bW5QYWdlQ29tcG9uZW50LFxuICBUd29Db2x1bW5UYWI6IFR3b0NvbHVtblRhYkNvbXBvbmVudCxcbiAgVVJMOiBVcmxDb21wb25lbnQsXG4gIFVzZXJSZWZlcmVuY2U6IFVzZXJSZWZlcmVuY2VDb21wb25lbnQsXG4gIFZlcnRpY2FsVGFiczogTWF0ZXJpYWxWZXJ0aWNhbFRhYnNDb21wb25lbnQsXG4gIFZpZXc6IFZpZXdDb21wb25lbnQsXG4gIFZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gIC8vICAgJ1dpZGVOYXJyb3cnOiBXaWRlTmFycm93LFxuICBXaWRlTmFycm93RGV0YWlsczogRGV0YWlsc1dpZGVOYXJyb3dDb21wb25lbnQsXG4gIFdpZGVOYXJyb3dGb3JtOiBXaWRlTmFycm93Rm9ybUNvbXBvbmVudCxcbiAgV2lkZU5hcnJvd1BhZ2U6IFdpZGVOYXJyb3dQYWdlQ29tcG9uZW50LFxuICBXc3NOYXZCYXI6IFdzc05hdkJhckNvbXBvbmVudCxcbiAgV3NzUXVpY2tDcmVhdGU6IFdzc1F1aWNrQ3JlYXRlQ29tcG9uZW50XG59O1xuXG5leHBvcnQgZGVmYXVsdCBwZWdhU2RrQ29tcG9uZW50TWFwO1xuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXBlZ2EtY29tcG9uZW50LW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fYnJpZGdlL2hlbHBlcnMvc2RrLXBlZ2EtY29tcG9uZW50LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDL0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDckksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGFB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SUFDekQsTUFBTSxFQUFFLGVBQWU7SUFDdkIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixXQUFXLEVBQUUsNEJBQTRCO0lBQ3pDLFdBQVcsRUFBRSw0QkFBNEI7SUFDekMsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxFQUFFLGlCQUFpQjtJQUMzQixXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsV0FBVyxFQUFFLG9CQUFvQjtJQUNqQyxlQUFlLEVBQUUsd0JBQXdCO0lBQ3pDLElBQUksRUFBRSxhQUFhO0lBQ25CLElBQUksRUFBRSxhQUFhO0lBQ25CLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxZQUFZLEVBQUUscUJBQXFCO0lBQ25DLEdBQUcsRUFBRSxZQUFZO0lBQ2pCLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsWUFBWSxFQUFFLDZCQUE2QjtJQUMzQyxJQUFJLEVBQUUsYUFBYTtJQUNuQixhQUFhLEVBQUUsc0JBQXNCO0lBQ3JDLDhCQUE4QjtJQUM5QixpQkFBaUIsRUFBRSwwQkFBMEI7SUFDN0MsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsY0FBYyxFQUFFLHVCQUF1QjtDQUN4QyxDQUFDO0FBRUYsZUFBZSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEluZnJhIGNvbXBvbmVudHNcbmltcG9ydCB7IEFjdGlvbkJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9hY3Rpb24tYnV0dG9ucy9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzaWdubWVudENhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9hc3NpZ25tZW50LWNhcmQvYXNzaWdubWVudC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NpZ25tZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvYXNzaWdubWVudC9hc3NpZ25tZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9kYXNoYm9hcmQtZmlsdGVyL2Rhc2hib2FyZC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmVyTG9hZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL2RlZmVyLWxvYWQvZGVmZXItbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL2Vycm9yLWJvdW5kYXJ5L2Vycm9yLWJvdW5kYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbG93Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvQ29udGFpbmVycy9mbG93LWNvbnRhaW5lci9mbG93LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvQ29udGFpbmVycy9tb2RhbC12aWV3LWNvbnRhaW5lci9tb2RhbC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvbXVsdGktc3RlcC9tdWx0aS1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWdpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9pbmZyYS9yZWdpb24vcmVnaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvaW5mcmEvcm9vdC1jb250YWluZXIvcm9vdC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN0YWdlc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL3N0YWdlcy9zdGFnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YlRhYnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zdWItdGFicy9zdWItdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL3ZpZXcvdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50JztcblxuLy8gRmllbGQgY29tcG9uZW50c1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYW5jZWxBbGVydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2NhbmNlbC1hbGVydC9jYW5jZWwtYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvY2hlY2stYm94L2NoZWNrLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2RhdGUvZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9kYXRlLXRpbWUvZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNpbWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvZGVjaW1hbC9kZWNpbWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2VtYWlsL2VtYWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL2dyb3VwL2dyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvaW50ZWdlci9pbnRlZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0Vmlld0FjdGlvbkJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9saXN0LXZpZXctYWN0aW9uLWJ1dHRvbnMvbGlzdC12aWV3LWFjdGlvbi1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJjZW50YWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvcGVyY2VudGFnZS9wZXJjZW50YWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3Bob25lL3Bob25lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9yYWRpby1idXR0b25zL3JhZGlvLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbWFudGljTGlua0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3NlbWFudGljLWxpbmsvc2VtYW50aWMtbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3RleHQtY29udGVudC90ZXh0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3RpbWUvdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvdXJsL3VybC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2ZpZWxkL3VzZXItcmVmZXJlbmNlL3VzZXItcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY2FsYXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvc2NhbGFyLWxpc3Qvc2NhbGFyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFJpY2hUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZmllbGQvcmljaC10ZXh0L3JpY2gtdGV4dC5jb21wb25lbnQnO1xuXG4vLyBUZW1wbGF0ZSBjb21wb25lbnRzXG5pbXBvcnQgeyBBcHBTaGVsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2FwcC1zaGVsbC9hcHAtc2hlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEJhbm5lclBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9iYW5uZXItcGFnZS9iYW5uZXItcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZVN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXN1bW1hcnkvY2FzZS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlVmlld0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2Nhc2Utdmlldy9jYXNlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzTmFycm93V2lkZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMtbmFycm93LXdpZGUvZGV0YWlscy1uYXJyb3ctd2lkZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc09uZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMtb25lLWNvbHVtbi9kZXRhaWxzLW9uZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IERldGFpbHNTdWJUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy1zdWItdGFicy9kZXRhaWxzLXN1Yi10YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzVGhyZWVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLXRocmVlLWNvbHVtbi9kZXRhaWxzLXRocmVlLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc1R3b0NvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2RldGFpbHMtdHdvLWNvbHVtbi9kZXRhaWxzLXR3by1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IERldGFpbHNXaWRlTmFycm93Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy13aWRlLW5hcnJvdy9kZXRhaWxzLXdpZGUtbmFycm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljVGFic0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2R5bmFtaWMtdGFicy9keW5hbWljLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkR3JvdXBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvZmllbGQtZ3JvdXAtbGlzdC9maWVsZC1ncm91cC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRWYWx1ZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9maWVsZC12YWx1ZS1saXN0L2ZpZWxkLXZhbHVlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IElubGluZURhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2lubGluZS1kYXNoYm9hcmQvaW5saW5lLWRhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lRGFzaGJvYXJkUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL2lubGluZS1kYXNoYm9hcmQtcGFnZS9pbmxpbmUtZGFzaGJvYXJkLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvbGlzdC1wYWdlL2xpc3QtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVJlZmVyZW5jZVJlYWRvbmx5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvbXVsdGktcmVmZXJlbmNlLXJlYWRvbmx5L211bHRpLXJlZmVyZW5jZS1yZWFkb25seS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlzZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9maWVsZC9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFycm93V2lkZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9uYXJyb3ctd2lkZS1mb3JtL25hcnJvdy13aWRlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE9uZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL29uZS1jb2x1bW4vb25lLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lQ29sdW1uUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL29uZS1jb2x1bW4tcGFnZS9vbmUtY29sdW1uLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZUNvbHVtblRhYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL29uZS1jb2x1bW4tdGFiL29uZS1jb2x1bW4tdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9tb3RlZEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9wcm9tb3RlZC1maWx0ZXJzL3Byb21vdGVkLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVNYW51YWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL3NpbXBsZS10YWJsZS1tYW51YWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvc2ltcGxlLXRhYmxlLXNlbGVjdC9zaW1wbGUtdGFibGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW5nbGVSZWZlcmVuY2VSZWFkb25seUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3NpbmdsZS1yZWZlcmVuY2UtcmVhZG9ubHkvc2luZ2xlLXJlZmVyZW5jZS1yZWFkb25seS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhyZWVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS90aHJlZS1jb2x1bW4vdGhyZWUtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHJlZUNvbHVtblBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy90ZW1wbGF0ZS90aHJlZS1jb2x1bW4tcGFnZS90aHJlZS1jb2x1bW4tcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHdvQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvdHdvLWNvbHVtbi90d28tY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUd29Db2x1bW5QYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvdHdvLWNvbHVtbi1wYWdlL3R3by1jb2x1bW4tcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHdvQ29sdW1uVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvdHdvLWNvbHVtbi10YWIvdHdvLWNvbHVtbi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGVOYXJyb3dGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvd2lkZS1uYXJyb3ctZm9ybS93aWRlLW5hcnJvdy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRlTmFycm93UGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3RlbXBsYXRlL3dpZGUtbmFycm93LXBhZ2Uvd2lkZS1uYXJyb3ctcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV3NzTmF2QmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvdGVtcGxhdGUvd3NzLW5hdi1iYXIvd3NzLW5hdi1iYXIuY29tcG9uZW50JztcblxuLy8gV2lkZ2V0IGNvbXBvbmVudHNcbmltcG9ydCB7IEFwcEFubm91bmNlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9hcHAtYW5ub3VuY2VtZW50L2FwcC1hbm5vdW5jZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEF0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy93aWRnZXQvYXR0YWNobWVudC9hdHRhY2htZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlSGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9jYXNlLWhpc3RvcnkvY2FzZS1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9maWxlLXV0aWxpdHkvZmlsZS11dGlsaXR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvd2lkZ2V0L2ZlZWQtY29udGFpbmVyL2ZlZWQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0VXRpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9saXN0LXV0aWxpdHkvbGlzdC11dGlsaXR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWlja0NyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL3dpZGdldC9xdWljay1jcmVhdGUvcXVpY2stY3JlYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2RvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvd2lkZ2V0L3RvZG8vdG9kby5jb21wb25lbnQnO1xuXG4vLyBEZXNpZ24gU3lzdGVtIGNvbXBvbmVudHNcbmltcG9ydCB7IEFsZXJ0QmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2FsZXJ0LWJhbm5lci9hbGVydC1iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUNyZWF0ZVN0YWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2Nhc2UtY3JlYXRlLXN0YWdlL2Nhc2UtY3JlYXRlLXN0YWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbENhc2VTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL21hdGVyaWFsLWNhc2Utc3VtbWFyeS9tYXRlcmlhbC1jYXNlLXN1bW1hcnkuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC1kZXRhaWxzL21hdGVyaWFsLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsRGV0YWlsc0ZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC1kZXRhaWxzLWZpZWxkcy9tYXRlcmlhbC1kZXRhaWxzLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxTdW1tYXJ5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC1zdW1tYXJ5LWl0ZW0vbWF0ZXJpYWwtc3VtbWFyeS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbFN1bW1hcnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL21hdGVyaWFsLXN1bW1hcnktbGlzdC9tYXRlcmlhbC1zdW1tYXJ5LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9tYXRlcmlhbC11dGlsaXR5L21hdGVyaWFsLXV0aWxpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsVmVydGljYWxUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL21hdGVyaWFsLXZlcnRpY2FsLXRhYnMvbWF0ZXJpYWwtdmVydGljYWwtdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3BlcmF0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9kZXNpZ25TeXN0ZW1FeHRlbnNpb24vb3BlcmF0b3Ivb3BlcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFB1bHNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL3B1bHNlL3B1bHNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9yaWNoLXRleHQtZWRpdG9yL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdzc1F1aWNrQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL3dzcy1xdWljay1jcmVhdGUvd3NzLXF1aWNrLWNyZWF0ZS5jb21wb25lbnQnO1xuXG4vLyBwZWdhU2RrQ29tcG9uZW50TWFwIGlzIHRoZSBKU09OIG9iamVjdCB3aGVyZSB3ZSdsbCBzdG9yZSB0aGUgY29tcG9uZW50cyB0aGF0IGFyZVxuLy8gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIHByb3ZpZGVkIGJ5IHRoZSBTREsuIFRoZXNlIHdpbGwgYmUgdXNlZCBpZiB0aGVyZSBpc24ndFxuLy8gYW4gZW50cnkgaW4gdGhlIGxvY2FsU2RrQ29tcG9uZW50TWFwXG5cbi8vIE5PVEU6IEEgZmV3IGNvbXBvbmVudHMgaGF2ZSBub24tc3RhbmRhcmQgY2FwaXRhbGl6YXRpb246XG4vLyAgJ3JlZmVyZW5jZScgaXMgd2hhdCdzIGluIHRoZSBtZXRhZGF0YSwgbm90IFJlZmVyZW5jZVxuLy8gICdUb2RvJyBpcyB3aGF0J3MgaW4gdGhlIG1ldGFkYXRhLCBub3QgVG9Eb1xuLy8gIEFsc28sIG5vdGUgdGhhdCBcIkNoZWNrYm94XCIgY29tcG9uZW50IGlzIG5hbWVkL2V4cG9ydGVkIGFzIENoZWNrYm94Q29tcG9uZW50XG5cbmNvbnN0IHBlZ2FTZGtDb21wb25lbnRNYXAgPSB7XG4gIEFjdGlvbkJ1dHRvbnM6IEFjdGlvbkJ1dHRvbnNDb21wb25lbnQsXG4gIEFsZXJ0OiBBbGVydENvbXBvbmVudCxcbiAgQWxlcnRCYW5uZXI6IEFsZXJ0QmFubmVyQ29tcG9uZW50LFxuICAvLyAgICdBY3Rpb25CdXR0b25zRm9yRmlsZVV0aWwnOiBBY3Rpb25CdXR0b25zRm9yRmlsZVV0aWwsXG4gIEFwcEFubm91bmNlbWVudDogQXBwQW5ub3VuY2VtZW50Q29tcG9uZW50LFxuICBBcHBTaGVsbDogQXBwU2hlbGxDb21wb25lbnQsXG4gIEFzc2lnbm1lbnQ6IEFzc2lnbm1lbnRDb21wb25lbnQsXG4gIEFzc2lnbm1lbnRDYXJkOiBBc3NpZ25tZW50Q2FyZENvbXBvbmVudCxcbiAgQXR0YWNobWVudDogQXR0YWNobWVudENvbXBvbmVudCxcbiAgQXV0b0NvbXBsZXRlOiBBdXRvQ29tcGxldGVDb21wb25lbnQsXG4gIEJhbm5lcjogQmFubmVyQ29tcG9uZW50LFxuICBCYW5uZXJQYWdlOiBCYW5uZXJQYWdlQ29tcG9uZW50LFxuICBDYW5jZWxBbGVydDogQ2FuY2VsQWxlcnRDb21wb25lbnQsXG4gIENhc2VDcmVhdGVTdGFnZTogQ2FzZUNyZWF0ZVN0YWdlQ29tcG9uZW50LFxuICBDYXNlSGlzdG9yeTogQ2FzZUhpc3RvcnlDb21wb25lbnQsXG4gIENhc2VTdW1tYXJ5OiBDYXNlU3VtbWFyeUNvbXBvbmVudCxcbiAgQ2FzZVN1bW1hcnlGaWVsZHM6IE1hdGVyaWFsQ2FzZVN1bW1hcnlDb21wb25lbnQsXG4gIENhc2VWaWV3OiBDYXNlVmlld0NvbXBvbmVudCxcbiAgLy8gICAnQ2FzZVZpZXdBY3Rpb25zTWVudSc6IENhc2VWaWV3QWN0aW9uc01lbnUsXG4gIENoZWNrYm94OiBDaGVja0JveENvbXBvbmVudCxcbiAgQ29uZmlybWF0aW9uOiBDb25maXJtYXRpb25Db21wb25lbnQsXG4gIEN1cnJlbmN5OiBDdXJyZW5jeUNvbXBvbmVudCxcbiAgRGFzaGJvYXJkRmlsdGVyOiBEYXNoYm9hcmRGaWx0ZXJDb21wb25lbnQsXG4gIERhdGFSZWZlcmVuY2U6IERhdGFSZWZlcmVuY2VDb21wb25lbnQsXG4gIERhdGU6IERhdGVDb21wb25lbnQsXG4gIERhdGVUaW1lOiBEYXRlVGltZUNvbXBvbmVudCxcbiAgRGVjaW1hbDogRGVjaW1hbENvbXBvbmVudCxcbiAgRGVmYXVsdEZvcm06IERlZmF1bHRGb3JtQ29tcG9uZW50LFxuICBEZWZlckxvYWQ6IERlZmVyTG9hZENvbXBvbmVudCxcbiAgRGV0YWlsczogRGV0YWlsc0NvbXBvbmVudCxcbiAgRGV0YWlsc0ZpZWxkczogTWF0ZXJpYWxEZXRhaWxzRmllbGRzQ29tcG9uZW50LFxuICBEZXRhaWxzT25lQ29sdW1uOiBEZXRhaWxzT25lQ29sdW1uQ29tcG9uZW50LFxuICBEZXRhaWxzU3ViVGFiczogRGV0YWlsc1N1YlRhYnNDb21wb25lbnQsXG4gIERldGFpbHNUaHJlZUNvbHVtbjogRGV0YWlsc1RocmVlQ29sdW1uQ29tcG9uZW50LFxuICBEZXRhaWxzVHdvQ29sdW1uOiBEZXRhaWxzVHdvQ29sdW1uQ29tcG9uZW50LFxuICBEcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsXG4gIER5bmFtaWNUYWJzOiBEeW5hbWljVGFic0NvbXBvbmVudCxcbiAgRW1haWw6IEVtYWlsQ29tcG9uZW50LFxuICBFcnJvckJvdW5kYXJ5OiBFcnJvckJvdW5kYXJ5Q29tcG9uZW50LFxuICBGZWVkQ29udGFpbmVyOiBGZWVkQ29udGFpbmVyQ29tcG9uZW50LFxuICBGaWVsZEdyb3VwOiBGaWVsZEdyb3VwQ29tcG9uZW50LFxuICBGaWVsZEdyb3VwTGlzdDogRmllbGRHcm91cExpc3RDb21wb25lbnQsXG4gIEZpZWxkR3JvdXBUZW1wbGF0ZTogRmllbGRHcm91cFRlbXBsYXRlQ29tcG9uZW50LFxuICBGaWVsZFZhbHVlTGlzdDogRmllbGRWYWx1ZUxpc3RDb21wb25lbnQsXG4gIEZpbGVVdGlsaXR5OiBGaWxlVXRpbGl0eUNvbXBvbmVudCxcbiAgRmxvd0NvbnRhaW5lcjogRmxvd0NvbnRhaW5lckNvbXBvbmVudCxcbiAgR3JvdXA6IEdyb3VwQ29tcG9uZW50LFxuICAvLyAgICdGb2xsb3dlcnMnOiBGb2xsb3dlcnMsXG4gIElubGluZURhc2hib2FyZDogSW5saW5lRGFzaGJvYXJkQ29tcG9uZW50LFxuICBJbmxpbmVEYXNoYm9hcmRQYWdlOiBJbmxpbmVEYXNoYm9hcmRQYWdlQ29tcG9uZW50LFxuICBJbnRlZ2VyOiBJbnRlZ2VyQ29tcG9uZW50LFxuICAvLyAgICdMZWZ0QWxpZ25WZXJ0aWNhbFRhYnMnOiBMZWZ0QWxpZ25WZXJ0aWNhbFRhYnMsXG4gIExpc3RQYWdlOiBMaXN0UGFnZUNvbXBvbmVudCxcbiAgTGlzdFV0aWxpdHk6IExpc3RVdGlsaXR5Q29tcG9uZW50LFxuICBMaXN0VmlldzogTGlzdFZpZXdDb21wb25lbnQsXG4gIExpc3RWaWV3QWN0aW9uQnV0dG9uczogTGlzdFZpZXdBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxuICBNYXRlcmlhbERldGFpbHM6IE1hdGVyaWFsRGV0YWlsc0NvbXBvbmVudCxcbiAgTWF0ZXJpYWxVdGlsaXR5OiBNYXRlcmlhbFV0aWxpdHlDb21wb25lbnQsXG4gIE1vZGFsVmlld0NvbnRhaW5lcjogTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICBNdWx0aVJlZmVyZW5jZVJlYWRPbmx5OiBNdWx0aVJlZmVyZW5jZVJlYWRvbmx5Q29tcG9uZW50LFxuICBNdWx0aXNlbGVjdDogTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gIE11bHRpU3RlcDogTXVsdGlTdGVwQ29tcG9uZW50LFxuICAvLyAgICdOYXJyb3dXaWRlJzogTmFycm93V2lkZUZvcm1Db21wb25lbnQsXG4gIE5hcnJvd1dpZGVEZXRhaWxzOiBEZXRhaWxzTmFycm93V2lkZUNvbXBvbmVudCxcbiAgTmFycm93V2lkZUZvcm06IE5hcnJvd1dpZGVGb3JtQ29tcG9uZW50LFxuICAvLyAgICdOYXJyb3dXaWRlUGFnZSc6IE5hcnJvd1dpZGVQYWdlLFxuICBOYXZCYXI6IE5hdmJhckNvbXBvbmVudCxcbiAgT25lQ29sdW1uOiBPbmVDb2x1bW5Db21wb25lbnQsXG4gIE9uZUNvbHVtblBhZ2U6IE9uZUNvbHVtblBhZ2VDb21wb25lbnQsXG4gIE9uZUNvbHVtblRhYjogT25lQ29sdW1uVGFiQ29tcG9uZW50LFxuICBPcGVyYXRvcjogT3BlcmF0b3JDb21wb25lbnQsXG4gIFBhZ2U6IFBhZ2VDb21wb25lbnQsXG4gIFBlcmNlbnRhZ2U6IFBlcmNlbnRhZ2VDb21wb25lbnQsXG4gIFBob25lOiBQaG9uZUNvbXBvbmVudCxcbiAgUHJvbW90ZWRGaWx0ZXJzOiBQcm9tb3RlZEZpbHRlcnNDb21wb25lbnQsXG4gIFB1bHNlOiBQdWxzZUNvbXBvbmVudCxcbiAgUXVpY2tDcmVhdGU6IFF1aWNrQ3JlYXRlQ29tcG9uZW50LFxuICByZWZlcmVuY2U6IFJlZmVyZW5jZUNvbXBvbmVudCxcbiAgUmFkaW9CdXR0b25zOiBSYWRpb0J1dHRvbnNDb21wb25lbnQsXG4gIFJlZ2lvbjogUmVnaW9uQ29tcG9uZW50LFxuICBSaWNoVGV4dDogUmljaFRleHRDb21wb25lbnQsXG4gIFJpY2hUZXh0RWRpdG9yOiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgUm9vdENvbnRhaW5lcjogUm9vdENvbnRhaW5lckNvbXBvbmVudCxcbiAgU2NhbGFyTGlzdDogU2NhbGFyTGlzdENvbXBvbmVudCxcbiAgU2VtYW50aWNMaW5rOiBTZW1hbnRpY0xpbmtDb21wb25lbnQsXG4gIFNpbXBsZVRhYmxlOiBTaW1wbGVUYWJsZUNvbXBvbmVudCxcbiAgU2ltcGxlVGFibGVNYW51YWw6IFNpbXBsZVRhYmxlTWFudWFsQ29tcG9uZW50LFxuICBTaW1wbGVUYWJsZVNlbGVjdDogU2ltcGxlVGFibGVTZWxlY3RDb21wb25lbnQsXG4gIFNpbmdsZVJlZmVyZW5jZVJlYWRPbmx5OiBTaW5nbGVSZWZlcmVuY2VSZWFkb25seUNvbXBvbmVudCxcbiAgU3RhZ2VzOiBTdGFnZXNDb21wb25lbnQsXG4gIFN1YlRhYnM6IFN1YlRhYnNDb21wb25lbnQsXG4gIFN1bW1hcnlJdGVtOiBNYXRlcmlhbFN1bW1hcnlJdGVtQ29tcG9uZW50LFxuICBTdW1tYXJ5TGlzdDogTWF0ZXJpYWxTdW1tYXJ5TGlzdENvbXBvbmVudCxcbiAgVGV4dDogVGV4dENvbXBvbmVudCxcbiAgVGV4dEFyZWE6IFRleHRBcmVhQ29tcG9uZW50LFxuICBUZXh0Q29udGVudDogVGV4dENvbnRlbnRDb21wb25lbnQsXG4gIFRleHRJbnB1dDogVGV4dElucHV0Q29tcG9uZW50LFxuICBUaHJlZUNvbHVtbjogVGhyZWVDb2x1bW5Db21wb25lbnQsXG4gIFRocmVlQ29sdW1uUGFnZTogVGhyZWVDb2x1bW5QYWdlQ29tcG9uZW50LFxuICBUaW1lOiBUaW1lQ29tcG9uZW50LFxuICBUb2RvOiBUb2RvQ29tcG9uZW50LFxuICBUd29Db2x1bW46IFR3b0NvbHVtbkNvbXBvbmVudCxcbiAgVHdvQ29sdW1uUGFnZTogVHdvQ29sdW1uUGFnZUNvbXBvbmVudCxcbiAgVHdvQ29sdW1uVGFiOiBUd29Db2x1bW5UYWJDb21wb25lbnQsXG4gIFVSTDogVXJsQ29tcG9uZW50LFxuICBVc2VyUmVmZXJlbmNlOiBVc2VyUmVmZXJlbmNlQ29tcG9uZW50LFxuICBWZXJ0aWNhbFRhYnM6IE1hdGVyaWFsVmVydGljYWxUYWJzQ29tcG9uZW50LFxuICBWaWV3OiBWaWV3Q29tcG9uZW50LFxuICBWaWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAvLyAgICdXaWRlTmFycm93JzogV2lkZU5hcnJvdyxcbiAgV2lkZU5hcnJvd0RldGFpbHM6IERldGFpbHNXaWRlTmFycm93Q29tcG9uZW50LFxuICBXaWRlTmFycm93Rm9ybTogV2lkZU5hcnJvd0Zvcm1Db21wb25lbnQsXG4gIFdpZGVOYXJyb3dQYWdlOiBXaWRlTmFycm93UGFnZUNvbXBvbmVudCxcbiAgV3NzTmF2QmFyOiBXc3NOYXZCYXJDb21wb25lbnQsXG4gIFdzc1F1aWNrQ3JlYXRlOiBXc3NRdWlja0NyZWF0ZUNvbXBvbmVudFxufTtcblxuZXhwb3J0IGRlZmF1bHQgcGVnYVNka0NvbXBvbmVudE1hcDtcbiJdfQ==
@@ -139,4 +139,4 @@ export function getComponentFromMap(inComponentName) {
139
139
  }
140
140
  return theComponentImplementation;
141
141
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrX2NvbXBvbmVudF9tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2JyaWRnZS9oZWxwZXJzL3Nka19jb21wb25lbnRfbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxnQ0FBZ0M7QUFDaEMsdUVBQXVFO0FBQ3ZFLE9BQU8sbUJBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QseUNBQXlDO0FBRXpDLDhGQUE4RjtBQUM5RixtR0FBbUc7QUFDbkcsK0ZBQStGO0FBQy9GLHFEQUFxRDtBQUNyRCxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUM7QUFDM0IsSUFBSSwrQkFBK0IsR0FBRyxLQUFLLENBQUM7QUFPNUMsTUFBTSxZQUFZO0lBSWhCO1FBMkRBLHlCQUFvQixHQUFHLEdBQUcsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7UUFDaEQsQ0FBQyxDQUFDO1FBT0YsZ0NBQTJCLEdBQUcsR0FBRyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztRQUN2RCxDQUFDLENBQUM7UUFFRixnQ0FBMkIsR0FBRywwQkFBMEIsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLEdBQUcsMEJBQTBCLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQTFFQSxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUUvRSxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUVsQyx1RkFBdUY7UUFDdkYsMERBQTBE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QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGVBQXVCO0lBQ3pELElBQUksMEJBQTBCLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEYsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUU7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsZUFBZSxTQUFTLENBQUMsQ0FBQztRQUNuRSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztLQUNoRDtTQUFNO1FBQ0wsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRyxJQUFJLHdCQUF3QixLQUFLLFNBQVMsRUFBRTtZQUMxQyw4RUFBOEU7WUFDOUUsMEJBQTBCLEdBQUcsd0JBQXdCLENBQUM7U0FDdkQ7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkVBQTJFLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDNUcsMEJBQTBCLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkU7S0FDRjtJQUNELE9BQU8sMEJBQTBCLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBzaW5nbGV0b24gY2xhc3MgdG8gYXNzaXN0IHdpdGggbG9hZGluZyBhbmRcbi8vICBhY2Nlc3NpbmcgdGhlIFNESyBjb21wb25lbnRzXG4vLyBpbXBvcnQgbG9jYWxTZGtDb21wb25lbnRNYXAgZnJvbSAnLi4vLi4vLi4vc2RrLWxvY2FsLWNvbXBvbmVudC1tYXAnO1xuaW1wb3J0IHBlZ2FTZGtDb21wb25lbnRNYXAgZnJvbSAnLi9zZGstcGVnYS1jb21wb25lbnQtbWFwJztcblxuLy8gU3RhdGljYWxseSBsb2FkIGFsbCBcImxvY2FsXCIgY29tcG9uZW50c1xuXG4vLyBDcmVhdGUgYSBzaW5nbGV0b24gZm9yIHRoaXMgY2xhc3MgKHdpdGggYXN5bmMgbG9hZGluZyBvZiBjb21wb25lbnRzIG1hcCBmaWxlKSBhbmQgZXhwb3J0IGl0XG4vLyBOb3RlOiBJbml0aWFsaXppbmcgU2RrQ29tcG9uZW50TWFwIHRvIG51bGwgc2VlbXMgdG8gY2F1c2UgbG90cyBvZiBjb21waWxlIGlzc3VlcyB3aXRoIHJlZmVyZW5jZXNcbi8vICB3aXRoaW4gb3RoZXIgY29tcG9uZW50cyBhbmQgdGhlIHZhbHVlIHBvdGVudGlhbGx5IGJlaW5nIG51bGwgKHNvIHRyeSB0byBsZWF2ZSBpdCB1bmRlZmluZWQpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xuZXhwb3J0IGxldCBTZGtDb21wb25lbnRNYXA7XG5sZXQgU2RrQ29tcG9uZW50TWFwQ3JlYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG5pbnRlcmZhY2UgSVNka0NvbXBvbmVudE1hcCB7XG4gIGxvY2FsQ29tcG9uZW50TWFwOiBPYmplY3Q7XG4gIHBlZ2FQcm92aWRlZENvbXBvbmVudE1hcDogT2JqZWN0O1xufVxuXG5jbGFzcyBDb21wb25lbnRNYXAge1xuICBzZGtDb21wb25lbnRNYXA6IElTZGtDb21wb25lbnRNYXA7IC8vIFRvcCBsZXZlbCBvYmplY3RcbiAgaXNDb21wb25lbnRNYXBMb2FkZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gc2RrQ29tcG9uZW50TWFwIGlzIHRvcC1sZXZlbCBvYmplY3RcbiAgICB0aGlzLnNka0NvbXBvbmVudE1hcCA9IHsgbG9jYWxDb21wb25lbnRNYXA6IHt9LCBwZWdhUHJvdmlkZWRDb21wb25lbnRNYXA6IHt9IH07XG5cbiAgICAvLyBpc0NvQ29tcG9uZW50TWFwTG9hZGVkIHdpbGwgYmUgdXBkYXRlZCB0byB0cnVlIGFmdGVyIHRoZSBhc3luYyBsb2FkIGlzIGNvbXBsZXRlXG4gICAgdGhpcy5pc0NvbXBvbmVudE1hcExvYWRlZCA9IGZhbHNlO1xuXG4gICAgLy8gcGVnYVNka0NvbXBvbmVudHMubG9jYWwgaXMgdGhlIEpTT04gb2JqZWN0IHdoZXJlIHdlJ2xsIHN0b3JlIHRoZSBjb21wb25lbnRzIHRoYXQgYXJlXG4gICAgLy8gZm91bmQgbG9jYWxseSBvciBjYW4gYmUgZm91bmQgaW4gdGhlIFBlZ2EtcHJvdmlkZWQgcmVwb1xuICAgIHRoaXMuc2RrQ29tcG9uZW50TWFwLmxvY2FsQ29tcG9uZW50TWFwID0ge307XG5cbiAgICB0aGlzLnNka0NvbXBvbmVudE1hcC5wZWdhUHJvdmlkZWRDb21wb25lbnRNYXAgPSB7fTtcblxuICAgIC8vIFRoZSBcIndvcmtcIiB0byBsb2FkIHRoZSBjb25maWcgZmlsZSBpcyBkb25lIChhc3luY2hyb25vdXNseSkgdmlhIHRoZSBpbml0aWFsaXplXG4gICAgLy8gIChGYWN0b3J5IGZ1bmN0aW9uKSBiZWxvdylcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXMgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbmZpZyBmaWxlIGNvbnRlbnRzLlxuICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIGNvbmZpZyBmaWxlIGZldGNoXG4gICAqL1xuICBhc3luYyByZWFkU2RrQ29tcG9uZW50TWFwKGluTG9jYWxTZGtDb21wb25lbnRNYXAgPSB7fSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXApLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnNka0NvbXBvbmVudE1hcC5wZWdhUHJvdmlkZWRDb21wb25lbnRNYXApLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHRoZUxvY2FsQ29tcFByb21pc2UgPSB0aGlzLnJlYWRMb2NhbFNka0NvbXBvbmVudE1hcChpbkxvY2FsU2RrQ29tcG9uZW50TWFwKTtcbiAgICAgICAgY29uc3QgdGhlUGVnYUNvbXBQcm9taXNlID0gdGhpcy5yZWFkUGVnYVNka0NvbXBvbmVudE1hcChwZWdhU2RrQ29tcG9uZW50TWFwKTtcblxuICAgICAgICBQcm9taXNlLmFsbChbdGhlTG9jYWxDb21wUHJvbWlzZSwgdGhlUGVnYUNvbXBQcm9taXNlXSlcbiAgICAgICAgICAudGhlbigoLyogcmVzdWx0cyAqLykgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnNka0NvbXBvbmVudE1hcCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgaW4gcmVhZFNka0NvbXBvbmVudE1hcDogJHtlcnJvcn1gKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5zZGtDb21wb25lbnRNYXApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVhZExvY2FsU2RrQ29tcG9uZW50TWFwKGluTG9jYWxTZGtDb21wb25lbnRNYXAgPSB7fSkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLmdldExvY2FsQ29tcG9uZW50TWFwKCkpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXAgPSBpbkxvY2FsU2RrQ29tcG9uZW50TWFwO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgcmVhZFBlZ2FTZGtDb21wb25lbnRNYXAoaW5QZWdhU2RrQ29tcG9uZW50TWFwID0ge30pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoT2JqZWN0LmVudHJpZXModGhpcy5nZXRQZWdhUHJvdmlkZWRDb21wb25lbnRNYXAoKSkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNka0NvbXBvbmVudE1hcC5wZWdhUHJvdmlkZWRDb21wb25lbnRNYXAgPSBpblBlZ2FTZGtDb21wb25lbnRNYXA7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcyk7XG4gIH1cblxuICBnZXRMb2NhbENvbXBvbmVudE1hcCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXA7XG4gIH07XG5cbiAgc2V0TG9jYWxDb21wb25lbnRNYXAoaW5Mb2NhbFNka0NvbXBvbmVudE1hcCkge1xuICAgIHRoaXMuc2RrQ29tcG9uZW50TWFwLmxvY2FsQ29tcG9uZW50TWFwID0gaW5Mb2NhbFNka0NvbXBvbmVudE1hcDtcbiAgICByZXR1cm4gdGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXA7XG4gIH1cblxuICBnZXRQZWdhUHJvdmlkZWRDb21wb25lbnRNYXAgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2RrQ29tcG9uZW50TWFwLnBlZ2FQcm92aWRlZENvbXBvbmVudE1hcDtcbiAgfTtcblxuICBzZXRQZWdhUHJvdmlkZWRDb21wb25lbnRNYXAgPSBpblBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCA9PiB7XG4gICAgdGhpcy5zZGtDb21wb25lbnRNYXAucGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwID0gaW5QZWdhUHJvdmlkZWRDb21wb25lbnRNYXA7XG4gICAgcmV0dXJuIHRoaXMuc2RrQ29tcG9uZW50TWFwLnBlZ2FQcm92aWRlZENvbXBvbmVudE1hcDtcbiAgfTtcbn1cblxuLy8gSW1wbGVtZW50IEZhY3RvcnkgZnVuY3Rpb24gdG8gYWxsb3cgYXN5bmMgbG9hZFxuLy8gIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTkwNTE3OC9hc3luY2hyb25vdXMtb3BlcmF0aW9ucy1pbi1jb25zdHJ1Y3Rvci80OTkwNjA2NCM0OTkwNjA2NCBmb3IgaW5zcGlyYXRpb25cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNka0NvbXBvbmVudE1hcChpbkxvY2FsQ29tcG9uZW50TWFwID0ge30pIHtcbiAgLy8gTm90ZSB0aGF0IG91ciBpbml0aWFsaXplIGZ1bmN0aW9uIHJldHVybnMgYSBwcm9taXNlLi4uXG4gIGNvbnN0IHNpbmdsZXRvbiA9IG5ldyBDb21wb25lbnRNYXAoKTtcbiAgYXdhaXQgc2luZ2xldG9uLnJlYWRTZGtDb21wb25lbnRNYXAoaW5Mb2NhbENvbXBvbmVudE1hcCk7XG4gIHJldHVybiBzaW5nbGV0b247XG59XG5cbi8vIEluaXRpYWxpemUgZXhwb3J0ZWQgU2RrQ29tcG9uZW50TWFwIHN0cnVjdHVyZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNka0NvbXBvbmVudE1hcChpbkxvY2FsQ29tcG9uZW50TWFwID0ge30pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGxldCBpZE5leHRDaGVjaztcbiAgICBpZiAoIVNka0NvbXBvbmVudE1hcCAmJiAhU2RrQ29tcG9uZW50TWFwQ3JlYXRlSW5Qcm9ncmVzcykge1xuICAgICAgU2RrQ29tcG9uZW50TWFwQ3JlYXRlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICBjcmVhdGVTZGtDb21wb25lbnRNYXAoaW5Mb2NhbENvbXBvbmVudE1hcCkudGhlbih0aGVDb21wb25lbnRNYXAgPT4ge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgLy8gS2V5IGluaXRpYWxpemF0aW9uIG9mIFNka0NvbXBvbmVudE1hcFxuICAgICAgICBTZGtDb21wb25lbnRNYXAgPSB0aGVDb21wb25lbnRNYXA7XG4gICAgICAgIFNka0NvbXBvbmVudE1hcENyZWF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coYGdldFNka0NvbXBvbmVudE1hcDogY3JlYXRlZCBTZGtDb21wb25lbnRNYXAgc2luZ2xldG9uYCk7XG4gICAgICAgIC8vIENyZWF0ZSBhbmQgZGlzcGF0Y2ggdGhlIFNka0NvbmZpZ0FjY2Vzc1JlYWR5IGV2ZW50XG4gICAgICAgIC8vICBOb3QgdXNlZCBhbnlwbGFjZSB5ZXQgYnV0IHB1dHRpbmcgaXQgaW4gcGxhY2UgaW4gY2FzZSB3ZSBuZWVkIGl0LlxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnU2RrQ29tcG9uZW50TWFwUmVhZHknLCB7fSk7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShTZGtDb21wb25lbnRNYXAgLyogLnNka0NvbXBvbmVudE1hcCAqLyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZm5DaGVja0ZvckNvbmZpZyA9ICgpID0+IHtcbiAgICAgICAgaWYgKFNka0NvbXBvbmVudE1hcCkge1xuICAgICAgICAgIGlmIChpZE5leHRDaGVjaykge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpZE5leHRDaGVjayk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNvbHZlKFNka0NvbXBvbmVudE1hcC5zZGtDb21wb25lbnRNYXApO1xuICAgICAgICB9XG4gICAgICAgIGlkTmV4dENoZWNrID0gc2V0SW50ZXJ2YWwoZm5DaGVja0ZvckNvbmZpZywgNTAwKTtcbiAgICAgIH07XG4gICAgICBpZiAoU2RrQ29tcG9uZW50TWFwKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9taXNlLWV4ZWN1dG9yLXJldHVyblxuICAgICAgICByZXR1cm4gcmVzb2x2ZShTZGtDb21wb25lbnRNYXAuc2RrQ29tcG9uZW50TWFwKTtcbiAgICAgIH1cbiAgICAgIGlkTmV4dENoZWNrID0gc2V0SW50ZXJ2YWwoZm5DaGVja0ZvckNvbmZpZywgNTAwKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50RnJvbU1hcChpbkNvbXBvbmVudE5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGxldCB0aGVDb21wb25lbnRJbXBsZW1lbnRhdGlvbiA9IG51bGw7XG4gIGNvbnN0IHRoZUxvY2FsQ29tcG9uZW50ID0gU2RrQ29tcG9uZW50TWFwLmdldExvY2FsQ29tcG9uZW50TWFwKClbaW5Db21wb25lbnROYW1lXTtcbiAgaWYgKHRoZUxvY2FsQ29tcG9uZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLmxvZyhgUmVxdWVzdGVkIGNvbXBvbmVudCBmb3VuZCAke2luQ29tcG9uZW50TmFtZX06IExvY2FsYCk7XG4gICAgdGhlQ29tcG9uZW50SW1wbGVtZW50YXRpb24gPSB0aGVMb2NhbENvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0aGVQZWdhUHJvdmlkZWRDb21wb25lbnQgPSBTZGtDb21wb25lbnRNYXAuZ2V0UGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwKClbaW5Db21wb25lbnROYW1lXTtcbiAgICBpZiAodGhlUGVnYVByb3ZpZGVkQ29tcG9uZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBSZXF1ZXN0ZWQgY29tcG9uZW50IGZvdW5kICR7aW5Db21wb25lbnROYW1lfTogUGVnYS1wcm92aWRlZGApO1xuICAgICAgdGhlQ29tcG9uZW50SW1wbGVtZW50YXRpb24gPSB0aGVQZWdhUHJvdmlkZWRDb21wb25lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFJlcXVlc3RlZCBjb21wb25lbnQgaGFzIG5laXRoZXIgTG9jYWwgbm9yIFBlZ2EtcHJvdmlkZWQgaW1wbGVtZW50YXRpb246ICR7aW5Db21wb25lbnROYW1lfWApO1xuICAgICAgdGhlQ29tcG9uZW50SW1wbGVtZW50YXRpb24gPSBnZXRDb21wb25lbnRGcm9tTWFwKCdFcnJvckJvdW5kYXJ5Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGVDb21wb25lbnRJbXBsZW1lbnRhdGlvbjtcbn1cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrX2NvbXBvbmVudF9tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2JyaWRnZS9oZWxwZXJzL3Nka19jb21wb25lbnRfbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxnQ0FBZ0M7QUFDaEMsdUVBQXVFO0FBQ3ZFLE9BQU8sbUJBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QseUNBQXlDO0FBRXpDLDhGQUE4RjtBQUM5RixtR0FBbUc7QUFDbkcsK0ZBQStGO0FBQy9GLHFEQUFxRDtBQUNyRCxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUM7QUFDM0IsSUFBSSwrQkFBK0IsR0FBRyxLQUFLLENBQUM7QUFPNUMsTUFBTSxZQUFZO0lBSWhCO1FBMkRBLHlCQUFvQixHQUFHLEdBQUcsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7UUFDaEQsQ0FBQyxDQUFDO1FBT0YsZ0NBQTJCLEdBQUcsR0FBRyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztRQUN2RCxDQUFDLENBQUM7UUFFRixnQ0FBMkIsR0FBRywwQkFBMEIsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLEdBQUcsMEJBQTBCLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQTFFQSxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUUvRSxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUVsQyx1RkFBdUY7UUFDdkYsMERBQTBE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QUFDLENBQUM7WUFDbEQsQ0FBQztZQUNELFdBQVcsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxlQUF1QjtJQUN6RCxJQUFJLDBCQUEwQixHQUFHLElBQUksQ0FBQztJQUN0QyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xGLElBQUksaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsZUFBZSxTQUFTLENBQUMsQ0FBQztRQUNuRSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztJQUNqRCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLDJCQUEyQixFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEcsSUFBSSx3QkFBd0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyw4RUFBOEU7WUFDOUUsMEJBQTBCLEdBQUcsd0JBQXdCLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLDJFQUEyRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzVHLDBCQUEwQixHQUFHLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTywwQkFBMEIsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSGVscGVyIHNpbmdsZXRvbiBjbGFzcyB0byBhc3Npc3Qgd2l0aCBsb2FkaW5nIGFuZFxuLy8gIGFjY2Vzc2luZyB0aGUgU0RLIGNvbXBvbmVudHNcbi8vIGltcG9ydCBsb2NhbFNka0NvbXBvbmVudE1hcCBmcm9tICcuLi8uLi8uLi9zZGstbG9jYWwtY29tcG9uZW50LW1hcCc7XG5pbXBvcnQgcGVnYVNka0NvbXBvbmVudE1hcCBmcm9tICcuL3Nkay1wZWdhLWNvbXBvbmVudC1tYXAnO1xuXG4vLyBTdGF0aWNhbGx5IGxvYWQgYWxsIFwibG9jYWxcIiBjb21wb25lbnRzXG5cbi8vIENyZWF0ZSBhIHNpbmdsZXRvbiBmb3IgdGhpcyBjbGFzcyAod2l0aCBhc3luYyBsb2FkaW5nIG9mIGNvbXBvbmVudHMgbWFwIGZpbGUpIGFuZCBleHBvcnQgaXRcbi8vIE5vdGU6IEluaXRpYWxpemluZyBTZGtDb21wb25lbnRNYXAgdG8gbnVsbCBzZWVtcyB0byBjYXVzZSBsb3RzIG9mIGNvbXBpbGUgaXNzdWVzIHdpdGggcmVmZXJlbmNlc1xuLy8gIHdpdGhpbiBvdGhlciBjb21wb25lbnRzIGFuZCB0aGUgdmFsdWUgcG90ZW50aWFsbHkgYmVpbmcgbnVsbCAoc28gdHJ5IHRvIGxlYXZlIGl0IHVuZGVmaW5lZClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzXG5leHBvcnQgbGV0IFNka0NvbXBvbmVudE1hcDtcbmxldCBTZGtDb21wb25lbnRNYXBDcmVhdGVJblByb2dyZXNzID0gZmFsc2U7XG5cbmludGVyZmFjZSBJU2RrQ29tcG9uZW50TWFwIHtcbiAgbG9jYWxDb21wb25lbnRNYXA6IE9iamVjdDtcbiAgcGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwOiBPYmplY3Q7XG59XG5cbmNsYXNzIENvbXBvbmVudE1hcCB7XG4gIHNka0NvbXBvbmVudE1hcDogSVNka0NvbXBvbmVudE1hcDsgLy8gVG9wIGxldmVsIG9iamVjdFxuICBpc0NvbXBvbmVudE1hcExvYWRlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBzZGtDb21wb25lbnRNYXAgaXMgdG9wLWxldmVsIG9iamVjdFxuICAgIHRoaXMuc2RrQ29tcG9uZW50TWFwID0geyBsb2NhbENvbXBvbmVudE1hcDoge30sIHBlZ2FQcm92aWRlZENvbXBvbmVudE1hcDoge30gfTtcblxuICAgIC8vIGlzQ29Db21wb25lbnRNYXBMb2FkZWQgd2lsbCBiZSB1cGRhdGVkIHRvIHRydWUgYWZ0ZXIgdGhlIGFzeW5jIGxvYWQgaXMgY29tcGxldGVcbiAgICB0aGlzLmlzQ29tcG9uZW50TWFwTG9hZGVkID0gZmFsc2U7XG5cbiAgICAvLyBwZWdhU2RrQ29tcG9uZW50cy5sb2NhbCBpcyB0aGUgSlNPTiBvYmplY3Qgd2hlcmUgd2UnbGwgc3RvcmUgdGhlIGNvbXBvbmVudHMgdGhhdCBhcmVcbiAgICAvLyBmb3VuZCBsb2NhbGx5IG9yIGNhbiBiZSBmb3VuZCBpbiB0aGUgUGVnYS1wcm92aWRlZCByZXBvXG4gICAgdGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXAgPSB7fTtcblxuICAgIHRoaXMuc2RrQ29tcG9uZW50TWFwLnBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCA9IHt9O1xuXG4gICAgLy8gVGhlIFwid29ya1wiIHRvIGxvYWQgdGhlIGNvbmZpZyBmaWxlIGlzIGRvbmUgKGFzeW5jaHJvbm91c2x5KSB2aWEgdGhlIGluaXRpYWxpemVcbiAgICAvLyAgKEZhY3RvcnkgZnVuY3Rpb24pIGJlbG93KVxuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91cyBpbml0aWFsaXphdGlvbiBvZiB0aGUgY29uZmlnIGZpbGUgY29udGVudHMuXG4gICAqIEByZXR1cm5zIFByb21pc2Ugb2YgY29uZmlnIGZpbGUgZmV0Y2hcbiAgICovXG4gIGFzeW5jIHJlYWRTZGtDb21wb25lbnRNYXAoaW5Mb2NhbFNka0NvbXBvbmVudE1hcCA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnNka0NvbXBvbmVudE1hcC5sb2NhbENvbXBvbmVudE1hcCkubGVuZ3RoID09PSAwICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuc2RrQ29tcG9uZW50TWFwLnBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCkubGVuZ3RoID09PSAwXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgdGhlTG9jYWxDb21wUHJvbWlzZSA9IHRoaXMucmVhZExvY2FsU2RrQ29tcG9uZW50TWFwKGluTG9jYWxTZGtDb21wb25lbnRNYXApO1xuICAgICAgICBjb25zdCB0aGVQZWdhQ29tcFByb21pc2UgPSB0aGlzLnJlYWRQZWdhU2RrQ29tcG9uZW50TWFwKHBlZ2FTZGtDb21wb25lbnRNYXApO1xuXG4gICAgICAgIFByb21pc2UuYWxsKFt0aGVMb2NhbENvbXBQcm9taXNlLCB0aGVQZWdhQ29tcFByb21pc2VdKVxuICAgICAgICAgIC50aGVuKCgvKiByZXN1bHRzICovKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuc2RrQ29tcG9uZW50TWFwKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBpbiByZWFkU2RrQ29tcG9uZW50TWFwOiAke2Vycm9yfWApO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLnNka0NvbXBvbmVudE1hcCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZWFkTG9jYWxTZGtDb21wb25lbnRNYXAoaW5Mb2NhbFNka0NvbXBvbmVudE1hcCA9IHt9KSB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgaWYgKE9iamVjdC5lbnRyaWVzKHRoaXMuZ2V0TG9jYWxDb21wb25lbnRNYXAoKSkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNka0NvbXBvbmVudE1hcC5sb2NhbENvbXBvbmVudE1hcCA9IGluTG9jYWxTZGtDb21wb25lbnRNYXA7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcyk7XG4gIH1cblxuICBhc3luYyByZWFkUGVnYVNka0NvbXBvbmVudE1hcChpblBlZ2FTZGtDb21wb25lbnRNYXAgPSB7fSkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLmdldFBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCgpKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2RrQ29tcG9uZW50TWFwLnBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCA9IGluUGVnYVNka0NvbXBvbmVudE1hcDtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzKTtcbiAgfVxuXG4gIGdldExvY2FsQ29tcG9uZW50TWFwID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNka0NvbXBvbmVudE1hcC5sb2NhbENvbXBvbmVudE1hcDtcbiAgfTtcblxuICBzZXRMb2NhbENvbXBvbmVudE1hcChpbkxvY2FsU2RrQ29tcG9uZW50TWFwKSB7XG4gICAgdGhpcy5zZGtDb21wb25lbnRNYXAubG9jYWxDb21wb25lbnRNYXAgPSBpbkxvY2FsU2RrQ29tcG9uZW50TWFwO1xuICAgIHJldHVybiB0aGlzLnNka0NvbXBvbmVudE1hcC5sb2NhbENvbXBvbmVudE1hcDtcbiAgfVxuXG4gIGdldFBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZGtDb21wb25lbnRNYXAucGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwO1xuICB9O1xuXG4gIHNldFBlZ2FQcm92aWRlZENvbXBvbmVudE1hcCA9IGluUGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwID0+IHtcbiAgICB0aGlzLnNka0NvbXBvbmVudE1hcC5wZWdhUHJvdmlkZWRDb21wb25lbnRNYXAgPSBpblBlZ2FQcm92aWRlZENvbXBvbmVudE1hcDtcbiAgICByZXR1cm4gdGhpcy5zZGtDb21wb25lbnRNYXAucGVnYVByb3ZpZGVkQ29tcG9uZW50TWFwO1xuICB9O1xufVxuXG4vLyBJbXBsZW1lbnQgRmFjdG9yeSBmdW5jdGlvbiB0byBhbGxvdyBhc3luYyBsb2FkXG4vLyAgU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5OTA1MTc4L2FzeW5jaHJvbm91cy1vcGVyYXRpb25zLWluLWNvbnN0cnVjdG9yLzQ5OTA2MDY0IzQ5OTA2MDY0IGZvciBpbnNwaXJhdGlvblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2RrQ29tcG9uZW50TWFwKGluTG9jYWxDb21wb25lbnRNYXAgPSB7fSkge1xuICAvLyBOb3RlIHRoYXQgb3VyIGluaXRpYWxpemUgZnVuY3Rpb24gcmV0dXJucyBhIHByb21pc2UuLi5cbiAgY29uc3Qgc2luZ2xldG9uID0gbmV3IENvbXBvbmVudE1hcCgpO1xuICBhd2FpdCBzaW5nbGV0b24ucmVhZFNka0NvbXBvbmVudE1hcChpbkxvY2FsQ29tcG9uZW50TWFwKTtcbiAgcmV0dXJuIHNpbmdsZXRvbjtcbn1cblxuLy8gSW5pdGlhbGl6ZSBleHBvcnRlZCBTZGtDb21wb25lbnRNYXAgc3RydWN0dXJlXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2RrQ29tcG9uZW50TWFwKGluTG9jYWxDb21wb25lbnRNYXAgPSB7fSkge1xuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgbGV0IGlkTmV4dENoZWNrO1xuICAgIGlmICghU2RrQ29tcG9uZW50TWFwICYmICFTZGtDb21wb25lbnRNYXBDcmVhdGVJblByb2dyZXNzKSB7XG4gICAgICBTZGtDb21wb25lbnRNYXBDcmVhdGVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIGNyZWF0ZVNka0NvbXBvbmVudE1hcChpbkxvY2FsQ29tcG9uZW50TWFwKS50aGVuKHRoZUNvbXBvbmVudE1hcCA9PiB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAvLyBLZXkgaW5pdGlhbGl6YXRpb24gb2YgU2RrQ29tcG9uZW50TWFwXG4gICAgICAgIFNka0NvbXBvbmVudE1hcCA9IHRoZUNvbXBvbmVudE1hcDtcbiAgICAgICAgU2RrQ29tcG9uZW50TWFwQ3JlYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICBjb25zb2xlLmxvZyhgZ2V0U2RrQ29tcG9uZW50TWFwOiBjcmVhdGVkIFNka0NvbXBvbmVudE1hcCBzaW5nbGV0b25gKTtcbiAgICAgICAgLy8gQ3JlYXRlIGFuZCBkaXNwYXRjaCB0aGUgU2RrQ29uZmlnQWNjZXNzUmVhZHkgZXZlbnRcbiAgICAgICAgLy8gIE5vdCB1c2VkIGFueXBsYWNlIHlldCBidXQgcHV0dGluZyBpdCBpbiBwbGFjZSBpbiBjYXNlIHdlIG5lZWQgaXQuXG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdTZGtDb21wb25lbnRNYXBSZWFkeScsIHt9KTtcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFNka0NvbXBvbmVudE1hcCAvKiAuc2RrQ29tcG9uZW50TWFwICovKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmbkNoZWNrRm9yQ29uZmlnID0gKCkgPT4ge1xuICAgICAgICBpZiAoU2RrQ29tcG9uZW50TWFwKSB7XG4gICAgICAgICAgaWYgKGlkTmV4dENoZWNrKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKGlkTmV4dENoZWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoU2RrQ29tcG9uZW50TWFwLnNka0NvbXBvbmVudE1hcCk7XG4gICAgICAgIH1cbiAgICAgICAgaWROZXh0Q2hlY2sgPSBzZXRJbnRlcnZhbChmbkNoZWNrRm9yQ29uZmlnLCA1MDApO1xuICAgICAgfTtcbiAgICAgIGlmIChTZGtDb21wb25lbnRNYXApIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuXG4gICAgICAgIHJldHVybiByZXNvbHZlKFNka0NvbXBvbmVudE1hcC5zZGtDb21wb25lbnRNYXApO1xuICAgICAgfVxuICAgICAgaWROZXh0Q2hlY2sgPSBzZXRJbnRlcnZhbChmbkNoZWNrRm9yQ29uZmlnLCA1MDApO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnRGcm9tTWFwKGluQ29tcG9uZW50TmFtZTogc3RyaW5nKTogYW55IHtcbiAgbGV0IHRoZUNvbXBvbmVudEltcGxlbWVudGF0aW9uID0gbnVsbDtcbiAgY29uc3QgdGhlTG9jYWxDb21wb25lbnQgPSBTZGtDb21wb25lbnRNYXAuZ2V0TG9jYWxDb21wb25lbnRNYXAoKVtpbkNvbXBvbmVudE5hbWVdO1xuICBpZiAodGhlTG9jYWxDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUubG9nKGBSZXF1ZXN0ZWQgY29tcG9uZW50IGZvdW5kICR7aW5Db21wb25lbnROYW1lfTogTG9jYWxgKTtcbiAgICB0aGVDb21wb25lbnRJbXBsZW1lbnRhdGlvbiA9IHRoZUxvY2FsQ29tcG9uZW50O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHRoZVBlZ2FQcm92aWRlZENvbXBvbmVudCA9IFNka0NvbXBvbmVudE1hcC5nZXRQZWdhUHJvdmlkZWRDb21wb25lbnRNYXAoKVtpbkNvbXBvbmVudE5hbWVdO1xuICAgIGlmICh0aGVQZWdhUHJvdmlkZWRDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFJlcXVlc3RlZCBjb21wb25lbnQgZm91bmQgJHtpbkNvbXBvbmVudE5hbWV9OiBQZWdhLXByb3ZpZGVkYCk7XG4gICAgICB0aGVDb21wb25lbnRJbXBsZW1lbnRhdGlvbiA9IHRoZVBlZ2FQcm92aWRlZENvbXBvbmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgUmVxdWVzdGVkIGNvbXBvbmVudCBoYXMgbmVpdGhlciBMb2NhbCBub3IgUGVnYS1wcm92aWRlZCBpbXBsZW1lbnRhdGlvbjogJHtpbkNvbXBvbmVudE5hbWV9YCk7XG4gICAgICB0aGVDb21wb25lbnRJbXBsZW1lbnRhdGlvbiA9IGdldENvbXBvbmVudEZyb21NYXAoJ0Vycm9yQm91bmRhcnknKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoZUNvbXBvbmVudEltcGxlbWVudGF0aW9uO1xufVxuIl19
@@ -32,10 +32,10 @@ export class AlertComponent {
32
32
  alert('Close clicked');
33
33
  this.onClose.emit({ Page: 'Page', target: 'target', type: 'type' });
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AlertComponent, isStandalone: true, selector: "app-alert", inputs: { message: "message", severity: "severity", hideClose: "hideClose" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div\n class=\"psdk-alert\"\n [ngClass]=\"{\n 'psdk-alert-error': severity === 'error',\n 'psdk-grid-warning': severity === 'warning',\n 'psdk-grid-success': severity === 'success',\n 'psdk-grid-info': severity === 'info'\n }\"\n>\n <div class=\"psdk-alert-icon\">\n <mat-icon>{{ getMatIcon(severity) }}</mat-icon>\n </div>\n <div>{{ message }}</div>\n <div *ngIf=\"!hideClose\" style=\"margin-left: auto\">\n <button class=\"close-button\" mat-icon-button (click)=\"onCloseClick()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".psdk-alert{border:1px solid;display:flex;align-items:center;border-radius:4px;padding:10px;margin:5px 0}.psdk-alert-icon{display:flex;align-items:center;margin-right:10px}.psdk-alert-error{color:var(--app-alert-error-color);border:1px solid var(--app-alert-error-border-color)}.psdk-alert-error .mat-icon{color:var(--app-alert-error-border-color)}.psdk-grid-warning{color:var(--app-alert-warning-color);border:1px solid var(--app-alert-warning-border-color)}.psdk-grid-warning .mat-icon{color:var(--app-alert-warning-border-color)}.psdk-grid-success{color:var(--app-alert-success-color);border:1px solid var(--app-alert-success-border-color)}.psdk-grid-success .mat-icon{color:var(--app-alert-success-border-color)}.psdk-grid-info{color:var(--app-alert-info-color);border:1px solid var(--app-alert-info-border-color)}.psdk-grid-info .mat-icon{color:var(--app-alert-info-border-color)}.close-button{background:none;border:none;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AlertComponent, isStandalone: true, selector: "app-alert", inputs: { message: "message", severity: "severity", hideClose: "hideClose" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div\n class=\"psdk-alert\"\n [ngClass]=\"{\n 'psdk-alert-error': severity === 'error',\n 'psdk-grid-warning': severity === 'warning',\n 'psdk-grid-success': severity === 'success',\n 'psdk-grid-info': severity === 'info'\n }\"\n>\n <div class=\"psdk-alert-icon\">\n <mat-icon>{{ getMatIcon(severity) }}</mat-icon>\n </div>\n <div>{{ message }}</div>\n <div *ngIf=\"!hideClose\" style=\"margin-left: auto\">\n <button class=\"close-button\" mat-icon-button (click)=\"onCloseClick()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".psdk-alert{border:1px solid;display:flex;align-items:center;border-radius:4px;padding:10px;margin:5px 0}.psdk-alert-icon{display:flex;align-items:center;margin-right:10px}.psdk-alert-error{color:var(--app-alert-error-color);border:1px solid var(--app-alert-error-border-color)}.psdk-alert-error .mat-icon{color:var(--app-alert-error-border-color)}.psdk-grid-warning{color:var(--app-alert-warning-color);border:1px solid var(--app-alert-warning-border-color)}.psdk-grid-warning .mat-icon{color:var(--app-alert-warning-border-color)}.psdk-grid-success{color:var(--app-alert-success-color);border:1px solid var(--app-alert-success-border-color)}.psdk-grid-success .mat-icon{color:var(--app-alert-success-border-color)}.psdk-grid-info{color:var(--app-alert-info-color);border:1px solid var(--app-alert-info-border-color)}.psdk-grid-info .mat-icon{color:var(--app-alert-info-border-color)}.close-button{background:none;border:none;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'app-alert', standalone: true, imports: [CommonModule, MatIconModule], template: "<div\n class=\"psdk-alert\"\n [ngClass]=\"{\n 'psdk-alert-error': severity === 'error',\n 'psdk-grid-warning': severity === 'warning',\n 'psdk-grid-success': severity === 'success',\n 'psdk-grid-info': severity === 'info'\n }\"\n>\n <div class=\"psdk-alert-icon\">\n <mat-icon>{{ getMatIcon(severity) }}</mat-icon>\n </div>\n <div>{{ message }}</div>\n <div *ngIf=\"!hideClose\" style=\"margin-left: auto\">\n <button class=\"close-button\" mat-icon-button (click)=\"onCloseClick()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".psdk-alert{border:1px solid;display:flex;align-items:center;border-radius:4px;padding:10px;margin:5px 0}.psdk-alert-icon{display:flex;align-items:center;margin-right:10px}.psdk-alert-error{color:var(--app-alert-error-color);border:1px solid var(--app-alert-error-border-color)}.psdk-alert-error .mat-icon{color:var(--app-alert-error-border-color)}.psdk-grid-warning{color:var(--app-alert-warning-color);border:1px solid var(--app-alert-warning-border-color)}.psdk-grid-warning .mat-icon{color:var(--app-alert-warning-border-color)}.psdk-grid-success{color:var(--app-alert-success-color);border:1px solid var(--app-alert-success-border-color)}.psdk-grid-success .mat-icon{color:var(--app-alert-success-border-color)}.psdk-grid-info{color:var(--app-alert-info-color);border:1px solid var(--app-alert-info-border-color)}.psdk-grid-info .mat-icon{color:var(--app-alert-info-border-color)}.close-button{background:none;border:none;cursor:pointer}\n"] }]
41
41
  }], propDecorators: { message: [{
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
47
  }], onClose: [{
48
48
  type: Output
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVN2RCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVdZLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQTJCM0Q7SUF6QkMsVUFBVSxDQUFDLFFBQVE7UUFDakIsSUFBSSxPQUFPLENBQUM7UUFDWixRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxHQUFHLGVBQWUsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixPQUFPLEdBQUcsZUFBZSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxVQUFVLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxHQUFHLGNBQWMsQ0FBQztnQkFDekIsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZO1FBQ1YsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7K0dBOUJVLGNBQWM7bUdBQWQsY0FBYyxvTENYM0Isb2tCQW1CQSx5K0JEVlksWUFBWSxnT0FBRSxhQUFhOzs0RkFFMUIsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzs4QkFHN0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbWVzc2FnZTogYW55W107XG4gIEBJbnB1dCgpIHNldmVyaXR5O1xuICBASW5wdXQoKSBoaWRlQ2xvc2U7XG4gIEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXRNYXRJY29uKHNldmVyaXR5KSB7XG4gICAgbGV0IHZhcmlhbnQ7XG4gICAgc3dpdGNoIChzZXZlcml0eSkge1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICB2YXJpYW50ID0gJ2Vycm9yX291dGxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICB2YXJpYW50ID0gJ3dhcm5pbmdfYW1iZXInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICB2YXJpYW50ID0gJ3Rhc2tfYWx0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgdmFyaWFudCA9ICdpbmZvX291dGxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdmFyaWFudDtcbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpIHtcbiAgICBhbGVydCgnQ2xvc2UgY2xpY2tlZCcpO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KHsgUGFnZTogJ1BhZ2UnLCB0YXJnZXQ6ICd0YXJnZXQnLCB0eXBlOiAndHlwZScgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJwc2RrLWFsZXJ0XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdwc2RrLWFsZXJ0LWVycm9yJzogc2V2ZXJpdHkgPT09ICdlcnJvcicsXG4gICAgJ3BzZGstZ3JpZC13YXJuaW5nJzogc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyxcbiAgICAncHNkay1ncmlkLXN1Y2Nlc3MnOiBzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICdwc2RrLWdyaWQtaW5mbyc6IHNldmVyaXR5ID09PSAnaW5mbydcbiAgfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwc2RrLWFsZXJ0LWljb25cIj5cbiAgICA8bWF0LWljb24+e3sgZ2V0TWF0SWNvbihzZXZlcml0eSkgfX08L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdj57eyBtZXNzYWdlIH19PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhaGlkZUNsb3NlXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0b1wiPlxuICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCI+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2Rlc2lnblN5c3RlbUV4dGVuc2lvbi9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZGVzaWduU3lzdGVtRXh0ZW5zaW9uL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVN2RCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVdZLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQTJCM0Q7SUF6QkMsVUFBVSxDQUFDLFFBQVE7UUFDakIsSUFBSSxPQUFPLENBQUM7UUFDWixRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssT0FBTztnQkFDVixPQUFPLEdBQUcsZUFBZSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxlQUFlLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxHQUFHLFVBQVUsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxPQUFPLEdBQUcsY0FBYyxDQUFDO2dCQUN6QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsWUFBWTtRQUNWLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQTlCVSxjQUFjO21HQUFkLGNBQWMsb0xDWDNCLG9rQkFtQkEseStCRFZZLFlBQVksZ09BQUUsYUFBYTs7NEZBRTFCLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUdULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7OEJBRzdCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IGFueVtdO1xuICBASW5wdXQoKSBzZXZlcml0eTtcbiAgQElucHV0KCkgaGlkZUNsb3NlO1xuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0TWF0SWNvbihzZXZlcml0eSkge1xuICAgIGxldCB2YXJpYW50O1xuICAgIHN3aXRjaCAoc2V2ZXJpdHkpIHtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdmFyaWFudCA9ICdlcnJvcl9vdXRsaW5lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgdmFyaWFudCA9ICd3YXJuaW5nX2FtYmVyJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgdmFyaWFudCA9ICd0YXNrX2FsdCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgIHZhcmlhbnQgPSAnaW5mb19vdXRsaW5lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHZhcmlhbnQ7XG4gIH1cblxuICBvbkNsb3NlQ2xpY2soKSB7XG4gICAgYWxlcnQoJ0Nsb3NlIGNsaWNrZWQnKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCh7IFBhZ2U6ICdQYWdlJywgdGFyZ2V0OiAndGFyZ2V0JywgdHlwZTogJ3R5cGUnIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicHNkay1hbGVydFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAncHNkay1hbGVydC1lcnJvcic6IHNldmVyaXR5ID09PSAnZXJyb3InLFxuICAgICdwc2RrLWdyaWQtd2FybmluZyc6IHNldmVyaXR5ID09PSAnd2FybmluZycsXG4gICAgJ3BzZGstZ3JpZC1zdWNjZXNzJzogc2V2ZXJpdHkgPT09ICdzdWNjZXNzJyxcbiAgICAncHNkay1ncmlkLWluZm8nOiBzZXZlcml0eSA9PT0gJ2luZm8nXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwicHNkay1hbGVydC1pY29uXCI+XG4gICAgPG1hdC1pY29uPnt7IGdldE1hdEljb24oc2V2ZXJpdHkpIH19PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXY+e3sgbWVzc2FnZSB9fTwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWhpZGVDbG9zZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG9cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==