@pega/angular-sdk-components 0.24.1 → 0.24.2

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 (157) hide show
  1. package/esm2022/lib/_bridge/angular-pconnect.mjs +5 -5
  2. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +4 -4
  3. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +1 -1
  4. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +4 -4
  5. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +4 -4
  6. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +4 -4
  7. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +5 -5
  8. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +3 -3
  9. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +5 -5
  10. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +5 -5
  11. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +5 -5
  12. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +5 -5
  13. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +4 -4
  14. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +5 -5
  15. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +5 -5
  16. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +5 -5
  17. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +4 -4
  18. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +4 -4
  19. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +3 -3
  20. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +5 -5
  21. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +5 -5
  22. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +5 -5
  23. package/esm2022/lib/_components/field/currency/currency.component.mjs +32 -17
  24. package/esm2022/lib/_components/field/date/date.component.mjs +6 -6
  25. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +14 -43
  26. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +37 -10
  27. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +5 -5
  28. package/esm2022/lib/_components/field/email/email.component.mjs +5 -5
  29. package/esm2022/lib/_components/field/group/group.component.mjs +5 -5
  30. package/esm2022/lib/_components/field/integer/integer.component.mjs +5 -5
  31. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +3 -3
  32. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +5 -5
  33. package/esm2022/lib/_components/field/multiselect/utils.mjs +2 -2
  34. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +25 -8
  35. package/esm2022/lib/_components/field/phone/phone.component.mjs +5 -5
  36. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +5 -5
  37. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +5 -5
  38. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +5 -5
  39. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +5 -5
  40. package/esm2022/lib/_components/field/text/text.component.mjs +5 -5
  41. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +5 -5
  42. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +5 -5
  43. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +5 -5
  44. package/esm2022/lib/_components/field/time/time.component.mjs +5 -5
  45. package/esm2022/lib/_components/field/url/url.component.mjs +5 -5
  46. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +38 -26
  47. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +19 -12
  48. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +1 -1
  49. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +3 -3
  50. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +5 -5
  51. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +3 -3
  52. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +10 -10
  53. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +3 -3
  54. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +27 -6
  55. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +4 -4
  56. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +5 -5
  57. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +5 -5
  58. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +3 -3
  59. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +6 -6
  60. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +9 -7
  61. package/esm2022/lib/_components/infra/reference/reference.component.mjs +5 -5
  62. package/esm2022/lib/_components/infra/region/region.component.mjs +4 -4
  63. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +5 -5
  64. package/esm2022/lib/_components/infra/stages/stages.component.mjs +5 -5
  65. package/esm2022/lib/_components/infra/view/view.component.mjs +5 -5
  66. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +5 -5
  67. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +5 -5
  68. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +6 -6
  69. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +6 -6
  70. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +5 -5
  71. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +5 -5
  72. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +5 -5
  73. package/esm2022/lib/_components/template/details/details.component.mjs +5 -5
  74. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +5 -5
  75. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +5 -5
  76. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +5 -5
  77. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +5 -5
  78. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +5 -5
  79. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +5 -5
  80. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +5 -5
  81. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +4 -4
  82. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +5 -5
  83. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +3 -3
  84. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +4 -4
  85. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +5 -5
  86. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +4 -4
  87. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +1 -1
  88. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +7 -7
  89. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -1
  90. package/esm2022/lib/_components/template/list-view/utils.mjs +1 -1
  91. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +5 -5
  92. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +4 -4
  93. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +4 -4
  94. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +4 -4
  95. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +4 -4
  96. package/esm2022/lib/_components/template/page/page.component.mjs +5 -5
  97. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +5 -5
  98. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +5 -5
  99. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +5 -5
  100. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +1 -1
  101. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +6 -6
  102. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +5 -5
  103. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +4 -4
  104. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +5 -5
  105. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +4 -4
  106. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +4 -4
  107. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +4 -4
  108. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +5 -5
  109. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +4 -4
  110. package/esm2022/lib/_components/template/utils.mjs +1 -1
  111. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +4 -4
  112. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +5 -5
  113. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +5 -5
  114. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +4 -4
  115. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +5 -5
  116. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +6 -6
  117. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +5 -5
  118. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +18 -18
  119. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +6 -6
  120. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +5 -5
  121. package/esm2022/lib/_components/widget/todo/todo.component.mjs +6 -6
  122. package/esm2022/lib/_components/widget/utility/utility.component.mjs +5 -5
  123. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +5 -5
  124. package/esm2022/lib/_helpers/case-utils.mjs +1 -1
  125. package/esm2022/lib/_helpers/currency-utils.mjs +1 -1
  126. package/esm2022/lib/_helpers/event-util.mjs +1 -1
  127. package/esm2022/lib/_helpers/field-group-utils.mjs +1 -1
  128. package/esm2022/lib/_helpers/filter-utils.mjs +1 -1
  129. package/esm2022/lib/_helpers/formatters/boolean.mjs +1 -1
  130. package/esm2022/lib/_helpers/formatters/currency.mjs +1 -1
  131. package/esm2022/lib/_helpers/formatters/date.mjs +1 -1
  132. package/esm2022/lib/_helpers/formatters/format-utils.mjs +1 -1
  133. package/esm2022/lib/_helpers/formatters/index.mjs +1 -1
  134. package/esm2022/lib/_helpers/tab-utils.mjs +1 -1
  135. package/esm2022/lib/_helpers/template-utils.mjs +4 -4
  136. package/esm2022/lib/_helpers/utils.mjs +5 -5
  137. package/esm2022/lib/_messages/error-messages.service.mjs +3 -3
  138. package/esm2022/lib/_messages/get-login-status.service.mjs +3 -3
  139. package/esm2022/lib/_messages/oauth-response.service.mjs +3 -3
  140. package/esm2022/lib/_messages/progress-spinner.service.mjs +3 -3
  141. package/esm2022/lib/_messages/reset-pconnect.service.mjs +3 -3
  142. package/esm2022/lib/_messages/update-worklist.service.mjs +3 -3
  143. package/esm2022/lib/_services/case.service.mjs +4 -4
  144. package/esm2022/lib/_services/datapage.service.mjs +5 -5
  145. package/esm2022/lib/_services/server-config.service.mjs +3 -3
  146. package/esm2022/public-api.mjs +2 -1
  147. package/fesm2022/pega-angular-sdk-components.mjs +675 -608
  148. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  149. package/lib/_components/field/currency/currency.component.d.ts +4 -5
  150. package/lib/_components/field/date-time/date-time.component.d.ts +0 -1
  151. package/lib/_components/field/decimal/decimal.component.d.ts +9 -1
  152. package/lib/_components/field/percentage/percentage.component.d.ts +4 -0
  153. package/lib/_components/field/user-reference/user-reference.component.d.ts +9 -4
  154. package/lib/_components/infra/assignment/assignment.component.d.ts +2 -0
  155. package/lib/_components/widget/file-utility/file-utility.component.d.ts +1 -1
  156. package/package.json +1 -1
  157. package/public-api.d.ts +1 -0
@@ -180,17 +180,17 @@ export class CaseViewComponent {
180
180
  const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);
181
181
  openProcessAction(data.ID, { ...data });
182
182
  }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaseViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaseViewComponent, isStandalone: true, selector: "app-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n <div>\n <h1>{{ heading$ }}</h1>\n </div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:-moz-fit-content;width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatToolbarModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i4.MatToolbar; }), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.MatToolbarRow; }), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatButtonModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i5.MatButton; }), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatMenuModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i6.MatMenu; }), selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(function () { return i6.MatMenuItem; }), selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatMenuTrigger; }), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
184
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseViewComponent, isStandalone: true, selector: "app-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatToolbarModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatToolbar), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(() => i4.MatToolbarRow), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
185
185
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaseViewComponent, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseViewComponent, decorators: [{
187
187
  type: Component,
188
- args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n <div>\n <h1>{{ heading$ }}</h1>\n </div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:-moz-fit-content;width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"] }]
189
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AngularPConnectService }, { type: i2.Utils }]; }, propDecorators: { pConn$: [{
188
+ args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"] }]
189
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
190
190
  type: Input
191
191
  }], formGroup$: [{
192
192
  type: Input
193
193
  }], displayOnlyFA$: [{
194
194
  type: Input
195
195
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBaUJ4RyxNQUFNLE9BQU8saUJBQWlCO0lBZ0M1QixZQUNVLEtBQXdCLEVBQ3hCLGVBQXVDLEVBQ3ZDLEtBQVk7UUFGWixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQTlCdEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFLOUMsYUFB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R0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBSTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBdE5VLGlCQUFpQjttR0FBakIsaUJBQWlCLHNKQUpqQixDQUFDLEtBQUssQ0FBQywwQkN0QnBCLDgxSEF5RkEsK21ERGpFWSxZQUFZLG9YQUFFLGdCQUFnQiw4V0FBRSxlQUFlLHlWQUFFLGFBQWEsNGlCQUFtQix3QkFBd0I7OzRGQUV4RyxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsS0FBSyxDQUFDLGNBQ04sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7aUtBRzVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgQ2FzZVZpZXdQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgaWNvbjogc3RyaW5nO1xuICBzdWJoZWFkZXI6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYXNlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1V0aWxzXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0VG9vbGJhck1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIENhc2VWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDYXNlVmlld1Byb3BzO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcblxuICBoZWFkaW5nJCA9ICcnO1xuICBpZCQgPSAnJztcbiAgc3RhdHVzJCA9ICcnO1xuICBjYXNlVGFicyQ6IGFueVtdID0gW107XG4gIHN2Z0Nhc2UkOiBzdHJpbmc7XG4gIHRhYkRhdGEkOiBhbnk7XG5cbiAgbWFpblRhYnM6IGFueTtcbiAgbWFpblRhYkRhdGE6IGFueTtcblxuICBhckF2YWlsYWJsZUFjdGlvbnMkOiBhbnlbXSA9IFtdO1xuICBhckF2YWlsYWJlUHJvY2Vzc2VzJDogYW55W10gPSBbXTtcblxuICBjYXNlU3VtbWFyeVBDb25uJDogYW55O1xuICBjdXJyZW50Q2FzZUlEID0gJyc7XG4gIGVkaXRBY3Rpb246IGJvb2xlYW47XG4gIGJIYXNOZXdBdHRhY2htZW50cyA9IGZhbHNlO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnQ2FzZVZpZXcnO1xuICBsb2NhbGVLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICAvLyAgICBBTkQgcmVtb3ZpbmcgdGhlIFwiZ2F0ZVwiIHRoYXQgd2FzIHB1dCB0aGVyZSBzaW5jZSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAgICAvLyAgICAgIHNob3VsZCBiZSB0aGUgcmVhbCBcImdhdGVcIlxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgLy8gZ2VuZXJhbGx5LCBkb24ndCB3YW50IHRvIHJlZnJlc2ggZXZlcnl0aGluZyB3aGVuIGRhdGEgY2hhbmdlcyBpbiBjYXNlVmlldywgaXQgaXMgdXN1YWxseSB0aGVcbiAgICAgIC8vIGNhc2Ugc3VtbWFyeS4gIEJ1dCBjaGVjayBpZiB0aGUgY2FzZSBJRCBjaGFuZ2VzLCB0aGlzIG1lYW5zIGEgZGlmZmVyZW50IGNhc2UgYW5kIHdlIHNob3VsZFxuICAgICAgLy8gdXBkYXRlIGFsbC5cbiAgICAgIGlmICh0aGlzLmhhc0Nhc2VJRENoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLmZ1bGxVcGRhdGUoKTtcblxuICAgICAgICAvLyB1cGRhdGUgb2tUb0luaXRGbG93Q29udGFpbmVyLCBiZWNhdXNlIGNhc2UgdmlldyB3YXMgZHJhd24sIGZsb3cgY29udGFpbmVyIHdpbGwgbmVlZCB0byBiZSBpbml0XG4gICAgICAgIC8vIHRvIG1hdGNoIE5lYnVsYS9Db25zdGVsbGF0aW9uXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFuZFN1bW1hcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNDYXNlSURDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIC8vIEB0cy1pZ25vcmUgLSBwYXJhbWV0ZXIg4oCcY29udGV4dE5hbWXigJ0gZm9yIGdldERhdGFPYmplY3QgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgIGlmICh0aGlzLmN1cnJlbnRDYXNlSUQgIT09IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mby5JRCkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHBhcmFtZXRlciDigJxjb250ZXh0TmFtZeKAnSBmb3IgZ2V0RGF0YU9iamVjdCBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgICB0aGlzLmN1cnJlbnRDYXNlSUQgPSB0aGlzLnBDb25uJC5nZXREYXRhT2JqZWN0KCkuY2FzZUluZm8uSUQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBDYXNlVmlld1Byb3BzO1xuICAgIC8vIEB0cy1pZ25vcmUgLSBwYXJhbWV0ZXIg4oCcY29udGV4dE5hbWXigJ0gZm9yIGdldERhdGFPYmplY3QgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgIGNvbnN0IGhhc05ld0F0dGFjaG1lbnRzID0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvPy5oYXNOZXdBdHRhY2htZW50cztcblxuICAgIGlmIChoYXNOZXdBdHRhY2htZW50cyAhPT0gdGhpcy5iSGFzTmV3QXR0YWNobWVudHMpIHtcbiAgICAgIHRoaXMuYkhhc05ld0F0dGFjaG1lbnRzID0gaGFzTmV3QXR0YWNobWVudHM7XG4gICAgICBpZiAodGhpcy5iSGFzTmV3QXR0YWNobWVudHMpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSAtIEFyZ3VtZW50IG9mIHR5cGUgJ2Jvb2xlYW4nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHBhcmFtZXRlciBvZiB0eXBlICdvYmplY3QnXG4gICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaCgoUENvcmUuZ2V0RXZlbnRzKCkuZ2V0Q2FzZUV2ZW50KCkgYXMgYW55KS5DQVNFX0FUVEFDSE1FTlRTX1VQREFURURfRlJPTV9DQVNFVklFVywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgZm9yIChjb25zdCBraWQgb2Yga2lkcykge1xuICAgICAgY29uc3QgbWV0YSA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk7XG4gICAgICBpZiAobWV0YS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYgbWV0YS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3N1bW1hcnknKSB7XG4gICAgICAgIHRoaXMuY2FzZVN1bW1hcnlQQ29ubiQgPSBraWQuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpWzBdLmdldFBDb25uZWN0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaGF2ZSB0byBwdXQgaW4gYSB0aW1lb3V0LCBvdGhlcndpc2UgZ2V0IGFuIGFuZ3VsYXIgY2hhbmdlIGV2ZW50IGVycm9yXG4gICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLmhlYWRpbmckID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkZXIsICcnLCB0aGlzLmxvY2FsZUtleSk7XG4gICAgICB0aGlzLmlkJCA9IHRoaXMuY29uZmlnUHJvcHMkLnN1YmhlYWRlcjtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIHBhZ2VSZWZlcmVuY2UgZm9yIGdldFZhbHVlIG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMucENvbm4kLmdldFZhbHVlKCcucHlTdGF0dXNXb3JrJyk7XG4gICAgfSk7XG4gIH1cblxuICBmdWxsVXBkYXRlKCkge1xuICAgIHRoaXMuY2FzZVRhYnMkID0gW107XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQ2FzZVZpZXdQcm9wcztcbiAgICAvLyBsZXQgY2FzZVR5cGVJRCA9IHRoaXMuY29uZmlnUHJvcHMkLnJ1bGVDbGFzcztcbiAgICAvLyBsZXQgY2FzZVR5cGVOYW1lID0gdGhpcy5jb25maWdQcm9wcyQuaGVhZGVyO1xuICAgIC8vIHRoaXMubG9jYWxlS2V5ID0gYCR7Y2FzZVR5cGVJRH0hQ0FTRSEke2Nhc2VUeXBlTmFtZX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5sb2NhbGVLZXkgPSBgJHt0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldENsYXNzTmFtZSgpfSFDQVNFISR7dGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXROYW1lKCl9YC50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpO1xuXG4gICAgdGhpcy5hckNoaWxkcmVuJCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG5cbiAgICAvLyBAdHMtaWdub3JlIC0gcGFyYW1ldGVyIOKAnGNvbnRleHROYW1l4oCdIGZvciBnZXREYXRhT2JqZWN0IG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mbztcbiAgICB0aGlzLmN1cnJlbnRDYXNlSUQgPSBjYXNlSW5mby5JRDtcbiAgICB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlQWN0aW9ucyA/IGNhc2VJbmZvLmF2YWlsYWJsZUFjdGlvbnMgOiBbXTtcbiAgICB0aGlzLmVkaXRBY3Rpb24gPSB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQuZmluZChhY3Rpb24gPT4gYWN0aW9uLklEID09PSAncHlVcGRhdGVDYXNlRGV0YWlscycpO1xuICAgIHRoaXMuYXJBdmFpbGFiZVByb2Nlc3NlcyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlUHJvY2Vzc2VzID8gY2FzZUluZm8uYXZhaWxhYmxlUHJvY2Vzc2VzIDogW107XG5cbiAgICB0aGlzLnN2Z0Nhc2UkID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYyh0aGlzLmNvbmZpZ1Byb3BzJC5pY29uLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG5cbiAgICAvLyB0aGlzLnV0aWxzLmNvbnNvbGVLaWREdW1wKHRoaXMucENvbm4kKTtcblxuICAgIGlmICghdGhpcy5kaXNwbGF5T25seUZBJCkge1xuICAgICAgZm9yIChjb25zdCBraWQgb2YgdGhpcy5hckNoaWxkcmVuJCkge1xuICAgICAgICBjb25zdCBraWRQQ29ubiA9IGtpZC5nZXRQQ29ubmVjdCgpO1xuICAgICAgICBpZiAoa2lkUENvbm4uZ2V0UmF3TWV0YWRhdGEoKS5uYW1lID09ICdUYWJzJykge1xuICAgICAgICAgIHRoaXMubWFpblRhYnMgPSBraWQ7XG4gICAgICAgICAgdGhpcy5tYWluVGFiRGF0YSA9IHRoaXMubWFpblRhYnMuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZ2VuZXJhdGVUYWJzRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVGFic0RhdGEoKSB7XG4gICAgdGhpcy5tYWluVGFic1xuICAgICAgLmdldFBDb25uZWN0KClcbiAgICAgIC5nZXRDaGlsZHJlbigpXG4gICAgICA/LmZvckVhY2goKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGNoaWxkLmdldFBDb25uZWN0KCkucmVzb2x2ZUNvbmZpZ1Byb3BzKGNoaWxkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKSkuY29uZmlnO1xuICAgICAgICBsZXQgeyBsYWJlbCB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCB7IGluaGVyaXRlZFByb3BzLCB2aXNpYmlsaXR5IH0gPSBjb25maWc7XG4gICAgICAgIC8vIEZvciBzb21lIHRhYnMsIFwibGFiZWxcIiBwcm9wZXJ0eSBpcyBub3QgYXZhaWFsYWJsZSBpbiB0aGVUYWJDb21wQ29uZmlnLCBzbyB3aWxsIGdldCB0aGVtIGZyb20gaW5oZXJpdGVkUHJvcHNcbiAgICAgICAgaWYgKCFsYWJlbCkge1xuICAgICAgICAgIGluaGVyaXRlZFByb3BzLmZvckVhY2goKGluaGVyaXRlZFByb3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGluaGVyaXRlZFByb3AucHJvcCA9PT0gJ2xhYmVsJykge1xuICAgICAgICAgICAgICBsYWJlbCA9IGluaGVyaXRlZFByb3AudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2UnbGwgZGlzcGxheSB0aGUgdGFicyB3aGVuIGVpdGhlciB2aXNpYmlsaXR5IHByb3BlcnR5IGRvZXNuJ3QgZXhpc3Qgb3IgaXMgdHJ1ZShpZiBleGlzdHMpXG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSB1bmRlZmluZWQgfHwgdmlzaWJpbGl0eSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuY2FzZVRhYnMkLnB1c2goeyBuYW1lOiBsYWJlbCwgaWQ6IGkgfSk7XG4gICAgICAgICAgLy8gVG8gbWFrZSBmaXJzdCB2aXNpYmxlIHRhYiBkaXNwbGF5IGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgICAgICBpZiAoIXRoaXMudGFiRGF0YSQpIHtcbiAgICAgICAgICAgIHRoaXMudGFiRGF0YSQgPSB7IHR5cGU6ICdEZWZlckxvYWQnLCBjb25maWc6IGNoaWxkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5jb25maWcgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICB0aGlzLmZ1bGxVcGRhdGUoKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2sodGFiOiBhbnkpIHtcbiAgICB0aGlzLnRhYkRhdGEkID0gdGhpcy5tYWluVGFiRGF0YVt0YWJdLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIF9lZGl0Q2xpY2soKSB7XG4gICAgY29uc3QgZWRpdEFjdGlvbiA9IHRoaXMuYXJBdmFpbGFibGVBY3Rpb25zJC5maW5kKGFjdGlvbiA9PiBhY3Rpb24uSUQgPT09ICdweVVwZGF0ZUNhc2VEZXRhaWxzJyk7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuTG9jYWxBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Mb2NhbEFjdGlvbi5iaW5kKGFjdGlvbnNBUEkpO1xuXG4gICAgb3BlbkxvY2FsQWN0aW9uKGVkaXRBY3Rpb24uSUQsIHsgLi4uZWRpdEFjdGlvbiwgY29udGFpbmVyTmFtZTogJ21vZGFsJywgdHlwZTogJ2V4cHJlc3MnIH0pO1xuICB9XG5cbiAgX21lbnVBY3Rpb25DbGljayhkYXRhKSB7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuTG9jYWxBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Mb2NhbEFjdGlvbi5iaW5kKGFjdGlvbnNBUEkpO1xuXG4gICAgb3BlbkxvY2FsQWN0aW9uKGRhdGEuSUQsIHsgLi4uZGF0YSwgY29udGFpbmVyTmFtZTogJ21vZGFsJywgdHlwZTogJ2V4cHJlc3MnIH0pO1xuICB9XG5cbiAgX21lbnVQcm9jZXNzQ2xpY2soZGF0YSkge1xuICAgIGNvbnN0IGFjdGlvbnNBUEkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgY29uc3Qgb3BlblByb2Nlc3NBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Qcm9jZXNzQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuUHJvY2Vzc0FjdGlvbihkYXRhLklELCB7IC4uLmRhdGEgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlld1wiIGlkPVwiY2FzZS12aWV3XCI+XG4gIDxkaXYgKm5nSWY9XCIhZGlzcGxheU9ubHlGQSRcIiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWluZm9cIj5cbiAgICA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy10b29sYmFyXCI+XG4gICAgICA8bWF0LXRvb2xiYXItcm93IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxcmVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2UtaWNvbi1kaXZcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwicHNkay1jYXNlLXN2Zy1pY29uXCIgc3JjPVwie3sgc3ZnQ2FzZSQgfX1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWhlYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwiY3VycmVudC1jYXNlSURcIiBbaGlkZGVuXT1cInRydWVcIj57eyBjdXJyZW50Q2FzZUlEIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWhlYWRpbmctaWRcIiBpZD1cImNhc2VJZFwiPnt7IGlkJCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDE+e3sgaGVhZGluZyQgfX08L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRvb2xiYXItcm93PlxuICAgIDwvbWF0LXRvb2xiYXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImVkaXRBY3Rpb25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInNlY29uZGFyeVwiIChjbGljayk9XCJfZWRpdENsaWNrKClcIj57eyBsb2NhbGl6ZWRWYWwoJ0VkaXQnLCBsb2NhbGVDYXRlZ29yeSkgfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uTWVudVwiPnt7IGxvY2FsaXplZFZhbCgnQWN0aW9ucy4uLicsIGxvY2FsZUNhdGVnb3J5KSB9fTwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNhY3Rpb25NZW51PVwibWF0TWVudVwiIG92ZXJsYXBUcmlnZ2VyPVwiZmFsc2VcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFyQXZhaWxhYmxlQWN0aW9ucyRcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIl9tZW51QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICAgICAge3sgbG9jYWxpemVkVmFsKGFjdGlvbi5uYW1lLCAnJywgbG9jYWxlS2V5KSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvY2VzcyBvZiBhckF2YWlsYWJlUHJvY2Vzc2VzJFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiX21lbnVQcm9jZXNzQ2xpY2socHJvY2VzcylcIj5cbiAgICAgICAgICAgIHt7IHByb2Nlc3MubmFtZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctZGl2aWRlclwiPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LXN1bW1hcnlcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJDYXNlU3VtbWFyeVwiIFtwcm9wc109XCJ7IHBDb25uJDogY2FzZVN1bW1hcnlQQ29ubiQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAqbmdJZj1cImNhc2VUYWJzJC5sZW5ndGggPiAxXCJcbiAgICAgIG5hbWU9XCJWZXJ0aWNhbFRhYnNcIlxuICAgICAgW3Byb3BzXT1cInsgdGFiQ29uZmlnJDogY2FzZVRhYnMkIH1cIlxuICAgICAgW3BhcmVudF09XCJ0aGlzXCJcbiAgICAgIFtvdXRwdXRFdmVudHNdPVwieyB0YWJDbGljazogb25UYWJDbGljayB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LW1haW5cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAncmVnaW9uJyAmJiBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLm5hbWUudG9Mb3dlckNhc2UoKSA9PSAnc3RhZ2VzJ1xuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3RvZG8nXCJcbiAgICAgID5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lID09ICdNYWluJ1wiPlxuICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiRGVmZXJMb2FkXCIgW3Byb3BzXT1cInsgcENvbm4kLCBsb2FkRGF0YSQ6IHRhYkRhdGEkLCBuYW1lOiB0YWJEYXRhJD8uY29uZmlnPy5uYW1lIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgPGRpdiAqbmdJZj1cImFyQ2hpbGRyZW4kXCIgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy11dGlsaXRpZXNcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKT8udHlwZS50b0xvd2VyQ2FzZSgpID09ICdyZWdpb24nICYmIGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk/Lm5hbWUgPT0gJ1V0aWxpdGllcydcIj5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBaUJ4RyxNQUFNLE9BQU8saUJBQWlCO0lBZ0M1QixZQUNVLEtBQXdCLEVBQ3hCLGVBQXVDLEVBQ3ZDLEtBQVk7UUFGWixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQTlCdEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFLOUMsYUFB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QzsrSUFHNUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBDYXNlVmlld1Byb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBpY29uOiBzdHJpbmc7XG4gIHN1YmhlYWRlcjogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhc2UtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVXRpbHNdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRUb29sYmFyTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdE1lbnVNb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IENhc2VWaWV3UHJvcHM7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuXG4gIGhlYWRpbmckID0gJyc7XG4gIGlkJCA9ICcnO1xuICBzdGF0dXMkID0gJyc7XG4gIGNhc2VUYWJzJDogYW55W10gPSBbXTtcbiAgc3ZnQ2FzZSQ6IHN0cmluZztcbiAgdGFiRGF0YSQ6IGFueTtcblxuICBtYWluVGFiczogYW55O1xuICBtYWluVGFiRGF0YTogYW55O1xuXG4gIGFyQXZhaWxhYmxlQWN0aW9ucyQ6IGFueVtdID0gW107XG4gIGFyQXZhaWxhYmVQcm9jZXNzZXMkOiBhbnlbXSA9IFtdO1xuXG4gIGNhc2VTdW1tYXJ5UENvbm4kOiBhbnk7XG4gIGN1cnJlbnRDYXNlSUQgPSAnJztcbiAgZWRpdEFjdGlvbjogYm9vbGVhbjtcbiAgYkhhc05ld0F0dGFjaG1lbnRzID0gZmFsc2U7XG4gIGxvY2FsaXplZFZhbDogYW55O1xuICBsb2NhbGVDYXRlZ29yeSA9ICdDYXNlVmlldyc7XG4gIGxvY2FsZUtleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgICB0aGlzLmxvY2FsaXplZFZhbCA9IFBDb3JlLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIC8vICAgIEFORCByZW1vdmluZyB0aGUgXCJnYXRlXCIgdGhhdCB3YXMgcHV0IHRoZXJlIHNpbmNlIHNob3VsZENvbXBvbmVudFVwZGF0ZVxuICAgIC8vICAgICAgc2hvdWxkIGJlIHRoZSByZWFsIFwiZ2F0ZVwiXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICAvLyBnZW5lcmFsbHksIGRvbid0IHdhbnQgdG8gcmVmcmVzaCBldmVyeXRoaW5nIHdoZW4gZGF0YSBjaGFuZ2VzIGluIGNhc2VWaWV3LCBpdCBpcyB1c3VhbGx5IHRoZVxuICAgICAgLy8gY2FzZSBzdW1tYXJ5LiAgQnV0IGNoZWNrIGlmIHRoZSBjYXNlIElEIGNoYW5nZXMsIHRoaXMgbWVhbnMgYSBkaWZmZXJlbnQgY2FzZSBhbmQgd2Ugc2hvdWxkXG4gICAgICAvLyB1cGRhdGUgYWxsLlxuICAgICAgaWYgKHRoaXMuaGFzQ2FzZUlEQ2hhbmdlZCgpKSB7XG4gICAgICAgIHRoaXMuZnVsbFVwZGF0ZSgpO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBva1RvSW5pdEZsb3dDb250YWluZXIsIGJlY2F1c2UgY2FzZSB2aWV3IHdhcyBkcmF3biwgZmxvdyBjb250YWluZXIgd2lsbCBuZWVkIHRvIGJlIGluaXRcbiAgICAgICAgLy8gdG8gbWF0Y2ggTmVidWxhL0NvbnN0ZWxsYXRpb25cbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnb2tUb0luaXRGbG93Q29udGFpbmVyJywgJ3RydWUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc0Nhc2VJRENoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gQHRzLWlnbm9yZSAtIHBhcmFtZXRlciDigJxjb250ZXh0TmFtZeKAnSBmb3IgZ2V0RGF0YU9iamVjdCBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgaWYgKHRoaXMuY3VycmVudENhc2VJRCAhPT0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvLklEKSB7XG4gICAgICAvLyBAdHMtaWdub3JlIC0gcGFyYW1ldGVyIOKAnGNvbnRleHROYW1l4oCdIGZvciBnZXREYXRhT2JqZWN0IG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICAgIHRoaXMuY3VycmVudENhc2VJRCA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mby5JRDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB1cGRhdGVIZWFkZXJBbmRTdW1tYXJ5KCkge1xuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIENhc2VWaWV3UHJvcHM7XG4gICAgLy8gQHRzLWlnbm9yZSAtIHBhcmFtZXRlciDigJxjb250ZXh0TmFtZeKAnSBmb3IgZ2V0RGF0YU9iamVjdCBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgY29uc3QgaGFzTmV3QXR0YWNobWVudHMgPSB0aGlzLnBDb25uJC5nZXREYXRhT2JqZWN0KCkuY2FzZUluZm8/Lmhhc05ld0F0dGFjaG1lbnRzO1xuXG4gICAgaWYgKGhhc05ld0F0dGFjaG1lbnRzICE9PSB0aGlzLmJIYXNOZXdBdHRhY2htZW50cykge1xuICAgICAgdGhpcy5iSGFzTmV3QXR0YWNobWVudHMgPSBoYXNOZXdBdHRhY2htZW50cztcbiAgICAgIGlmICh0aGlzLmJIYXNOZXdBdHRhY2htZW50cykge1xuICAgICAgICAvLyBAdHMtaWdub3JlIC0gQXJndW1lbnQgb2YgdHlwZSAnYm9vbGVhbicgaXMgbm90IGFzc2lnbmFibGUgdG8gcGFyYW1ldGVyIG9mIHR5cGUgJ29iamVjdCdcbiAgICAgICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5wdWJsaXNoKChQQ29yZS5nZXRFdmVudHMoKS5nZXRDYXNlRXZlbnQoKSBhcyBhbnkpLkNBU0VfQVRUQUNITUVOVFNfVVBEQVRFRF9GUk9NX0NBU0VWSUVXLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBraWRzID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICBmb3IgKGNvbnN0IGtpZCBvZiBraWRzKSB7XG4gICAgICBjb25zdCBtZXRhID0ga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKTtcbiAgICAgIGlmIChtZXRhLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAncmVnaW9uJyAmJiBtZXRhLm5hbWUudG9Mb3dlckNhc2UoKSA9PSAnc3VtbWFyeScpIHtcbiAgICAgICAgdGhpcy5jYXNlU3VtbWFyeVBDb25uJCA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBoYXZlIHRvIHB1dCBpbiBhIHRpbWVvdXQsIG90aGVyd2lzZSBnZXQgYW4gYW5ndWxhciBjaGFuZ2UgZXZlbnQgZXJyb3JcbiAgICBjb25zdCB0aW1lciA9IGludGVydmFsKDEwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRpbWVyLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgIHRoaXMuaGVhZGluZyQgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLmhlYWRlciwgJycsIHRoaXMubG9jYWxlS2V5KTtcbiAgICAgIHRoaXMuaWQkID0gdGhpcy5jb25maWdQcm9wcyQuc3ViaGVhZGVyO1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHNlY29uZCBwYXJhbWV0ZXIgcGFnZVJlZmVyZW5jZSBmb3IgZ2V0VmFsdWUgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgICAgdGhpcy5zdGF0dXMkID0gdGhpcy5wQ29ubiQuZ2V0VmFsdWUoJy5weVN0YXR1c1dvcmsnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bGxVcGRhdGUoKSB7XG4gICAgdGhpcy5jYXNlVGFicyQgPSBbXTtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBDYXNlVmlld1Byb3BzO1xuICAgIC8vIGxldCBjYXNlVHlwZUlEID0gdGhpcy5jb25maWdQcm9wcyQucnVsZUNsYXNzO1xuICAgIC8vIGxldCBjYXNlVHlwZU5hbWUgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkZXI7XG4gICAgLy8gdGhpcy5sb2NhbGVLZXkgPSBgJHtjYXNlVHlwZUlEfSFDQVNFISR7Y2FzZVR5cGVOYW1lfWAudG9VcHBlckNhc2UoKTtcbiAgICB0aGlzLmxvY2FsZUtleSA9IGAke3RoaXMucENvbm4kLmdldENhc2VJbmZvKCkuZ2V0Q2xhc3NOYW1lKCl9IUNBU0UhJHt0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldE5hbWUoKX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy51cGRhdGVIZWFkZXJBbmRTdW1tYXJ5KCk7XG5cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcblxuICAgIC8vIEB0cy1pZ25vcmUgLSBwYXJhbWV0ZXIg4oCcY29udGV4dE5hbWXigJ0gZm9yIGdldERhdGFPYmplY3QgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgIGNvbnN0IGNhc2VJbmZvID0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvO1xuICAgIHRoaXMuY3VycmVudENhc2VJRCA9IGNhc2VJbmZvLklEO1xuICAgIHRoaXMuYXJBdmFpbGFibGVBY3Rpb25zJCA9IGNhc2VJbmZvPy5hdmFpbGFibGVBY3Rpb25zID8gY2FzZUluZm8uYXZhaWxhYmxlQWN0aW9ucyA6IFtdO1xuICAgIHRoaXMuZWRpdEFjdGlvbiA9IHRoaXMuYXJBdmFpbGFibGVBY3Rpb25zJC5maW5kKGFjdGlvbiA9PiBhY3Rpb24uSUQgPT09ICdweVVwZGF0ZUNhc2VEZXRhaWxzJyk7XG4gICAgdGhpcy5hckF2YWlsYWJlUHJvY2Vzc2VzJCA9IGNhc2VJbmZvPy5hdmFpbGFibGVQcm9jZXNzZXMgPyBjYXNlSW5mby5hdmFpbGFibGVQcm9jZXNzZXMgOiBbXTtcblxuICAgIHRoaXMuc3ZnQ2FzZSQgPSB0aGlzLnV0aWxzLmdldEltYWdlU3JjKHRoaXMuY29uZmlnUHJvcHMkLmljb24sIHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpKTtcblxuICAgIC8vIHRoaXMudXRpbHMuY29uc29sZUtpZER1bXAodGhpcy5wQ29ubiQpO1xuXG4gICAgaWYgKCF0aGlzLmRpc3BsYXlPbmx5RkEkKSB7XG4gICAgICBmb3IgKGNvbnN0IGtpZCBvZiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgICAgIGNvbnN0IGtpZFBDb25uID0ga2lkLmdldFBDb25uZWN0KCk7XG4gICAgICAgIGlmIChraWRQQ29ubi5nZXRSYXdNZXRhZGF0YSgpLm5hbWUgPT0gJ1RhYnMnKSB7XG4gICAgICAgICAgdGhpcy5tYWluVGFicyA9IGtpZDtcbiAgICAgICAgICB0aGlzLm1haW5UYWJEYXRhID0gdGhpcy5tYWluVGFicy5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZVRhYnNEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVUYWJzRGF0YSgpIHtcbiAgICB0aGlzLm1haW5UYWJzXG4gICAgICAuZ2V0UENvbm5lY3QoKVxuICAgICAgLmdldENoaWxkcmVuKClcbiAgICAgID8uZm9yRWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuZ2V0UENvbm5lY3QoKS5yZXNvbHZlQ29uZmlnUHJvcHMoY2hpbGQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpKS5jb25maWc7XG4gICAgICAgIGxldCB7IGxhYmVsIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IHsgaW5oZXJpdGVkUHJvcHMsIHZpc2liaWxpdHkgfSA9IGNvbmZpZztcbiAgICAgICAgLy8gRm9yIHNvbWUgdGFicywgXCJsYWJlbFwiIHByb3BlcnR5IGlzIG5vdCBhdmFpYWxhYmxlIGluIHRoZVRhYkNvbXBDb25maWcsIHNvIHdpbGwgZ2V0IHRoZW0gZnJvbSBpbmhlcml0ZWRQcm9wc1xuICAgICAgICBpZiAoIWxhYmVsKSB7XG4gICAgICAgICAgaW5oZXJpdGVkUHJvcHMuZm9yRWFjaCgoaW5oZXJpdGVkUHJvcDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5oZXJpdGVkUHJvcC5wcm9wID09PSAnbGFiZWwnKSB7XG4gICAgICAgICAgICAgIGxhYmVsID0gaW5oZXJpdGVkUHJvcC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSdsbCBkaXNwbGF5IHRoZSB0YWJzIHdoZW4gZWl0aGVyIHZpc2liaWxpdHkgcHJvcGVydHkgZG9lc24ndCBleGlzdCBvciBpcyB0cnVlKGlmIGV4aXN0cylcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IHVuZGVmaW5lZCB8fCB2aXNpYmlsaXR5ID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlVGFicyQucHVzaCh7IG5hbWU6IGxhYmVsLCBpZDogaSB9KTtcbiAgICAgICAgICAvLyBUbyBtYWtlIGZpcnN0IHZpc2libGUgdGFiIGRpc3BsYXkgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIGlmICghdGhpcy50YWJEYXRhJCkge1xuICAgICAgICAgICAgdGhpcy50YWJEYXRhJCA9IHsgdHlwZTogJ0RlZmVyTG9hZCcsIGNvbmZpZzogY2hpbGQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLmNvbmZpZyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIHRoaXMuZnVsbFVwZGF0ZSgpO1xuICB9XG5cbiAgb25UYWJDbGljayh0YWI6IGFueSkge1xuICAgIHRoaXMudGFiRGF0YSQgPSB0aGlzLm1haW5UYWJEYXRhW3RhYl0uZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX2VkaXRDbGljaygpIHtcbiAgICBjb25zdCBlZGl0QWN0aW9uID0gdGhpcy5hckF2YWlsYWJsZUFjdGlvbnMkLmZpbmQoYWN0aW9uID0+IGFjdGlvbi5JRCA9PT0gJ3B5VXBkYXRlQ2FzZURldGFpbHMnKTtcbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIGNvbnN0IG9wZW5Mb2NhbEFjdGlvbiA9IGFjdGlvbnNBUEkub3BlbkxvY2FsQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuTG9jYWxBY3Rpb24oZWRpdEFjdGlvbi5JRCwgeyAuLi5lZGl0QWN0aW9uLCBjb250YWluZXJOYW1lOiAnbW9kYWwnLCB0eXBlOiAnZXhwcmVzcycgfSk7XG4gIH1cblxuICBfbWVudUFjdGlvbkNsaWNrKGRhdGEpIHtcbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIGNvbnN0IG9wZW5Mb2NhbEFjdGlvbiA9IGFjdGlvbnNBUEkub3BlbkxvY2FsQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuTG9jYWxBY3Rpb24oZGF0YS5JRCwgeyAuLi5kYXRhLCBjb250YWluZXJOYW1lOiAnbW9kYWwnLCB0eXBlOiAnZXhwcmVzcycgfSk7XG4gIH1cblxuICBfbWVudVByb2Nlc3NDbGljayhkYXRhKSB7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuUHJvY2Vzc0FjdGlvbiA9IGFjdGlvbnNBUEkub3BlblByb2Nlc3NBY3Rpb24uYmluZChhY3Rpb25zQVBJKTtcblxuICAgIG9wZW5Qcm9jZXNzQWN0aW9uKGRhdGEuSUQsIHsgLi4uZGF0YSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3XCIgaWQ9XCJjYXNlLXZpZXdcIj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5T25seUZBJFwiIGNsYXNzPVwicHNkay1jYXNlLXZpZXctaW5mb1wiPlxuICAgIDxtYXQtdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cInBzZGstY2FzZS12aWV3LXRvb2xiYXJcIj5cbiAgICAgIDxtYXQtdG9vbGJhci1yb3cgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDFyZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS1pY29uLWRpdlwiPlxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJwc2RrLWNhc2Utc3ZnLWljb25cIiBzcmM9XCJ7eyBzdmdDYXNlJCB9fVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctaGVhZGluZ1wiPlxuICAgICAgICAgIDxkaXYgaWQ9XCJjdXJyZW50LWNhc2VJRFwiIFtoaWRkZW5dPVwidHJ1ZVwiPnt7IGN1cnJlbnRDYXNlSUQgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctaGVhZGluZy1pZFwiIGlkPVwiY2FzZUlkXCI+e3sgaWQkIH19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMSBpZD1cImNhc2UtbmFtZVwiPnt7IGhlYWRpbmckIH19PC9oMT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10b29sYmFyLXJvdz5cbiAgICA8L21hdC10b29sYmFyPlxuXG4gICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0QWN0aW9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiX2VkaXRDbGljaygpXCI+e3sgbG9jYWxpemVkVmFsKCdFZGl0JywgbG9jYWxlQ2F0ZWdvcnkpIH19PC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvbk1lbnVcIj57eyBsb2NhbGl6ZWRWYWwoJ0FjdGlvbnMuLi4nLCBsb2NhbGVDYXRlZ29yeSkgfX08L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjYWN0aW9uTWVudT1cIm1hdE1lbnVcIiBvdmVybGFwVHJpZ2dlcj1cImZhbHNlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhckF2YWlsYWJsZUFjdGlvbnMkXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJfbWVudUFjdGlvbkNsaWNrKGFjdGlvbilcIj5cbiAgICAgICAgICAgIHt7IGxvY2FsaXplZFZhbChhY3Rpb24ubmFtZSwgJycsIGxvY2FsZUtleSkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2Nlc3Mgb2YgYXJBdmFpbGFiZVByb2Nlc3NlcyRcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIl9tZW51UHJvY2Vzc0NsaWNrKHByb2Nlc3MpXCI+XG4gICAgICAgICAgICB7eyBwcm9jZXNzLm5hbWUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWRpdmlkZXJcIj48L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy1zdW1tYXJ5XCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiQ2FzZVN1bW1hcnlcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGNhc2VTdW1tYXJ5UENvbm4kIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgKm5nSWY9XCJjYXNlVGFicyQubGVuZ3RoID4gMVwiXG4gICAgICBuYW1lPVwiVmVydGljYWxUYWJzXCJcbiAgICAgIFtwcm9wc109XCJ7IHRhYkNvbmZpZyQ6IGNhc2VUYWJzJCB9XCJcbiAgICAgIFtwYXJlbnRdPVwidGhpc1wiXG4gICAgICBbb3V0cHV0RXZlbnRzXT1cInsgdGFiQ2xpY2s6IG9uVGFiQ2xpY2sgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy1tYWluXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5T25seUZBJFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3N0YWdlcydcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCkudHlwZS50b0xvd2VyQ2FzZSgpID09ICdyZWdpb24nICYmIGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCkubmFtZS50b0xvd2VyQ2FzZSgpID09ICd0b2RvJ1wiXG4gICAgICA+XG4gICAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJSZWdpb25cIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpLCBmb3JtR3JvdXAkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCkudHlwZS50b0xvd2VyQ2FzZSgpID09ICdyZWdpb24nICYmIGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCkubmFtZSA9PSAnTWFpbidcIj5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5T25seUZBJFwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkRlZmVyTG9hZFwiIFtwcm9wc109XCJ7IHBDb25uJCwgbG9hZERhdGEkOiB0YWJEYXRhJCwgbmFtZTogdGFiRGF0YSQ/LmNvbmZpZz8ubmFtZSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5T25seUZBJFwiPlxuICAgIDxkaXYgKm5nSWY9XCJhckNoaWxkcmVuJFwiIGNsYXNzPVwicHNkay1jYXNlLXZpZXctdXRpbGl0aWVzXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk/LnR5cGUudG9Mb3dlckNhc2UoKSA9PSAncmVnaW9uJyAmJiBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpPy5uYW1lID09ICdVdGlsaXRpZXMnXCI+XG4gICAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -56,13 +56,13 @@ export class ConfirmationComponent {
56
56
  this.showConfirmView = false;
57
57
  PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, this.rootInfo);
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationComponent, isStandalone: true, selector: "app-confirmation", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatButtonModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i3.MatButton; }), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmationComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ConfirmationComponent, isStandalone: true, selector: "app-confirmation", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationComponent, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmationComponent, decorators: [{
63
63
  type: Component,
64
64
  args: [{ selector: 'app-confirmation', standalone: true, imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"] }]
65
- }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }]; }, propDecorators: { pConn$: [{
65
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQWlCeEcsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBYjNELHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFXOUMsb0JBQWUsR0FBRyxJQUFJLENBQUM7SUFFdUMsQ0FBQztJQUUvRCxRQUFRO1FBQ04sOEZBQThGO1FBQzlGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osZ0VBQWdFO1FBQ2hFLDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQXVCLENBQUM7UUFDekUsSUFBSSxDQUFDLFVBQVUsR0FBRyxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxFQUFFLFNBQVMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsRUFBRSxLQUFLLENBQUM7UUFDbkMsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSw2Q0FBNkM7UUFDN0Msa0ZBQWtGO1FBQ2xGLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwSCxDQUFDOytHQWxFVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwR0N2QmxDLDQ1QkF1QkEsNE1ERlksWUFBWSxnTkFBRSxlQUFlLDBWQUFtQix3QkFBd0I7OzRGQUV2RSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7NkdBRzNFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IHB1YmxpY0NvbnN0YW50cyB9IGZyb20gJ0BwZWdhL3Bjb3JlLXBjb25uZWN0LXR5cGVkZWZzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IGdldFRvRG9Bc3NpZ25tZW50cyB9IGZyb20gJy4uLy4uL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvaGVscGVycyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgQ29uZmlybWF0aW9uUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIGRhdGFzb3VyY2U6IHsgc291cmNlOiBhbnkgfTtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2hvd0xhYmVsOiBib29sZWFuO1xuICBzaG93VGFza3M6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb25maXJtYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDb25maXJtYXRpb25Qcm9wcztcblxuICByb290SW5mbzogYW55O1xuICBkYXRhc291cmNlOiBhbnk7XG4gIHNob3dUYXNrczogYW55O1xuICBkZXRhaWxQcm9wczogYW55O1xuICB0b0RvTGlzdDogYW55O1xuICBsYWJlbDogc3RyaW5nO1xuICBDT05TVFM6IHR5cGVvZiBwdWJsaWNDb25zdGFudHM7XG4gIHNob3dEZXRhaWxzOiBib29sZWFuO1xuICBzaG93Q29uZmlybVZpZXcgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuQ09OU1RTID0gUENvcmUuZ2V0Q29uc3RhbnRzKCk7XG4gICAgY29uc3QgYWN0aXZlQ29udGFpbmVySXRlbUlEID0gUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRBY3RpdmVDb250YWluZXJJdGVtTmFtZSh0aGlzLnBDb25uJC5nZXRUYXJnZXQoKSk7XG4gICAgdGhpcy5yb290SW5mbyA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0Q29udGFpbmVySXRlbURhdGEodGhpcy5wQ29ubiQuZ2V0VGFyZ2V0KCksIGFjdGl2ZUNvbnRhaW5lckl0ZW1JRCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IHRoZUNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBDb25maXJtYXRpb25Qcm9wcztcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSB0aGVDb25maWdQcm9wcz8uZGF0YXNvdXJjZTtcbiAgICB0aGlzLnNob3dUYXNrcyA9IHRoZUNvbmZpZ1Byb3BzPy5zaG93VGFza3M7XG4gICAgdGhpcy5sYWJlbCA9IHRoZUNvbmZpZ1Byb3BzPy5sYWJlbDtcbiAgICAvLyBHZXQgdGhlIGluaGVyaXRlZCBwcm9wcyBmcm9tIHRoZSBwYXJlbnQgdG8gZGV0ZXJtaW5lIGxhYmVsIHNldHRpbmdzXG4gICAgLy8gTm90IHVzaW5nIHdoYXRzTmV4dCBhdCB0aGUgbW9tZW50LCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBvZiBpdFxuICAgIC8vIGNvbnN0IHdoYXRzTmV4dCA9IHRoaXMuZGF0YXNvdXJjZT8uc291cmNlO1xuICAgIC8vIGNvbnN0IGl0ZW1zID0gd2hhdHNOZXh0Py5sZW5ndGggPiAwID8gd2hhdHNOZXh0Lm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCkgOiAnJztcbiAgICAvLyBjb25zdCB0b2RvUHJvcHMgPSB7IC4uLnRoZUNvbmZpZ1Byb3BzLCByZW5kZXJUb2RvSW5Db25maXJtOiB0cnVlIH07XG4gICAgdGhpcy50b0RvTGlzdCA9IGdldFRvRG9Bc3NpZ25tZW50cyh0aGlzLnBDb25uJCk7XG4gICAgdGhpcy5kZXRhaWxQcm9wcyA9IHsgLi4udGhlQ29uZmlnUHJvcHMsIHNob3dMYWJlbDogZmFsc2UgfTtcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gdGhpcy5wQ29ubiQ/LmdldENoaWxkcmVuKCk/LlswXT8uZ2V0UENvbm5lY3QoKT8uZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uQ29uZmlybVZpZXdDbG9zZSgpIHtcbiAgICB0aGlzLnNob3dDb25maXJtVmlldyA9IGZhbHNlO1xuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5DQVNFX0VWRU5UUy5DTE9TRV9DT05GSVJNX1ZJRVcsIHRoaXMucm9vdEluZm8pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd0NvbmZpcm1WaWV3XCI+XG4gICAgPGgyIGlkPVwiY29uZmlybS1sYWJlbFwiIGNsYXNzPVwiY29uZmlybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9oMj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbHNcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJEZXRhaWxzXCIgW3Byb3BzXT1cInsgcENvbm4kIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dUYXNrcyAmJiB0b0RvTGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgICBbcHJvcHNdPVwieyBwQ29ubiQsIGRhdGFzb3VyY2UkOiB7IHNvdXJjZTogdG9Eb0xpc3QgfSwgaGVhZGVyVGV4dCQ6ICdPcGVuIFRhc2tzJywgdHlwZSQ6IENPTlNUUy5UT0RPLCBpc0NvbmZpcm06IHRydWUgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkb25lLWJ1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25Db25maXJtVmlld0Nsb3NlKClcIj5Eb25lPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidG9Eb0xpc3Q/Lmxlbmd0aCA+IDBcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgW3Byb3BzXT1cInsgcENvbm4kLCBkYXRhc291cmNlJDogeyBzb3VyY2U6IHRvRG9MaXN0IH0sIGhlYWRlclRleHQkOiAnVGFza3MnLCB0eXBlJDogQ09OU1RTLlRPRE8sIGlzQ29uZmlybTogdHJ1ZSB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQWlCeEcsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBYjNELHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFXOUMsb0JBQWUsR0FBRyxJQUFJLENBQUM7SUFFdUMsQ0FBQztJQUUvRCxRQUFRO1FBQ04sOEZBQThGO1FBQzlGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztRQUNaLGdFQUFnRTtRQUNoRSw0QkFBNEI7UUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRSx3REFBd0Q7UUFDeEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQXVCLENBQUM7UUFDekUsSUFBSSxDQUFDLFVBQVUsR0FBRyxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxFQUFFLFNBQVMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsRUFBRSxLQUFLLENBQUM7UUFDbkMsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSw2Q0FBNkM7UUFDN0Msa0ZBQWtGO1FBQ2xGLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwSCxDQUFDOytHQWxFVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwR0N2QmxDLDQ1QkF1QkEsNkxERlksWUFBWSw0S0FBRSxlQUFlLHNRQUFtQix3QkFBd0I7OzRGQUV2RSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7MkZBRzNFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IHB1YmxpY0NvbnN0YW50cyB9IGZyb20gJ0BwZWdhL3Bjb3JlLXBjb25uZWN0LXR5cGVkZWZzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IGdldFRvRG9Bc3NpZ25tZW50cyB9IGZyb20gJy4uLy4uL2luZnJhL0NvbnRhaW5lcnMvZmxvdy1jb250YWluZXIvaGVscGVycyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgQ29uZmlybWF0aW9uUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIGRhdGFzb3VyY2U6IHsgc291cmNlOiBhbnkgfTtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2hvd0xhYmVsOiBib29sZWFuO1xuICBzaG93VGFza3M6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb25maXJtYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDb25maXJtYXRpb25Qcm9wcztcblxuICByb290SW5mbzogYW55O1xuICBkYXRhc291cmNlOiBhbnk7XG4gIHNob3dUYXNrczogYW55O1xuICBkZXRhaWxQcm9wczogYW55O1xuICB0b0RvTGlzdDogYW55O1xuICBsYWJlbDogc3RyaW5nO1xuICBDT05TVFM6IHR5cGVvZiBwdWJsaWNDb25zdGFudHM7XG4gIHNob3dEZXRhaWxzOiBib29sZWFuO1xuICBzaG93Q29uZmlybVZpZXcgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuQ09OU1RTID0gUENvcmUuZ2V0Q29uc3RhbnRzKCk7XG4gICAgY29uc3QgYWN0aXZlQ29udGFpbmVySXRlbUlEID0gUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRBY3RpdmVDb250YWluZXJJdGVtTmFtZSh0aGlzLnBDb25uJC5nZXRUYXJnZXQoKSk7XG4gICAgdGhpcy5yb290SW5mbyA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0Q29udGFpbmVySXRlbURhdGEodGhpcy5wQ29ubiQuZ2V0VGFyZ2V0KCksIGFjdGl2ZUNvbnRhaW5lckl0ZW1JRCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IHRoZUNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBDb25maXJtYXRpb25Qcm9wcztcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSB0aGVDb25maWdQcm9wcz8uZGF0YXNvdXJjZTtcbiAgICB0aGlzLnNob3dUYXNrcyA9IHRoZUNvbmZpZ1Byb3BzPy5zaG93VGFza3M7XG4gICAgdGhpcy5sYWJlbCA9IHRoZUNvbmZpZ1Byb3BzPy5sYWJlbDtcbiAgICAvLyBHZXQgdGhlIGluaGVyaXRlZCBwcm9wcyBmcm9tIHRoZSBwYXJlbnQgdG8gZGV0ZXJtaW5lIGxhYmVsIHNldHRpbmdzXG4gICAgLy8gTm90IHVzaW5nIHdoYXRzTmV4dCBhdCB0aGUgbW9tZW50LCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBvZiBpdFxuICAgIC8vIGNvbnN0IHdoYXRzTmV4dCA9IHRoaXMuZGF0YXNvdXJjZT8uc291cmNlO1xuICAgIC8vIGNvbnN0IGl0ZW1zID0gd2hhdHNOZXh0Py5sZW5ndGggPiAwID8gd2hhdHNOZXh0Lm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCkgOiAnJztcbiAgICAvLyBjb25zdCB0b2RvUHJvcHMgPSB7IC4uLnRoZUNvbmZpZ1Byb3BzLCByZW5kZXJUb2RvSW5Db25maXJtOiB0cnVlIH07XG4gICAgdGhpcy50b0RvTGlzdCA9IGdldFRvRG9Bc3NpZ25tZW50cyh0aGlzLnBDb25uJCk7XG4gICAgdGhpcy5kZXRhaWxQcm9wcyA9IHsgLi4udGhlQ29uZmlnUHJvcHMsIHNob3dMYWJlbDogZmFsc2UgfTtcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gdGhpcy5wQ29ubiQ/LmdldENoaWxkcmVuKCk/LlswXT8uZ2V0UENvbm5lY3QoKT8uZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uQ29uZmlybVZpZXdDbG9zZSgpIHtcbiAgICB0aGlzLnNob3dDb25maXJtVmlldyA9IGZhbHNlO1xuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5DQVNFX0VWRU5UUy5DTE9TRV9DT05GSVJNX1ZJRVcsIHRoaXMucm9vdEluZm8pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd0NvbmZpcm1WaWV3XCI+XG4gICAgPGgyIGlkPVwiY29uZmlybS1sYWJlbFwiIGNsYXNzPVwiY29uZmlybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9oMj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbHNcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJEZXRhaWxzXCIgW3Byb3BzXT1cInsgcENvbm4kIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dUYXNrcyAmJiB0b0RvTGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgICBbcHJvcHNdPVwieyBwQ29ubiQsIGRhdGFzb3VyY2UkOiB7IHNvdXJjZTogdG9Eb0xpc3QgfSwgaGVhZGVyVGV4dCQ6ICdPcGVuIFRhc2tzJywgdHlwZSQ6IENPTlNUUy5UT0RPLCBpc0NvbmZpcm06IHRydWUgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkb25lLWJ1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25Db25maXJtVmlld0Nsb3NlKClcIj5Eb25lPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidG9Eb0xpc3Q/Lmxlbmd0aCA+IDBcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgW3Byb3BzXT1cInsgcENvbm4kLCBkYXRhc291cmNlJDogeyBzb3VyY2U6IHRvRG9MaXN0IH0sIGhlYWRlclRleHQkOiAnVGFza3MnLCB0eXBlJDogQ09OU1RTLlRPRE8sIGlzQ29uZmlybTogdHJ1ZSB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -225,15 +225,15 @@ export class DataReferenceComponent {
225
225
  });
226
226
  }
227
227
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataReferenceComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataReferenceComponent, isStandalone: true, selector: "app-data-reference", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataReferenceComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataReferenceComponent, isStandalone: true, selector: "app-data-reference", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
230
230
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataReferenceComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataReferenceComponent, decorators: [{
232
232
  type: Component,
233
233
  args: [{ selector: 'app-data-reference', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n" }]
234
- }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }]; }, propDecorators: { pConn$: [{
234
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
235
235
  type: Input
236
236
  }], formGroup$: [{
237
237
  type: Input
238
238
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2RhdGEtcmVmZXJlbmNlL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBRXhHLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFTNUQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBdkIzRCw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUU5QyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFRLEVB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LENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDeEgsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNoRDthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzsrR0FsUVUsc0JBQXNCO21HQUF0QixzQkFBc0Isc0lDZm5DLHVwQkFhQSw0RkRBWSxZQUFZLHFYQUFtQix3QkFBd0I7OzRGQUV0RCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzs2R0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgU0VMRUNUSU9OX01PREUgPSB7IFNJTkdMRTogJ3NpbmdsZScsIE1VTFRJOiAnbXVsdGknIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRhLXJlZmVyZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YVJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBhckZpZWxkcyQ6IGFueVtdID0gW107XG4gIHJlZmVyZW5jZVR5cGUgPSAnJztcbiAgc2VsZWN0aW9uTW9kZSA9ICcnO1xuICBwYXJhbWV0ZXJzO1xuICBoaWRlTGFiZWwgPSBmYWxzZTtcbiAgY2hpbGRyZW5Ub1JlbmRlcjogYW55W10gPSBbXTtcbiAgZHJvcERvd25EYXRhU291cmNlID0gJyc7XG4gIGlzRGlzcGxheU1vZGVFbmFibGVkID0gZmFsc2U7XG4gIHByb3BzVG9Vc2U6IGFueSA9IHt9O1xuICByYXdWaWV3TWV0YWRhdGE6IGFueSA9IHt9O1xuICB2aWV3TmFtZSA9ICcnO1xuICBmaXJzdENoaWxkTWV0YTogYW55ID0ge307XG4gIGNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IGZhbHNlO1xuICBwcm9wTmFtZSA9ICcnO1xuICBmaXJzdENoaWxkUENvbm5lY3Q7XG4gIGNoaWxkcmVuO1xuICBkaXNwbGF5U2luZ2xlUmVmOiBib29sZWFuO1xuICBkaXNwbGF5TXVsdGlSZWY6IGJvb2xlYW47XG4gIHJlZkxpc3Q6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNoaWxkcmVuID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YT8udHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGtleSwgdGV4dCB9ID0gdGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuZGF0YXNvdXJjZS5maWVsZHM7XG4gICAgICAoXG4gICAgICAgIFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldERhdGEoXG4gICAgICAgICAgdGhpcy5yZWZMaXN0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgJydcbiAgICAgICAgKSBhcyBQcm9taXNlPGFueT5cbiAgICAgIClcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZGREYXRhU291cmNlID0gcmVzLmRhdGEuZGF0YVxuICAgICAgICAgICAgICAubWFwKGxpc3RJdGVtID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBsaXN0SXRlbVtrZXkuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHRleHQ6IGxpc3RJdGVtW3RleHQuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsaXN0SXRlbVt2YWx1ZS5zcGxpdCgnIC4nLCAyKVsxXV1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSk7XG4gICAgICAgICAgICAvLyBGaWx0ZXJpbmcgb3V0IHVuZGVmaW5lZCBlbnRyaWVzIHRoYXQgd2lsbCBicmVhayBwcmV2aWV3XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZSA9IGRkRGF0YVNvdXJjZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZERhdGFTb3VyY2U6IGFueSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgZGF0YTogeyBkYXRhOiBbXSB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgLy8gVXBkYXRlIHByb3BlcnRpZXMgYmFzZWQgb24gY29uZmlnUHJvcHNcbiAgICBjb25zdCB0aGVDb25maWdQcm9wczogYW55ID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb3BlcnRpZXNGcm9tUHJvcHModGhlQ29uZmlnUHJvcHMpO1xuXG4gICAgY29uc3QgZGlzcGxheUFzID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheUFzO1xuICAgIGNvbnN0IGRpc3BsYXlNb2RlID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheU1vZGU7XG4gICAgdGhpcy5yYXdWaWV3TWV0YWRhdGEgPSB0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpO1xuICAgIHRoaXMudmlld05hbWUgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5uYW1lO1xuICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblswXTtcbiAgICB0aGlzLnJlZkxpc3QgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucmVmZXJlbmNlTGlzdDtcbiAgICB0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IHRoZUNvbmZpZ1Byb3BzLmFsbG93QW5kUGVyc2lzdENoYW5nZXNJblJldmlld01vZGUgJiYgKGRpc3BsYXlBcyA9PT0gJ2F1dG9jb21wbGV0ZScgfHwgZGlzcGxheUFzID09PSAnZHJvcGRvd24nKTtcbiAgICAvLyB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSB0aGlzLmNoaWxkcmVuO1xuICAgIHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBbJ0xBQkVMU19MRUZUJywgJ1NUQUNLRURfTEFSR0VfVkFMJ10uaW5jbHVkZXMoZGlzcGxheU1vZGUpO1xuXG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3Q7XG5cbiAgICAgIC8qIHJlbW92ZSByZWZyZXNoIFdoZW4gY29uZGl0aW9uIGZyb20gdGhvc2Ugb2xkIHZpZXcgc28gdGhhdCBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBydW50aW1lICovXG4gICAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWc/LnJlYWRPbmx5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5yZWFkT25seTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRNZXRhPy50eXBlID09PSAnRHJvcGRvd24nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2Uuc291cmNlID0gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZVxuICAgICAgICAgIDogJ0BEQVRBU09VUkNFICcuY29uY2F0KHRoaXMucmVmTGlzdCkuY29uY2F0KCcucHhSZXN1bHRzJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdBdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UgPSB0aGlzLnJlZkxpc3Q7XG5cbiAgICAgICAgLyogSW5zZXJ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21wb25lbnQgb25seSBpZiBwcmVzZW50ICovXG4gICAgICAgIGlmICh0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5wYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBzZXQgZGlzcGxheU1vZGUgY29uZGl0aW9uYWxseVxuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSkge1xuICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGEudHlwZSA9PT0gJ1NpbXBsZVRhYmxlU2VsZWN0JyAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJKSB7XG4gICAgICAgIHRoaXMucHJvcE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuc2VsZWN0aW9uTGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BOYW1lID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZUNoaWxkcmVuVG9SZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0aWVzRnJvbVByb3BzKHRoZUNvbmZpZ1Byb3BzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGVDb25maWdQcm9wcy5sYWJlbDtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGVDb25maWdQcm9wcy5zaG93TGFiZWw7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhlQ29uZmlnUHJvcHMucmVmZXJlbmNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSB0aGVDb25maWdQcm9wcy5zZWxlY3Rpb25Nb2RlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoZUNvbmZpZ1Byb3BzLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGVDb25maWdQcm9wcy5oaWRlTGFiZWw7XG5cbiAgICB0aGlzLnByb3BzVG9Vc2UgPSB7IGxhYmVsLCBzaG93TGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBpZiAodGhpcy5wcm9wc1RvVXNlLnNob3dMYWJlbCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ2hpbGRyZW5Ub1JlbmRlcigpIHtcbiAgICBjb25zdCB0aGVSZWNyZWF0ZWRGaXJzdENoaWxkID0gdGhpcy5yZWNyZWF0ZWRGaXJzdENoaWxkKCk7XG4gICAgY29uc3Qgdmlld3NSZWdpb24gPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblsxXTtcbiAgICBpZiAodmlld3NSZWdpb24/Lm5hbWUgPT09ICdWaWV3cycgJiYgdmlld3NSZWdpb24uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSBbdGhlUmVjcmVhdGVkRmlyc3RDaGlsZCwgLi4udGhpcy5jaGlsZHJlbi5zbGljZSgxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IFt0aGVSZWNyZWF0ZWRGaXJzdENoaWxkXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24oZXZlbnQpIHtcbiAgICBjb25zdCBjYXNlS2V5ID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRLZXkoKTtcbiAgICBjb25zdCByZWZyZXNoT3B0aW9ucyA9IHsgYXV0b0RldGVjdFJlZnJlc2g6IHRydWUgfTtcbiAgICAvLyBAdHMtaWdub3JlIC0gc2Vjb25kIHBhcmFtZXRlciBwYWdlUmVmZXJlbmNlIGZvciBnZXRWYWx1ZSBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgaWYgKHRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlICYmIHRoaXMucENvbm4kLmdldFZhbHVlKCdfX2N1cnJlbnRQYWdlVGFiVmlld05hbWUnKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHNlY29uZCBwYXJhbWV0ZXIgcGFnZVJlZmVyZW5jZSBmb3IgZ2V0VmFsdWUgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgICAgdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpLnJlZnJlc2hDYXNlVmlldyhjYXNlS2V5LCB0aGlzLnBDb25uJC5nZXRWYWx1ZSgnX19jdXJyZW50UGFnZVRhYlZpZXdOYW1lJyksIG51bGwsIHJlZnJlc2hPcHRpb25zKTtcbiAgICAgIFBDb3JlLmdldERlZmVyTG9hZE1hbmFnZXIoKS5yZWZyZXNoQWN0aXZlQ29tcG9uZW50cyh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGdSZWYgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKTtcbiAgICAgIHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKS5yZWZyZXNoQ2FzZVZpZXcoY2FzZUtleSwgdGhpcy52aWV3TmFtZSwgcGdSZWYsIHJlZnJlc2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvQ29tcGxldGUgc2V0cyB2YWx1ZSBvbiBldmVudC5pZCB3aGVyZWFzIERyb3Bkb3duIHNldHMgaXQgb24gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgY29uc3QgcHJvcFZhbHVlID0gZXZlbnQ/LmlkIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGlmIChwcm9wVmFsdWUgJiYgdGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgKFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldENhc2VFZGl0TG9jayhjYXNlS2V5LCAnJykgYXMgUHJvbWlzZTxhbnk+KS50aGVuKGNhc2VSZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2VUb2tlbnMgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKS5zcGxpdCgnLicpO1xuICAgICAgICBsZXQgY3VyciA9IHt9O1xuICAgICAgICBjb25zdCBjb21taXREYXRhID0gY3VycjtcblxuICAgICAgICBwYWdlVG9rZW5zLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmIChlbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGN1cnJbZWxdID0ge307XG4gICAgICAgICAgICBjdXJyID0gY3VycltlbF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBleHBlY3RpbmcgZm9ybWF0IGxpa2Uge0N1c3RvbWVyOiB7cHlJRDpcIkMtMTAwXCJ9fVxuICAgICAgICBjb25zdCBwcm9wQXJyID0gdGhpcy5wcm9wTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICBwcm9wQXJyLmZvckVhY2goKGVsZW1lbnQsIGlkeCkgPT4ge1xuICAgICAgICAgIGlmIChpZHggKyAxID09PSBwcm9wQXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHt9O1xuICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxlbWVudF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAoXG4gICAgICAgICAgUENvcmUuZ2V0Q2FzZVV0aWxzKCkudXBkYXRlQ2FzZUVkaXRGaWVsZHNEYXRhKFxuICAgICAgICAgICAgY2FzZUtleSxcbiAgICAgICAgICAgIHsgW2Nhc2VLZXldOiBjb21taXREYXRhIH0sXG4gICAgICAgICAgICBjYXNlUmVzcG9uc2UuaGVhZGVycy5ldGFnLFxuICAgICAgICAgICAgdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKVxuICAgICAgICAgICkgYXMgUHJvbWlzZTxhbnk+XG4gICAgICAgICkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS51cGRhdGVQYXJlbnRMYXN0VXBkYXRlVGltZSh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpLCByZXNwb25zZS5kYXRhLmRhdGEuY2FzZUluZm8ubGFzdFVwZGF0ZVRpbWUpO1xuICAgICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkudXBkYXRlUmVsYXRlZENvbnRleHRFdGFnKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmhlYWRlcnMuZXRhZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmUtY3JlYXRlIGZpcnN0IGNoaWxkIHdpdGggb3ZlcnJpZGRlbiBwcm9wc1xuICAvLyBNZW1vaXplZCBjaGlsZCBpbiBvcmRlciB0byBzdG9wIHVubW91bnQgYW5kIHJlbW91bnQgb2YgdGhlIGNoaWxkIGNvbXBvbmVudCB3aGVuIGRhdGEgcmVmZXJlbmNlXG4gIC8vIHJlcmVuZGVycyB3aXRob3V0IGFueSBhY3R1YWwgY2hhbmdlXG4gIHJlY3JlYXRlZEZpcnN0Q2hpbGQoKSB7XG4gICAgY29uc3QgeyB0eXBlLCBjb25maWcgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGE7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICBjb250ZXh0OiAnJ1xuICAgICAgfSBhcyBhbnkpO1xuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSAmJiB0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuU0lOR0xFKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVNpbmdsZVJlZiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVEkpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TXVsdGlSZWYgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIGRhdGFzb3VyY2Ugd2l0aCBwYXJhbWV0ZXJzIHlvdSBjYW5ub3QgbG9hZCB0aGUgZHJvcGRvd24gYmVmb3JlIHRoZSBwYXJhbWV0ZXJzXG4gICAgICBpZiAodHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMgJiYgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCgpLmNyZWF0ZUNvbXBvbmVudCh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy5wcm9wc1RvVXNlLnJlcXVpcmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHRoaXMucHJvcHNUb1VzZS52aXNpYmlsaXR5LFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzVG9Vc2UuZGlzYWJsZWQsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJvcHNUb1VzZS5sYWJlbCxcbiAgICAgICAgICB2aWV3TmFtZTogdGhpcy5wQ29ubiQuZ2V0Q3VycmVudFZpZXcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucGFyYW1ldGVycyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgbG9jYWxlUmVmZXJlbmNlOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcubG9jYWxlUmVmZXJlbmNlLFxuICAgICAgICAgIC4uLih0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLlNJTkdMRSA/IHsgcmVmZXJlbmNlVHlwZTogdGhpcy5yZWZlcmVuY2VUeXBlIH0gOiAnJyksXG4gICAgICAgICAgZGF0YVJlbGF0aW9uc2hpcENvbnRleHQ6XG4gICAgICAgICAgICB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcuY29udGV4dENsYXNzICYmIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5uYW1lID8gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnLm5hbWUgOiBudWxsLFxuICAgICAgICAgIGhpZGVMYWJlbDogdGhpcy5oaWRlTGFiZWwsXG4gICAgICAgICAgb25SZWNvcmRDaGFuZ2U6IHRoaXMuaGFuZGxlU2VsZWN0aW9uLmJpbmQodGhpcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY2hpbGRyZW5Ub1JlbmRlciAmJiBjaGlsZHJlblRvUmVuZGVyLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5TXVsdGlSZWZcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgY2hpbGRyZW5Ub1JlbmRlclwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgW25hbWVdPVwia2lkPy5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJkaXNwbGF5U2luZ2xlUmVmXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlNpbmdsZVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlNdWx0aVJlZlwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJNdWx0aVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2RhdGEtcmVmZXJlbmNlL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBRXhHLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFTNUQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBdkIzRCw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUU5QyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFRLEVB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QUFRLEVBQUUsS0FBSztvQkFDZixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZTtvQkFDNUQsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzlGLHVCQUF1QixFQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7b0JBQ3hILFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDaEQ7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0FsUVUsc0JBQXNCO21HQUF0QixzQkFBc0Isc0lDZm5DLHVwQkFhQSw2RURBWSxZQUFZLCtUQUFtQix3QkFBd0I7OzRGQUV0RCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsyRkFHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgU0VMRUNUSU9OX01PREUgPSB7IFNJTkdMRTogJ3NpbmdsZScsIE1VTFRJOiAnbXVsdGknIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRhLXJlZmVyZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YVJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBhckZpZWxkcyQ6IGFueVtdID0gW107XG4gIHJlZmVyZW5jZVR5cGUgPSAnJztcbiAgc2VsZWN0aW9uTW9kZSA9ICcnO1xuICBwYXJhbWV0ZXJzO1xuICBoaWRlTGFiZWwgPSBmYWxzZTtcbiAgY2hpbGRyZW5Ub1JlbmRlcjogYW55W10gPSBbXTtcbiAgZHJvcERvd25EYXRhU291cmNlID0gJyc7XG4gIGlzRGlzcGxheU1vZGVFbmFibGVkID0gZmFsc2U7XG4gIHByb3BzVG9Vc2U6IGFueSA9IHt9O1xuICByYXdWaWV3TWV0YWRhdGE6IGFueSA9IHt9O1xuICB2aWV3TmFtZSA9ICcnO1xuICBmaXJzdENoaWxkTWV0YTogYW55ID0ge307XG4gIGNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IGZhbHNlO1xuICBwcm9wTmFtZSA9ICcnO1xuICBmaXJzdENoaWxkUENvbm5lY3Q7XG4gIGNoaWxkcmVuO1xuICBkaXNwbGF5U2luZ2xlUmVmOiBib29sZWFuO1xuICBkaXNwbGF5TXVsdGlSZWY6IGJvb2xlYW47XG4gIHJlZkxpc3Q6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNoaWxkcmVuID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YT8udHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGtleSwgdGV4dCB9ID0gdGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuZGF0YXNvdXJjZS5maWVsZHM7XG4gICAgICAoXG4gICAgICAgIFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldERhdGEoXG4gICAgICAgICAgdGhpcy5yZWZMaXN0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgJydcbiAgICAgICAgKSBhcyBQcm9taXNlPGFueT5cbiAgICAgIClcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZGREYXRhU291cmNlID0gcmVzLmRhdGEuZGF0YVxuICAgICAgICAgICAgICAubWFwKGxpc3RJdGVtID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBsaXN0SXRlbVtrZXkuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHRleHQ6IGxpc3RJdGVtW3RleHQuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsaXN0SXRlbVt2YWx1ZS5zcGxpdCgnIC4nLCAyKVsxXV1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSk7XG4gICAgICAgICAgICAvLyBGaWx0ZXJpbmcgb3V0IHVuZGVmaW5lZCBlbnRyaWVzIHRoYXQgd2lsbCBicmVhayBwcmV2aWV3XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZSA9IGRkRGF0YVNvdXJjZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZERhdGFTb3VyY2U6IGFueSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgZGF0YTogeyBkYXRhOiBbXSB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgLy8gVXBkYXRlIHByb3BlcnRpZXMgYmFzZWQgb24gY29uZmlnUHJvcHNcbiAgICBjb25zdCB0aGVDb25maWdQcm9wczogYW55ID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb3BlcnRpZXNGcm9tUHJvcHModGhlQ29uZmlnUHJvcHMpO1xuXG4gICAgY29uc3QgZGlzcGxheUFzID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheUFzO1xuICAgIGNvbnN0IGRpc3BsYXlNb2RlID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheU1vZGU7XG4gICAgdGhpcy5yYXdWaWV3TWV0YWRhdGEgPSB0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpO1xuICAgIHRoaXMudmlld05hbWUgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5uYW1lO1xuICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblswXTtcbiAgICB0aGlzLnJlZkxpc3QgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucmVmZXJlbmNlTGlzdDtcbiAgICB0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IHRoZUNvbmZpZ1Byb3BzLmFsbG93QW5kUGVyc2lzdENoYW5nZXNJblJldmlld01vZGUgJiYgKGRpc3BsYXlBcyA9PT0gJ2F1dG9jb21wbGV0ZScgfHwgZGlzcGxheUFzID09PSAnZHJvcGRvd24nKTtcbiAgICAvLyB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSB0aGlzLmNoaWxkcmVuO1xuICAgIHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBbJ0xBQkVMU19MRUZUJywgJ1NUQUNLRURfTEFSR0VfVkFMJ10uaW5jbHVkZXMoZGlzcGxheU1vZGUpO1xuXG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3Q7XG5cbiAgICAgIC8qIHJlbW92ZSByZWZyZXNoIFdoZW4gY29uZGl0aW9uIGZyb20gdGhvc2Ugb2xkIHZpZXcgc28gdGhhdCBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBydW50aW1lICovXG4gICAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWc/LnJlYWRPbmx5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5yZWFkT25seTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRNZXRhPy50eXBlID09PSAnRHJvcGRvd24nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2Uuc291cmNlID0gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZVxuICAgICAgICAgIDogJ0BEQVRBU09VUkNFICcuY29uY2F0KHRoaXMucmVmTGlzdCkuY29uY2F0KCcucHhSZXN1bHRzJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdBdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UgPSB0aGlzLnJlZkxpc3Q7XG5cbiAgICAgICAgLyogSW5zZXJ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21wb25lbnQgb25seSBpZiBwcmVzZW50ICovXG4gICAgICAgIGlmICh0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5wYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBzZXQgZGlzcGxheU1vZGUgY29uZGl0aW9uYWxseVxuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSkge1xuICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGEudHlwZSA9PT0gJ1NpbXBsZVRhYmxlU2VsZWN0JyAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJKSB7XG4gICAgICAgIHRoaXMucHJvcE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuc2VsZWN0aW9uTGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BOYW1lID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZUNoaWxkcmVuVG9SZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0aWVzRnJvbVByb3BzKHRoZUNvbmZpZ1Byb3BzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGVDb25maWdQcm9wcy5sYWJlbDtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGVDb25maWdQcm9wcy5zaG93TGFiZWw7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhlQ29uZmlnUHJvcHMucmVmZXJlbmNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSB0aGVDb25maWdQcm9wcy5zZWxlY3Rpb25Nb2RlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoZUNvbmZpZ1Byb3BzLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGVDb25maWdQcm9wcy5oaWRlTGFiZWw7XG5cbiAgICB0aGlzLnByb3BzVG9Vc2UgPSB7IGxhYmVsLCBzaG93TGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBpZiAodGhpcy5wcm9wc1RvVXNlLnNob3dMYWJlbCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ2hpbGRyZW5Ub1JlbmRlcigpIHtcbiAgICBjb25zdCB0aGVSZWNyZWF0ZWRGaXJzdENoaWxkID0gdGhpcy5yZWNyZWF0ZWRGaXJzdENoaWxkKCk7XG4gICAgY29uc3Qgdmlld3NSZWdpb24gPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblsxXTtcbiAgICBpZiAodmlld3NSZWdpb24/Lm5hbWUgPT09ICdWaWV3cycgJiYgdmlld3NSZWdpb24uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSBbdGhlUmVjcmVhdGVkRmlyc3RDaGlsZCwgLi4udGhpcy5jaGlsZHJlbi5zbGljZSgxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IFt0aGVSZWNyZWF0ZWRGaXJzdENoaWxkXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24oZXZlbnQpIHtcbiAgICBjb25zdCBjYXNlS2V5ID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRLZXkoKTtcbiAgICBjb25zdCByZWZyZXNoT3B0aW9ucyA9IHsgYXV0b0RldGVjdFJlZnJlc2g6IHRydWUgfTtcbiAgICAvLyBAdHMtaWdub3JlIC0gc2Vjb25kIHBhcmFtZXRlciBwYWdlUmVmZXJlbmNlIGZvciBnZXRWYWx1ZSBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgaWYgKHRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlICYmIHRoaXMucENvbm4kLmdldFZhbHVlKCdfX2N1cnJlbnRQYWdlVGFiVmlld05hbWUnKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHNlY29uZCBwYXJhbWV0ZXIgcGFnZVJlZmVyZW5jZSBmb3IgZ2V0VmFsdWUgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgICAgdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpLnJlZnJlc2hDYXNlVmlldyhjYXNlS2V5LCB0aGlzLnBDb25uJC5nZXRWYWx1ZSgnX19jdXJyZW50UGFnZVRhYlZpZXdOYW1lJyksIG51bGwsIHJlZnJlc2hPcHRpb25zKTtcbiAgICAgIFBDb3JlLmdldERlZmVyTG9hZE1hbmFnZXIoKS5yZWZyZXNoQWN0aXZlQ29tcG9uZW50cyh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGdSZWYgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKTtcbiAgICAgIHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKS5yZWZyZXNoQ2FzZVZpZXcoY2FzZUtleSwgdGhpcy52aWV3TmFtZSwgcGdSZWYsIHJlZnJlc2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvQ29tcGxldGUgc2V0cyB2YWx1ZSBvbiBldmVudC5pZCB3aGVyZWFzIERyb3Bkb3duIHNldHMgaXQgb24gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgY29uc3QgcHJvcFZhbHVlID0gZXZlbnQ/LmlkIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGlmIChwcm9wVmFsdWUgJiYgdGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgKFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldENhc2VFZGl0TG9jayhjYXNlS2V5LCAnJykgYXMgUHJvbWlzZTxhbnk+KS50aGVuKGNhc2VSZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2VUb2tlbnMgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKS5zcGxpdCgnLicpO1xuICAgICAgICBsZXQgY3VyciA9IHt9O1xuICAgICAgICBjb25zdCBjb21taXREYXRhID0gY3VycjtcblxuICAgICAgICBwYWdlVG9rZW5zLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmIChlbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGN1cnJbZWxdID0ge307XG4gICAgICAgICAgICBjdXJyID0gY3VycltlbF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBleHBlY3RpbmcgZm9ybWF0IGxpa2Uge0N1c3RvbWVyOiB7cHlJRDpcIkMtMTAwXCJ9fVxuICAgICAgICBjb25zdCBwcm9wQXJyID0gdGhpcy5wcm9wTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICBwcm9wQXJyLmZvckVhY2goKGVsZW1lbnQsIGlkeCkgPT4ge1xuICAgICAgICAgIGlmIChpZHggKyAxID09PSBwcm9wQXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHt9O1xuICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxlbWVudF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAoXG4gICAgICAgICAgUENvcmUuZ2V0Q2FzZVV0aWxzKCkudXBkYXRlQ2FzZUVkaXRGaWVsZHNEYXRhKFxuICAgICAgICAgICAgY2FzZUtleSxcbiAgICAgICAgICAgIHsgW2Nhc2VLZXldOiBjb21taXREYXRhIH0sXG4gICAgICAgICAgICBjYXNlUmVzcG9uc2UuaGVhZGVycy5ldGFnLFxuICAgICAgICAgICAgdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKVxuICAgICAgICAgICkgYXMgUHJvbWlzZTxhbnk+XG4gICAgICAgICkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS51cGRhdGVQYXJlbnRMYXN0VXBkYXRlVGltZSh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpLCByZXNwb25zZS5kYXRhLmRhdGEuY2FzZUluZm8ubGFzdFVwZGF0ZVRpbWUpO1xuICAgICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkudXBkYXRlUmVsYXRlZENvbnRleHRFdGFnKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmhlYWRlcnMuZXRhZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmUtY3JlYXRlIGZpcnN0IGNoaWxkIHdpdGggb3ZlcnJpZGRlbiBwcm9wc1xuICAvLyBNZW1vaXplZCBjaGlsZCBpbiBvcmRlciB0byBzdG9wIHVubW91bnQgYW5kIHJlbW91bnQgb2YgdGhlIGNoaWxkIGNvbXBvbmVudCB3aGVuIGRhdGEgcmVmZXJlbmNlXG4gIC8vIHJlcmVuZGVycyB3aXRob3V0IGFueSBhY3R1YWwgY2hhbmdlXG4gIHJlY3JlYXRlZEZpcnN0Q2hpbGQoKSB7XG4gICAgY29uc3QgeyB0eXBlLCBjb25maWcgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGE7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICBjb250ZXh0OiAnJ1xuICAgICAgfSBhcyBhbnkpO1xuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSAmJiB0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuU0lOR0xFKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVNpbmdsZVJlZiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVEkpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TXVsdGlSZWYgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIGRhdGFzb3VyY2Ugd2l0aCBwYXJhbWV0ZXJzIHlvdSBjYW5ub3QgbG9hZCB0aGUgZHJvcGRvd24gYmVmb3JlIHRoZSBwYXJhbWV0ZXJzXG4gICAgICBpZiAodHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMgJiYgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCgpLmNyZWF0ZUNvbXBvbmVudCh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy5wcm9wc1RvVXNlLnJlcXVpcmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHRoaXMucHJvcHNUb1VzZS52aXNpYmlsaXR5LFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzVG9Vc2UuZGlzYWJsZWQsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJvcHNUb1VzZS5sYWJlbCxcbiAgICAgICAgICB2aWV3TmFtZTogdGhpcy5wQ29ubiQuZ2V0Q3VycmVudFZpZXcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucGFyYW1ldGVycyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgbG9jYWxlUmVmZXJlbmNlOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcubG9jYWxlUmVmZXJlbmNlLFxuICAgICAgICAgIC4uLih0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLlNJTkdMRSA/IHsgcmVmZXJlbmNlVHlwZTogdGhpcy5yZWZlcmVuY2VUeXBlIH0gOiAnJyksXG4gICAgICAgICAgZGF0YVJlbGF0aW9uc2hpcENvbnRleHQ6XG4gICAgICAgICAgICB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcuY29udGV4dENsYXNzICYmIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5uYW1lID8gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnLm5hbWUgOiBudWxsLFxuICAgICAgICAgIGhpZGVMYWJlbDogdGhpcy5oaWRlTGFiZWwsXG4gICAgICAgICAgb25SZWNvcmRDaGFuZ2U6IHRoaXMuaGFuZGxlU2VsZWN0aW9uLmJpbmQodGhpcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY2hpbGRyZW5Ub1JlbmRlciAmJiBjaGlsZHJlblRvUmVuZGVyLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5TXVsdGlSZWZcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgY2hpbGRyZW5Ub1JlbmRlclwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgW25hbWVdPVwia2lkPy5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJkaXNwbGF5U2luZ2xlUmVmXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlNpbmdsZVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlNdWx0aVJlZlwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJNdWx0aVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -47,15 +47,15 @@ export class DefaultFormComponent {
47
47
  // normalize them
48
48
  this.arChildren$ = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
49
49
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultFormComponent, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultFormComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
56
- }], ctorParameters: function () { return [{ type: i1.TemplateUtils }]; }, propDecorators: { pConn$: [{
56
+ }], ctorParameters: () => [{ type: i1.TemplateUtils }], propDecorators: { pConn$: [{
57
57
  type: Input
58
58
  }], formGroup$: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFpQnhHLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWGhELHdCQUFtQixHQUFHO1lBQ3BCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsU0FBUztZQUNULGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixjQUFjO1NBQ2YsQ0FBQztJQUVpRCxDQUFDO0lBRXBELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBc0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNoRSxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07U0FDVDtRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQzsrR0FyRFUsb0JBQW9CO21HQUFwQixvQkFBb0Isb0lDckJqQyw0M0JBbUJBLDR0QkRBWSxZQUFZLDBmQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3RlbXBsYXRlLXV0aWxzJztcblxuaW50ZXJmYWNlIERlZmF1bHRGb3JtUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIE51bUNvbHM6IHN0cmluZztcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgZGl2Q2xhc3MkOiBzdHJpbmc7XG4gIHRlbXBsYXRlOiBhbnk7XG4gIHNob3dMYWJlbDogYW55O1xuICBsYWJlbDogYW55O1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBOT19IRUFERVJfVEVNUExBVEVTID0gW1xuICAgICdTdWJUYWJzJyxcbiAgICAnU2ltcGxlVGFibGUnLFxuICAgICdEZXRhaWxzJyxcbiAgICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICAgJ0RldGFpbHNUaHJlZUNvbHVtbicsXG4gICAgJ05hcnJvd1dpZGVEZXRhaWxzJyxcbiAgICAnV2lkZU5hcnJvd0RldGFpbHMnLFxuICAgICdDb25maXJtYXRpb24nXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVV0aWxzOiBUZW1wbGF0ZVV0aWxzKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBEZWZhdWx0Rm9ybVByb3BzO1xuICAgIHRoaXMudGVtcGxhdGUgPSBjb25maWdQcm9wcz8udGVtcGxhdGU7XG4gICAgY29uc3QgcHJvcFRvVXNlOiBhbnkgPSB7IC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICB0aGlzLnNob3dMYWJlbCA9IHByb3BUb1VzZT8uc2hvd0xhYmVsO1xuICAgIHRoaXMubGFiZWwgPSBwcm9wVG9Vc2U/LmxhYmVsO1xuICAgIGNvbnN0IGtpZHMgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpIGFzIGFueVtdO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gdGhpcy50ZW1wbGF0ZVV0aWxzLmdldEluc3RydWN0aW9ucyh0aGlzLnBDb25uJCwgY29uZmlnUHJvcHM/Lmluc3RydWN0aW9ucyk7XG5cbiAgICBjb25zdCBudW1Db2xzID0gY29uZmlnUHJvcHMuTnVtQ29scyA/IGNvbmZpZ1Byb3BzLk51bUNvbHMgOiAnMSc7XG4gICAgc3dpdGNoIChudW1Db2xzKSB7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXR3by1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10aHJlZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyByZXBvaW50IGNoaWxkcmVuIGJlZm9yZSBnZXR0aW5nIHRlbXBsYXRlQXJyYXlcbiAgICAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiAncmVmZXJlbmNlJyBjb21wb25lbnQsIHNvIHdlIG5lZWQgdG9cbiAgICAvLyAgbm9ybWFsaXplIHRoZW1cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkoa2lkc1swXS5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKCkpO1xuICB9XG59XG4iLCI8IS0tIFdoZW4gYWRkaW5nIGEgY29tcG9uZW50IGhlcmUsIGFkZCB0aGUgc2FtZSBjb21wb25lbnQgaW4gJ3JlZ2lvbicgdGVtcGxhdGUgYXMgd2VsbCAtLT5cbjxkaXYgKm5nSWY9XCIhTk9fSEVBREVSX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSkgJiYgc2hvd0xhYmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj57eyBsYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJwc2RrLWRlZmF1bHQtZm9ybS1pbnN0cnVjdGlvbi10ZXh0XCI+XG4gIDxkaXYga2V5PVwiaW5zdHJ1Y3Rpb25zXCIgaWQ9XCJpbnN0cnVjdGlvbi10ZXh0XCIgW2lubmVySFRNTF09XCJpbnN0cnVjdGlvbnNcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBbY2xhc3NOYW1lXT1cImRpdkNsYXNzJFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIiBbbmdDbGFzc109XCJ7ICdncmlkLWNvbHVtbic6IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PT0gJ1ZpZXcnIH1cIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICAgIH1cIlxuICAgICAgZXJyb3JNc2c9XCJEZWZhdWx0Rm9ybSB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFpQnhHLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWGhELHdCQUFtQixHQUFHO1lBQ3BCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsU0FBUztZQUNULGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixjQUFjO1NBQ2YsQ0FBQztJQUVpRCxDQUFDO0lBRXBELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBc0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNoRSxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07UUFDVixDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELDREQUE0RDtRQUM1RCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDOytHQXJEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixvSUNyQmpDLDQzQkFtQkEsNnNCREFZLFlBQVksa2JBQW1CLHdCQUF3Qjs7NEZBRXRELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2tGQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdGVtcGxhdGUtdXRpbHMnO1xuXG5pbnRlcmZhY2UgRGVmYXVsdEZvcm1Qcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgTnVtQ29sczogc3RyaW5nO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRlZmF1bHQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICBkaXZDbGFzcyQ6IHN0cmluZztcbiAgdGVtcGxhdGU6IGFueTtcbiAgc2hvd0xhYmVsOiBhbnk7XG4gIGxhYmVsOiBhbnk7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xuXG4gIE5PX0hFQURFUl9URU1QTEFURVMgPSBbXG4gICAgJ1N1YlRhYnMnLFxuICAgICdTaW1wbGVUYWJsZScsXG4gICAgJ0RldGFpbHMnLFxuICAgICdEZXRhaWxzVHdvQ29sdW1uJyxcbiAgICAnRGV0YWlsc1RocmVlQ29sdW1uJyxcbiAgICAnTmFycm93V2lkZURldGFpbHMnLFxuICAgICdXaWRlTmFycm93RGV0YWlscycsXG4gICAgJ0NvbmZpcm1hdGlvbidcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbXBsYXRlVXRpbHM6IFRlbXBsYXRlVXRpbHMpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnUHJvcHMgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpIGFzIERlZmF1bHRGb3JtUHJvcHM7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IGNvbmZpZ1Byb3BzPy50ZW1wbGF0ZTtcbiAgICBjb25zdCBwcm9wVG9Vc2U6IGFueSA9IHsgLi4udGhpcy5wQ29ubiQuZ2V0SW5oZXJpdGVkUHJvcHMoKSB9O1xuICAgIHRoaXMuc2hvd0xhYmVsID0gcHJvcFRvVXNlPy5zaG93TGFiZWw7XG4gICAgdGhpcy5sYWJlbCA9IHByb3BUb1VzZT8ubGFiZWw7XG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgdGhpcy5pbnN0cnVjdGlvbnMgPSB0aGlzLnRlbXBsYXRlVXRpbHMuZ2V0SW5zdHJ1Y3Rpb25zKHRoaXMucENvbm4kLCBjb25maWdQcm9wcz8uaW5zdHJ1Y3Rpb25zKTtcblxuICAgIGNvbnN0IG51bUNvbHMgPSBjb25maWdQcm9wcy5OdW1Db2xzID8gY29uZmlnUHJvcHMuTnVtQ29scyA6ICcxJztcbiAgICBzd2l0Y2ggKG51bUNvbHMpIHtcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS1vbmUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcyJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tdHdvLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMyc6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXRocmVlLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIHJlcG9pbnQgY2hpbGRyZW4gYmVmb3JlIGdldHRpbmcgdGVtcGxhdGVBcnJheVxuICAgIC8vIENoaWxkcmVuIG1heSBjb250YWluICdyZWZlcmVuY2UnIGNvbXBvbmVudCwgc28gd2UgbmVlZCB0b1xuICAgIC8vICBub3JtYWxpemUgdGhlbVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheShraWRzWzBdLmdldFBDb25uZWN0KCkuZ2V0Q2hpbGRyZW4oKSk7XG4gIH1cbn1cbiIsIjwhLS0gV2hlbiBhZGRpbmcgYSBjb21wb25lbnQgaGVyZSwgYWRkIHRoZSBzYW1lIGNvbXBvbmVudCBpbiAncmVnaW9uJyB0ZW1wbGF0ZSBhcyB3ZWxsIC0tPlxuPGRpdiAqbmdJZj1cIiFOT19IRUFERVJfVEVNUExBVEVTLmluY2x1ZGVzKHRlbXBsYXRlKSAmJiBzaG93TGFiZWxcIj5cbiAgPGRpdiBjbGFzcz1cInRlbXBsYXRlLXRpdGxlLWNvbnRhaW5lclwiPnt7IGxhYmVsIH19PC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJpbnN0cnVjdGlvbnNcIiBjbGFzcz1cInBzZGstZGVmYXVsdC1mb3JtLWluc3RydWN0aW9uLXRleHRcIj5cbiAgPGRpdiBrZXk9XCJpbnN0cnVjdGlvbnNcIiBpZD1cImluc3RydWN0aW9uLXRleHRcIiBbaW5uZXJIVE1MXT1cImluc3RydWN0aW9uc1wiPjwvZGl2PlxuPC9kaXY+XG48ZGl2IFtjbGFzc05hbWVdPVwiZGl2Q2xhc3MkXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiIFtuZ0NsYXNzXT1cInsgJ2dyaWQtY29sdW1uJzoga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpID09PSAnVmlldycgfVwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICBbbmFtZV09XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKClcIlxuICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgZm9ybUdyb3VwJDogZm9ybUdyb3VwJFxuICAgICAgfVwiXG4gICAgICBlcnJvck1zZz1cIkRlZmF1bHRGb3JtIHdhbnRzIGNvbXBvbmVudCBub3QgeWV0IGF2YWlsYWJsZToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19