@hitsoft/e-donusum 1.0.33 → 1.0.35

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 (52) hide show
  1. package/config/providers/hit-providers/failed-connector-despatch-route.provider.d.ts +9 -0
  2. package/config/providers/hit-providers/failed-despatch-route.provider.d.ts +9 -0
  3. package/esm2020/config/e-donusum-config.module.mjs +6 -2
  4. package/esm2020/config/providers/hit-providers/failed-connector-despatch-route.provider.mjs +20 -0
  5. package/esm2020/config/providers/hit-providers/failed-despatch-route.provider.mjs +20 -0
  6. package/esm2020/lib/components/hit-despatches/hit-despatch.component.mjs +3 -3
  7. package/esm2020/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch-routing.module.mjs +38 -0
  8. package/esm2020/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.component.mjs +33 -0
  9. package/esm2020/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.module.mjs +77 -0
  10. package/esm2020/lib/components/hit-failed-despatches/hit-failed-despatch-routing.module.mjs +38 -0
  11. package/esm2020/lib/components/hit-failed-despatches/hit-failed-despatch.component.mjs +62 -0
  12. package/esm2020/lib/components/hit-failed-despatches/hit-failed-despatch.module.mjs +77 -0
  13. package/esm2020/lib/components/hit-gib-partner-pks/hit-gib-partner-pk.component.mjs +3 -3
  14. package/esm2020/lib/components/hit-invoices/hit-invoice.component.mjs +3 -3
  15. package/esm2020/lib/components/hit-paramas-invoices/hit-params-invoice.component.mjs +3 -2
  16. package/esm2020/lib/components/hit-params-companies/hit-params-company.component.mjs +3 -2
  17. package/esm2020/lib/components/hit-params-dispatches/hit-params-dispatch.component.mjs +3 -2
  18. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.mjs +15 -4
  19. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.mjs +5 -3
  20. package/esm2020/lib/components/hit-params-integrators/hit-params-integrator.component.mjs +11 -3
  21. package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.component.mjs +29 -10
  22. package/esm2020/lib/e-donusum-routing.module.mjs +5 -1
  23. package/esm2020/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all-routing.module.mjs +16 -4
  24. package/esm2020/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk-routing.module.mjs +16 -4
  25. package/esm2020/lib/hit-proxy/hit-despatches/hit-despatch.service.mjs +11 -1
  26. package/esm2020/lib/hit-proxy/hit-failed-connector-despatches/hit-failed-connector-despatches.service.mjs +24 -0
  27. package/esm2020/lib/hit-proxy/hit-failed-despatches/hit-failed-despatch.service.mjs +24 -0
  28. package/fesm2015/hitsoft-e-donusum-config.mjs +132 -94
  29. package/fesm2015/hitsoft-e-donusum-config.mjs.map +1 -1
  30. package/fesm2015/hitsoft-e-donusum.mjs +762 -368
  31. package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
  32. package/fesm2020/hitsoft-e-donusum-config.mjs +132 -94
  33. package/fesm2020/hitsoft-e-donusum-config.mjs.map +1 -1
  34. package/fesm2020/hitsoft-e-donusum.mjs +648 -262
  35. package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
  36. package/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch-routing.module.d.ts +7 -0
  37. package/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.component.d.ts +17 -0
  38. package/lib/components/hit-failed-connector-despatches/hit-failed-connector-despatch.module.d.ts +16 -0
  39. package/lib/components/hit-failed-despatches/hit-failed-despatch-routing.module.d.ts +7 -0
  40. package/lib/components/hit-failed-despatches/hit-failed-despatch.component.d.ts +24 -0
  41. package/lib/components/hit-failed-despatches/hit-failed-despatch.module.d.ts +16 -0
  42. package/lib/components/hit-paramas-invoices/hit-params-invoice.component.d.ts +1 -1
  43. package/lib/components/hit-params-companies/hit-params-company.component.d.ts +1 -1
  44. package/lib/components/hit-params-dispatches/hit-params-dispatch.component.d.ts +1 -1
  45. package/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.d.ts +1 -0
  46. package/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.d.ts +1 -1
  47. package/lib/components/hit-params-integrators/hit-params-integrator.component.d.ts +1 -0
  48. package/lib/components/hit-setup-wizard/hit-setup-wizard.component.d.ts +1 -0
  49. package/lib/hit-proxy/hit-despatches/hit-despatch.service.d.ts +2 -0
  50. package/lib/hit-proxy/hit-failed-connector-despatches/hit-failed-connector-despatches.service.d.ts +12 -0
  51. package/lib/hit-proxy/hit-failed-despatches/hit-failed-despatch.service.d.ts +12 -0
  52. package/package.json +1 -1
@@ -23,6 +23,7 @@ export class HitParamsGeneralPart1Component {
23
23
  this.hitBranchesService = hitBranchesService;
24
24
  this.datePipe = datePipe;
25
25
  this.submitButtonDisabled = false;
26
+ this.connectionTestButtonDisabled = false;
26
27
  this.isGetBranches = false;
27
28
  this.branchesDataSource = [];
28
29
  this.isBranchesModalOpen = false;
@@ -50,11 +51,14 @@ export class HitParamsGeneralPart1Component {
50
51
  });
51
52
  }
52
53
  async submitForm() {
53
- if (this.formParamsGeneral.invalid)
54
+ if (this.formParamsGeneral.invalid) {
55
+ this.valid.emit(false);
54
56
  return;
57
+ }
55
58
  if ((this.paramsGeneralDto?.isBranch || this.formParamsGeneral.controls.isBranch.value) &&
56
59
  !this.isGetBranches) {
57
60
  this.toasterService.error('eDonusum::ThereIsNoBranchRecord');
61
+ this.valid.emit(false);
58
62
  return;
59
63
  }
60
64
  this.submitButtonDisabled = true;
@@ -97,9 +101,11 @@ export class HitParamsGeneralPart1Component {
97
101
  });
98
102
  }
99
103
  async connectionTest() {
104
+ this.connectionTestButtonDisabled = true;
100
105
  return await this.hitConnectorsService
101
106
  .connectionTest(this.formParamsGeneral.controls.connector.value)
102
107
  .then(data => {
108
+ this.connectionTestButtonDisabled = false;
103
109
  this.submitButtonDisabled = false;
104
110
  if (data.success) {
105
111
  this.toasterService.success('eDonusum::ConnectionSuccessful');
@@ -109,6 +115,11 @@ export class HitParamsGeneralPart1Component {
109
115
  this.toasterService.error(data.message);
110
116
  return false;
111
117
  }
118
+ })
119
+ .catch(error => {
120
+ this.connectionTestButtonDisabled = false;
121
+ this.toasterService.error('eDonusum::ConnectionFailed');
122
+ return false;
112
123
  });
113
124
  }
114
125
  changeProperties() {
@@ -142,10 +153,10 @@ export class HitParamsGeneralPart1Component {
142
153
  }
143
154
  }
144
155
  HitParamsGeneralPart1Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitParamsGeneralPart1Component, deps: [{ token: i1.ParamsGeneralService }, { token: i2.FormBuilder }, { token: i3.HitParamsGeneralsService }, { token: i4.ToasterService }, { token: i5.HitConnectorsService }, { token: i6.HitBranchesService }, { token: i7.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
145
- HitParamsGeneralPart1Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitParamsGeneralPart1Component, selector: "hit-params-general-part1", inputs: { IsSubmitButtonHidden: "IsSubmitButtonHidden" }, outputs: { paramsGeneralDtoPart1: "paramsGeneralDtoPart1", valid: "valid" }, providers: [{ provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsGeneral\" id=\"params-general\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <dx-select-box id=\"params-general-connector\" formControlName=\"connector\"\r\n class=\"form-control\" displayExpr=\"displayName\" valueExpr=\"id\"\r\n [dataSource]=\"connectorDataSource\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-invoice-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EInvoiceStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-invoice-start-date\" formControlName=\"eInvoiceStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-despatch-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EDespatchStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-despatch-start-date\" formControlName=\"eDespatchStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"params-general-is-branch\" formControlName=\"isBranch\"\r\n class=\"form-check-input\" (change)=\"isBranchChange()\" />\r\n\r\n <label for=\"params-general-is-branch\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsBranch' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <abp-button iconClass=\"fa fa-globe\" buttonType=\"button\" style=\"margin-right: 5px;\"\r\n [disabled]=\"submitButtonDisabled\" *ngIf=\"paramsGeneralDto?.isBranch\" (click)=\"getBranches()\">\r\n {{ 'eDonusum::GetBranches' | abpLocalization }}\r\n </abp-button>\r\n <button class=\"btn btn-primary me-2\" type=\"button\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-general\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal [(visible)]=\"isBranchesModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::Branches' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\" *ngFor=\"let item of branchesDataSource; index as i\">\r\n <div class=\"col-sm-2\">{{i + 1}}</div>\r\n <div class=\"col-sm-10\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i10.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i10.DxDateBoxComponent, selector: "dx-date-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "adaptivityEnabled", "applyButtonText", "applyValueMode", "buttons", "calendarOptions", "cancelButtonText", "dateOutOfRangeMessage", "dateSerializationFormat", "deferRendering", "disabled", "disabledDates", "displayFormat", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "interval", "invalidDateMessage", "isValid", "label", "labelMode", "max", "maxLength", "min", "name", "opened", "openOnFieldClick", "pickerType", "placeholder", "readOnly", "rtlEnabled", "showAnalogClock", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "todayButtonText", "type", "useMaskBehavior", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "adaptivityEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "calendarOptionsChange", "cancelButtonTextChange", "dateOutOfRangeMessageChange", "dateSerializationFormatChange", "deferRenderingChange", "disabledChange", "disabledDatesChange", "displayFormatChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "intervalChange", "invalidDateMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "maxLengthChange", "minChange", "nameChange", "openedChange", "openOnFieldClickChange", "pickerTypeChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showAnalogClockChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "todayButtonTextChange", "typeChange", "useMaskBehaviorChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i8.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
156
+ HitParamsGeneralPart1Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitParamsGeneralPart1Component, selector: "hit-params-general-part1", inputs: { IsSubmitButtonHidden: "IsSubmitButtonHidden" }, outputs: { paramsGeneralDtoPart1: "paramsGeneralDtoPart1", valid: "valid" }, providers: [{ provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsGeneral\" id=\"params-general\" (ngSubmit)=\"submitForm()\" validateOnSubmit> \r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <dx-select-box id=\"params-general-connector\" formControlName=\"connector\"\r\n class=\"form-control\" displayExpr=\"displayName\" valueExpr=\"id\"\r\n [dataSource]=\"connectorDataSource\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-invoice-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EInvoiceStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-invoice-start-date\" formControlName=\"eInvoiceStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-despatch-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EDespatchStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-despatch-start-date\" formControlName=\"eDespatchStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"params-general-is-branch\" formControlName=\"isBranch\"\r\n class=\"form-check-input\" (change)=\"isBranchChange()\" />\r\n\r\n <label for=\"params-general-is-branch\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsBranch' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <abp-button iconClass=\"fa fa-globe\" buttonType=\"button\" style=\"margin-right: 5px;\"\r\n [disabled]=\"submitButtonDisabled\" *ngIf=\"paramsGeneralDto?.isBranch\" (click)=\"getBranches()\">\r\n {{ 'eDonusum::GetBranches' | abpLocalization }}\r\n </abp-button>\r\n <button class=\"btn btn-primary me-2\" type=\"button\" [disabled]=\"connectionTestButtonDisabled\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-general\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal [(visible)]=\"isBranchesModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::Branches' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\" *ngFor=\"let item of branchesDataSource; index as i\">\r\n <div class=\"col-sm-2\">{{i + 1}}</div>\r\n <div class=\"col-sm-10\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i10.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i10.DxDateBoxComponent, selector: "dx-date-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "adaptivityEnabled", "applyButtonText", "applyValueMode", "buttons", "calendarOptions", "cancelButtonText", "dateOutOfRangeMessage", "dateSerializationFormat", "deferRendering", "disabled", "disabledDates", "displayFormat", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "interval", "invalidDateMessage", "isValid", "label", "labelMode", "max", "maxLength", "min", "name", "opened", "openOnFieldClick", "pickerType", "placeholder", "readOnly", "rtlEnabled", "showAnalogClock", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "todayButtonText", "type", "useMaskBehavior", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "adaptivityEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "calendarOptionsChange", "cancelButtonTextChange", "dateOutOfRangeMessageChange", "dateSerializationFormatChange", "deferRenderingChange", "disabledChange", "disabledDatesChange", "displayFormatChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "intervalChange", "invalidDateMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "maxLengthChange", "minChange", "nameChange", "openedChange", "openOnFieldClickChange", "pickerTypeChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showAnalogClockChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "todayButtonTextChange", "typeChange", "useMaskBehaviorChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i8.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
146
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitParamsGeneralPart1Component, decorators: [{
147
158
  type: Component,
148
- args: [{ selector: 'hit-params-general-part1', changeDetection: ChangeDetectionStrategy.Default, providers: [{ provide: NgbDateAdapter, useClass: DateAdapter }], template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsGeneral\" id=\"params-general\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <dx-select-box id=\"params-general-connector\" formControlName=\"connector\"\r\n class=\"form-control\" displayExpr=\"displayName\" valueExpr=\"id\"\r\n [dataSource]=\"connectorDataSource\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-invoice-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EInvoiceStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-invoice-start-date\" formControlName=\"eInvoiceStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-despatch-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EDespatchStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-despatch-start-date\" formControlName=\"eDespatchStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"params-general-is-branch\" formControlName=\"isBranch\"\r\n class=\"form-check-input\" (change)=\"isBranchChange()\" />\r\n\r\n <label for=\"params-general-is-branch\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsBranch' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <abp-button iconClass=\"fa fa-globe\" buttonType=\"button\" style=\"margin-right: 5px;\"\r\n [disabled]=\"submitButtonDisabled\" *ngIf=\"paramsGeneralDto?.isBranch\" (click)=\"getBranches()\">\r\n {{ 'eDonusum::GetBranches' | abpLocalization }}\r\n </abp-button>\r\n <button class=\"btn btn-primary me-2\" type=\"button\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-general\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal [(visible)]=\"isBranchesModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::Branches' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\" *ngFor=\"let item of branchesDataSource; index as i\">\r\n <div class=\"col-sm-2\">{{i + 1}}</div>\r\n <div class=\"col-sm-10\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>" }]
159
+ args: [{ selector: 'hit-params-general-part1', changeDetection: ChangeDetectionStrategy.Default, providers: [{ provide: NgbDateAdapter, useClass: DateAdapter }], template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsGeneral\" id=\"params-general\" (ngSubmit)=\"submitForm()\" validateOnSubmit> \r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <dx-select-box id=\"params-general-connector\" formControlName=\"connector\"\r\n class=\"form-control\" displayExpr=\"displayName\" valueExpr=\"id\"\r\n [dataSource]=\"connectorDataSource\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-invoice-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EInvoiceStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-invoice-start-date\" formControlName=\"eInvoiceStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"params-general-despatch-start-date\" class=\"form-check-label\">\r\n {{ 'eDonusum::EDespatchStartDate' | abpLocalization }}\r\n </label>\r\n <dx-date-box id=\"params-general-despatch-start-date\" formControlName=\"eDespatchStartDate\"\r\n type=\"date\"></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"params-general-is-branch\" formControlName=\"isBranch\"\r\n class=\"form-check-input\" (change)=\"isBranchChange()\" />\r\n\r\n <label for=\"params-general-is-branch\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsBranch' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <abp-button iconClass=\"fa fa-globe\" buttonType=\"button\" style=\"margin-right: 5px;\"\r\n [disabled]=\"submitButtonDisabled\" *ngIf=\"paramsGeneralDto?.isBranch\" (click)=\"getBranches()\">\r\n {{ 'eDonusum::GetBranches' | abpLocalization }}\r\n </abp-button>\r\n <button class=\"btn btn-primary me-2\" type=\"button\" [disabled]=\"connectionTestButtonDisabled\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-general\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<abp-modal [(visible)]=\"isBranchesModalOpen\" [options]=\"{ size: 'lg' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::Branches' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row\" *ngFor=\"let item of branchesDataSource; index as i\">\r\n <div class=\"col-sm-2\">{{i + 1}}</div>\r\n <div class=\"col-sm-10\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>" }]
149
160
  }], ctorParameters: function () { return [{ type: i1.ParamsGeneralService }, { type: i2.FormBuilder }, { type: i3.HitParamsGeneralsService }, { type: i4.ToasterService }, { type: i5.HitConnectorsService }, { type: i6.HitBranchesService }, { type: i7.DatePipe }]; }, propDecorators: { paramsGeneralDtoPart1: [{
150
161
  type: Output
151
162
  }], IsSubmitButtonHidden: [{
@@ -153,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
153
164
  }], valid: [{
154
165
  type: Output
155
166
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWxzLXBhcnQxL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wYXJhbXMtZ2VuZXJhbHMvaGl0LXBhcmFtcy1nZW5lcmFscy1wYXJ0MS9oaXQtcGFyYW1zLWdlbmVyYWwtcGFydDEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0FBYXJDLE1BQU0sT0FBTyw4QkFBOEI7SUFrQnpDLFlBQ2tCLE9BQTZCLEVBQ3JDLEVBQWUsRUFDTix3QkFBa0QsRUFDbEQsY0FBOEIsRUFDOUIsb0JBQTBDLEVBQzFDLGtCQUFzQyxFQUMvQyxRQUFrQjtRQU5WLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDTiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHVC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T0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsMEJDdEJqRSxxaEpBMEZZOzJGRGhFQyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUNuQix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztvU0FpQnJELHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFBhcmFtc0dlbmVyYWxEdG8sIFBhcmFtc0dlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zLWdlbmVyYWxzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBIaXRDb25uZWN0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtY29ubmVjdG9ycy9oaXQtY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRCcmFuY2hlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWJyYW5jaGVzL2hpdC1icmFuY2guc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoaXQtcGFyYW1zLWdlbmVyYWwtcGFydDEnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdFBhcmFtc0dlbmVyYWxQYXJ0MUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZm9ybVBhcmFtc0dlbmVyYWw6IEZvcm1Hcm91cDtcclxuXHJcbiAgcGFyYW1zR2VuZXJhbER0bz86IFBhcmFtc0dlbmVyYWxEdG87XHJcblxyXG4gIHN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgaXNHZXRCcmFuY2hlcyA9IGZhbHNlO1xyXG5cclxuICBjb25uZWN0b3JEYXRhU291cmNlOiBhbnk7XHJcbiAgYnJhbmNoZXNEYXRhU291cmNlID0gW107XHJcblxyXG4gIGlzQnJhbmNoZXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHBhcmFtc0dlbmVyYWxEdG9QYXJ0MSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFyYW1zR2VuZXJhbER0bz4oKTtcclxuXHJcbiAgQElucHV0KCkgSXNTdWJtaXRCdXR0b25IaWRkZW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgdmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFBhcmFtc0dlbmVyYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFBhcmFtc0dlbmVyYWxzU2VydmljZTogSGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdENvbm5lY3RvcnNTZXJ2aWNlOiBIaXRDb25uZWN0b3JzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGl0QnJhbmNoZXNTZXJ2aWNlOiBIaXRCcmFuY2hlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmhpdENvbm5lY3RvcnNTZXJ2aWNlLmdldENvbm5lY3RvcnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yRGF0YVNvdXJjZSA9IGRhdGE7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRHZW5lcmFsUGFyYW1zKHRydWUpO1xyXG5cclxuICAgIHRoaXMuaGl0QnJhbmNoZXNTZXJ2aWNlLmFueUV4aXN0QnJhbmNoKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLmlzR2V0QnJhbmNoZXMgPSBkYXRhO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7IGNvbm5lY3RvciwgaXNCcmFuY2gsIGVJbnZvaWNlU3RhcnREYXRlLCBlRGVzcGF0Y2hTdGFydERhdGUgfSA9XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0byB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGNvbm5lY3RvcjogW2Nvbm5lY3RvciA/PyAwLCBbXV0sXHJcbiAgICAgIGlzQnJhbmNoOiBbaXNCcmFuY2ggPz8gZmFsc2UsIFtdXSxcclxuICAgICAgZUludm9pY2VTdGFydERhdGU6IFtlSW52b2ljZVN0YXJ0RGF0ZSA/PyBEYXRlLm5vdygpLCBbXV0sXHJcbiAgICAgIGVEZXNwYXRjaFN0YXJ0RGF0ZTogW2VEZXNwYXRjaFN0YXJ0RGF0ZSA/PyBEYXRlLm5vdygpLCBbXV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtUGFyYW1zR2VuZXJhbC5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5wYXJhbXNHZW5lcmFsRHRvPy5pc0JyYW5jaCB8fCB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLmNvbnRyb2xzLmlzQnJhbmNoLnZhbHVlKSAmJlxyXG4gICAgICAhdGhpcy5pc0dldEJyYW5jaGVzXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlRoZXJlSXNOb0JyYW5jaFJlY29yZCcpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2UuaW5mbygnZURvbnVzdW06OlRyYW5zYWN0aW9uU3RhcnRlZCcpO1xyXG5cclxuICAgIHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwuY29udHJvbHMuZUludm9pY2VTdGFydERhdGUuc2V0VmFsdWUoXHJcbiAgICAgIG5ldyBEYXRlKHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwudmFsdWUuZUludm9pY2VTdGFydERhdGUpLnRvSVNPU3RyaW5nKClcclxuICAgICk7XHJcbiAgICB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLmNvbnRyb2xzLmVEZXNwYXRjaFN0YXJ0RGF0ZS5zZXRWYWx1ZShcclxuICAgICAgbmV3IERhdGUodGhpcy5mb3JtUGFyYW1zR2VuZXJhbC52YWx1ZS5lRGVzcGF0Y2hTdGFydERhdGUpLnRvSVNPU3RyaW5nKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VQcm9wZXJ0aWVzKCk7XHJcbiAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5wYXJhbXNHZW5lcmFsRHRvPy5pZFxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUodGhpcy5wYXJhbXNHZW5lcmFsRHRvLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLnBhcmFtc0dlbmVyYWxEdG8sXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwudmFsdWUpO1xyXG5cclxuICAgIGxldCBjb25uZWN0aW9uVGVzdFN0YXR1cyA9IGF3YWl0IHRoaXMuY29ubmVjdGlvblRlc3QoKTtcclxuXHJcbiAgICBpZiAoY29ubmVjdGlvblRlc3RTdGF0dXMpIHtcclxuICAgICAgcmVxdWVzdFxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB7fSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIGFzeW5jIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAvLyB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ2VEb251c3VtOjpUcmFuc2FjdGlvblN1Y2Nlc3NmdWwnKTtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0R2VuZXJhbFBhcmFtcygpO1xyXG5cclxuICAgICAgICAgIHRoaXMudmFsaWQuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0b1BhcnQxLmVtaXQoZGF0YSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlRyYW5zYWN0aW9uVW5zdWNjZXNzZnVsJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0R2VuZXJhbFBhcmFtcyhidWlsZEZvcm06IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5oaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UuZ2V0UGFyYW1zR2VuZXJhbCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvID0gZGF0YTtcclxuXHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0b1BhcnQxLmVtaXQoZGF0YSk7XHJcblxyXG4gICAgICBpZiAoYnVpbGRGb3JtKSB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjb25uZWN0aW9uVGVzdCgpIHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhpdENvbm5lY3RvcnNTZXJ2aWNlXHJcbiAgICAgIC5jb25uZWN0aW9uVGVzdCh0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLmNvbnRyb2xzLmNvbm5lY3Rvci52YWx1ZSlcclxuICAgICAgLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcygnZURvbnVzdW06OkNvbm5lY3Rpb25TdWNjZXNzZnVsJyk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZGF0YS5tZXNzYWdlKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVByb3BlcnRpZXMoKSB7XHJcbiAgICBpZiAodGhpcy5wYXJhbXNHZW5lcmFsRHRvICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG8uY29ubmVjdG9yID0gdGhpcy5mb3JtUGFyYW1zR2VuZXJhbC5jb250cm9scy5jb25uZWN0b3IudmFsdWU7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0by5pc0JyYW5jaCA9IHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwuY29udHJvbHMuaXNCcmFuY2gudmFsdWU7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0by5lSW52b2ljZVN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwudmFsdWUuZUludm9pY2VTdGFydERhdGVcclxuICAgICAgKS50b0lTT1N0cmluZygpO1xyXG4gICAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG8uZURlc3BhdGNoU3RhcnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgdGhpcy5mb3JtUGFyYW1zR2VuZXJhbC52YWx1ZS5lRGVzcGF0Y2hTdGFydERhdGVcclxuICAgICAgKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNCcmFuY2hDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNoYW5nZVByb3BlcnRpZXMoKTtcclxuICAgIHRoaXMucGFyYW1zR2VuZXJhbER0b1BhcnQxLmVtaXQodGhpcy5wYXJhbXNHZW5lcmFsRHRvKTtcclxuICB9XHJcblxyXG4gIGdldEJyYW5jaGVzKCkge1xyXG4gICAgaWYgKHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuYnJhbmNoZXNEYXRhU291cmNlID0gW107XHJcblxyXG4gICAgdGhpcy5oaXRCcmFuY2hlc1NlcnZpY2UuZ2V0QnJhbmNoZXMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB0aGlzLmlzR2V0QnJhbmNoZXMgPSB0cnVlO1xyXG5cclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA9PSBkYXRhLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmJyYW5jaGVzRGF0YVNvdXJjZS5wdXNoKGRhdGFbaW5kZXhdKTtcclxuXHJcbiAgICAgICAgaW5kZXgrKztcclxuICAgICAgfSwgMjUwKTtcclxuXHJcbiAgICAgIHRoaXMuaXNCcmFuY2hlc01vZGFsT3BlbiA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1QYXJhbXNHZW5lcmFsXCIgaWQ9XCJwYXJhbXMtZ2VuZXJhbFwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggaWQ9XCJwYXJhbXMtZ2VuZXJhbC1jb25uZWN0b3JcIiBmb3JtQ29udHJvbE5hbWU9XCJjb25uZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiIHZhbHVlRXhwcj1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJjb25uZWN0b3JEYXRhU291cmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zLWdlbmVyYWwtaW52b2ljZS1zdGFydC1kYXRlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFSW52b2ljZVN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtZGF0ZS1ib3ggaWQ9XCJwYXJhbXMtZ2VuZXJhbC1pbnZvaWNlLXN0YXJ0LWRhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJlSW52b2ljZVN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIj48L2R4LWRhdGUtYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtcy1nZW5lcmFsLWRlc3BhdGNoLXN0YXJ0LWRhdGVcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVEZXNwYXRjaFN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtZGF0ZS1ib3ggaWQ9XCJwYXJhbXMtZ2VuZXJhbC1kZXNwYXRjaC1zdGFydC1kYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZURlc3BhdGNoU3RhcnREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZVwiPjwvZHgtZGF0ZS1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInBhcmFtcy1nZW5lcmFsLWlzLWJyYW5jaFwiIGZvcm1Db250cm9sTmFtZT1cImlzQnJhbmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiAoY2hhbmdlKT1cImlzQnJhbmNoQ2hhbmdlKClcIiAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXMtZ2VuZXJhbC1pcy1icmFuY2hcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OklzQnJhbmNoJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWxnLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtZ2xvYmVcIiBidXR0b25UeXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzdWJtaXRCdXR0b25EaXNhYmxlZFwiICpuZ0lmPVwicGFyYW1zR2VuZXJhbER0bz8uaXNCcmFuY2hcIiAoY2xpY2spPVwiZ2V0QnJhbmNoZXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6R2V0QnJhbmNoZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2FicC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1lLTJcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNvbm5lY3Rpb25UZXN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICdlRG9udXN1bTo6Q29ubmVjdGlvblRlc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGJ1dHRvblR5cGU9XCJzdWJtaXRcIiBmb3JtTmFtZT1cInBhcmFtcy1nZW5lcmFsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0QnV0dG9uRGlzYWJsZWRcIiBbaGlkZGVuXT1cIklzU3VibWl0QnV0dG9uSGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc0JyYW5jaGVzTW9kYWxPcGVuXCIgW29wdGlvbnNdPVwieyBzaXplOiAnbGcnIH1cIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICAgIDxoMz5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCcmFuY2hlcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2gzPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyYW5jaGVzRGF0YVNvdXJjZTsgaW5kZXggYXMgaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPnt7aSArIDF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj57e2l0ZW0ubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAgICAgICAge3sgJ0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWxzLXBhcnQxL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wYXJhbXMtZ2VuZXJhbHMvaGl0LXBhcmFtcy1nZW5lcmFscy1wYXJ0MS9oaXQtcGFyYW1zLWdlbmVyYWwtcGFydDEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0FBYXJDLE1BQU0sT0FBTyw4QkFBOEI7SUFtQnpDLFlBQ2tCLE9BQTZCLEVBQ3JDLEVBQWUsRUFDTix3QkFBa0QsRUFDbEQsY0FBOEIsRUFDOUIsb0JBQTBDLEVBQzFDLGtCQUFzQyxFQUMvQyxRQUFrQjtRQU5WLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDTiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHVC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QUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBRS9DLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFFakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFFMUMsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFUixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkhBL0xVLDhCQUE4QjsrR0FBOUIsOEJBQThCLDBMQUo5QixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsMEJDdEJqRSx5a0pBMEZZOzJGRGhFQyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUNuQix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztvU0FrQnJELHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFBhcmFtc0dlbmVyYWxEdG8sIFBhcmFtc0dlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zLWdlbmVyYWxzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBIaXRDb25uZWN0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2hpdC1wcm94eS9oaXQtY29ubmVjdG9ycy9oaXQtY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRCcmFuY2hlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWJyYW5jaGVzL2hpdC1icmFuY2guc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoaXQtcGFyYW1zLWdlbmVyYWwtcGFydDEnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdFBhcmFtc0dlbmVyYWxQYXJ0MUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZm9ybVBhcmFtc0dlbmVyYWw6IEZvcm1Hcm91cDtcclxuXHJcbiAgcGFyYW1zR2VuZXJhbER0bz86IFBhcmFtc0dlbmVyYWxEdG87XHJcblxyXG4gIHN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgY29ubmVjdGlvblRlc3RCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGlzR2V0QnJhbmNoZXMgPSBmYWxzZTtcclxuXHJcbiAgY29ubmVjdG9yRGF0YVNvdXJjZTogYW55O1xyXG4gIGJyYW5jaGVzRGF0YVNvdXJjZSA9IFtdO1xyXG5cclxuICBpc0JyYW5jaGVzTW9kYWxPcGVuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBwYXJhbXNHZW5lcmFsRHRvUGFydDEgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcmFtc0dlbmVyYWxEdG8+KCk7XHJcblxyXG4gIEBJbnB1dCgpIElzU3VibWl0QnV0dG9uSGlkZGVuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBQYXJhbXNHZW5lcmFsU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBoaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2U6IEhpdFBhcmFtc0dlbmVyYWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBoaXRDb25uZWN0b3JzU2VydmljZTogSGl0Q29ubmVjdG9yc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdEJyYW5jaGVzU2VydmljZTogSGl0QnJhbmNoZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5oaXRDb25uZWN0b3JzU2VydmljZS5nZXRDb25uZWN0b3JzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLmNvbm5lY3RvckRhdGFTb3VyY2UgPSBkYXRhO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0R2VuZXJhbFBhcmFtcyh0cnVlKTtcclxuXHJcbiAgICB0aGlzLmhpdEJyYW5jaGVzU2VydmljZS5hbnlFeGlzdEJyYW5jaCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5pc0dldEJyYW5jaGVzID0gZGF0YTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKCkge1xyXG4gICAgY29uc3QgeyBjb25uZWN0b3IsIGlzQnJhbmNoLCBlSW52b2ljZVN0YXJ0RGF0ZSwgZURlc3BhdGNoU3RhcnREYXRlIH0gPVxyXG4gICAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG8gfHwge307XHJcblxyXG4gICAgdGhpcy5mb3JtUGFyYW1zR2VuZXJhbCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjb25uZWN0b3I6IFtjb25uZWN0b3IgPz8gMCwgW11dLFxyXG4gICAgICBpc0JyYW5jaDogW2lzQnJhbmNoID8/IGZhbHNlLCBbXV0sXHJcbiAgICAgIGVJbnZvaWNlU3RhcnREYXRlOiBbZUludm9pY2VTdGFydERhdGUgPz8gRGF0ZS5ub3coKSwgW11dLFxyXG4gICAgICBlRGVzcGF0Y2hTdGFydERhdGU6IFtlRGVzcGF0Y2hTdGFydERhdGUgPz8gRGF0ZS5ub3coKSwgW11dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWJtaXRGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5wYXJhbXNHZW5lcmFsRHRvPy5pc0JyYW5jaCB8fCB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLmNvbnRyb2xzLmlzQnJhbmNoLnZhbHVlKSAmJlxyXG4gICAgICAhdGhpcy5pc0dldEJyYW5jaGVzXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlRoZXJlSXNOb0JyYW5jaFJlY29yZCcpO1xyXG4gICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcblxyXG4gICAgLy8gdGhpcy50b2FzdGVyU2VydmljZS5pbmZvKCdlRG9udXN1bTo6VHJhbnNhY3Rpb25TdGFydGVkJyk7XHJcblxyXG4gICAgdGhpcy5mb3JtUGFyYW1zR2VuZXJhbC5jb250cm9scy5lSW52b2ljZVN0YXJ0RGF0ZS5zZXRWYWx1ZShcclxuICAgICAgbmV3IERhdGUodGhpcy5mb3JtUGFyYW1zR2VuZXJhbC52YWx1ZS5lSW52b2ljZVN0YXJ0RGF0ZSkudG9JU09TdHJpbmcoKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwuY29udHJvbHMuZURlc3BhdGNoU3RhcnREYXRlLnNldFZhbHVlKFxyXG4gICAgICBuZXcgRGF0ZSh0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLnZhbHVlLmVEZXNwYXRjaFN0YXJ0RGF0ZSkudG9JU09TdHJpbmcoKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZVByb3BlcnRpZXMoKTtcclxuICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnBhcmFtc0dlbmVyYWxEdG8/LmlkXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnBhcmFtc0dlbmVyYWxEdG8uaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMucGFyYW1zR2VuZXJhbER0byxcclxuICAgICAgICB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5mb3JtUGFyYW1zR2VuZXJhbC52YWx1ZSk7XHJcblxyXG4gICAgbGV0IGNvbm5lY3Rpb25UZXN0U3RhdHVzID0gYXdhaXQgdGhpcy5jb25uZWN0aW9uVGVzdCgpO1xyXG5cclxuICAgIGlmIChjb25uZWN0aW9uVGVzdFN0YXR1cykge1xyXG4gICAgICByZXF1ZXN0XHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGFwKCgpID0+IHt9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgYXN5bmMgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcygnZURvbnVzdW06OlRyYW5zYWN0aW9uU3VjY2Vzc2Z1bCcpO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRHZW5lcmFsUGFyYW1zKCk7XHJcblxyXG4gICAgICAgICAgdGhpcy52YWxpZC5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvUGFydDEuZW1pdChkYXRhKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKCdlRG9udXN1bTo6VHJhbnNhY3Rpb25VbnN1Y2Nlc3NmdWwnKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWQuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWQuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRHZW5lcmFsUGFyYW1zKGJ1aWxkRm9ybTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLmhpdFBhcmFtc0dlbmVyYWxzU2VydmljZS5nZXRQYXJhbXNHZW5lcmFsKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG8gPSBkYXRhO1xyXG5cclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvUGFydDEuZW1pdChkYXRhKTtcclxuXHJcbiAgICAgIGlmIChidWlsZEZvcm0pIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbm5lY3Rpb25UZXN0KCkge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGl0Q29ubmVjdG9yc1NlcnZpY2VcclxuICAgICAgLmNvbm5lY3Rpb25UZXN0KHRoaXMuZm9ybVBhcmFtc0dlbmVyYWwuY29udHJvbHMuY29ubmVjdG9yLnZhbHVlKVxyXG4gICAgICAudGhlbihkYXRhID0+IHtcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25UZXN0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGRhdGEuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdlRG9udXN1bTo6Q29ubmVjdGlvblN1Y2Nlc3NmdWwnKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihkYXRhLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OkNvbm5lY3Rpb25GYWlsZWQnKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUHJvcGVydGllcygpIHtcclxuICAgIGlmICh0aGlzLnBhcmFtc0dlbmVyYWxEdG8gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0by5jb25uZWN0b3IgPSB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLmNvbnRyb2xzLmNvbm5lY3Rvci52YWx1ZTtcclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvLmlzQnJhbmNoID0gdGhpcy5mb3JtUGFyYW1zR2VuZXJhbC5jb250cm9scy5pc0JyYW5jaC52YWx1ZTtcclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvLmVJbnZvaWNlU3RhcnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgdGhpcy5mb3JtUGFyYW1zR2VuZXJhbC52YWx1ZS5lSW52b2ljZVN0YXJ0RGF0ZVxyXG4gICAgICApLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0by5lRGVzcGF0Y2hTdGFydERhdGUgPSBuZXcgRGF0ZShcclxuICAgICAgICB0aGlzLmZvcm1QYXJhbXNHZW5lcmFsLnZhbHVlLmVEZXNwYXRjaFN0YXJ0RGF0ZVxyXG4gICAgICApLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0JyYW5jaENoYW5nZSgpIHtcclxuICAgIHRoaXMuY2hhbmdlUHJvcGVydGllcygpO1xyXG4gICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvUGFydDEuZW1pdCh0aGlzLnBhcmFtc0dlbmVyYWxEdG8pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmNoZXMoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJtaXRCdXR0b25EaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5icmFuY2hlc0RhdGFTb3VyY2UgPSBbXTtcclxuXHJcbiAgICB0aGlzLmhpdEJyYW5jaGVzU2VydmljZS5nZXRCcmFuY2hlcygpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgbGV0IGluZGV4ID0gMDtcclxuXHJcbiAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHRoaXMuaXNHZXRCcmFuY2hlcyA9IHRydWU7XHJcblxyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4ID09IGRhdGEubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYnJhbmNoZXNEYXRhU291cmNlLnB1c2goZGF0YVtpbmRleF0pO1xyXG5cclxuICAgICAgICBpbmRleCsrO1xyXG4gICAgICB9LCAyNTApO1xyXG5cclxuICAgICAgdGhpcy5pc0JyYW5jaGVzTW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVBhcmFtc0dlbmVyYWxcIiBpZD1cInBhcmFtcy1nZW5lcmFsXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+ICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IGlkPVwicGFyYW1zLWdlbmVyYWwtY29ubmVjdG9yXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29ubmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIiB2YWx1ZUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiY29ubmVjdG9yRGF0YVNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9keC1zZWxlY3QtYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBhcmFtcy1nZW5lcmFsLWludm9pY2Utc3RhcnQtZGF0ZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RUludm9pY2VTdGFydERhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWRhdGUtYm94IGlkPVwicGFyYW1zLWdlbmVyYWwtaW52b2ljZS1zdGFydC1kYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZUludm9pY2VTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCI+PC9keC1kYXRlLWJveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXJhbXMtZ2VuZXJhbC1kZXNwYXRjaC1zdGFydC1kYXRlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFRGVzcGF0Y2hTdGFydERhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWRhdGUtYm94IGlkPVwicGFyYW1zLWdlbmVyYWwtZGVzcGF0Y2gtc3RhcnQtZGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImVEZXNwYXRjaFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIj48L2R4LWRhdGUtYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJwYXJhbXMtZ2VuZXJhbC1pcy1icmFuY2hcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0JyYW5jaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgKGNoYW5nZSk9XCJpc0JyYW5jaENoYW5nZSgpXCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGFyYW1zLWdlbmVyYWwtaXMtYnJhbmNoXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0JyYW5jaCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1sZy1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWdsb2JlXCIgYnV0dG9uVHlwZT1cImJ1dHRvblwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0QnV0dG9uRGlzYWJsZWRcIiAqbmdJZj1cInBhcmFtc0dlbmVyYWxEdG8/LmlzQnJhbmNoXCIgKGNsaWNrKT1cImdldEJyYW5jaGVzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkdldEJyYW5jaGVzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtZS0yXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJjb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkXCIgKGNsaWNrKT1cImNvbm5lY3Rpb25UZXN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICdlRG9udXN1bTo6Q29ubmVjdGlvblRlc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGJ1dHRvblR5cGU9XCJzdWJtaXRcIiBmb3JtTmFtZT1cInBhcmFtcy1nZW5lcmFsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0QnV0dG9uRGlzYWJsZWRcIiBbaGlkZGVuXT1cIklzU3VibWl0QnV0dG9uSGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJpc0JyYW5jaGVzTW9kYWxPcGVuXCIgW29wdGlvbnNdPVwieyBzaXplOiAnbGcnIH1cIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICAgIDxoMz5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCcmFuY2hlcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2gzPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyYW5jaGVzRGF0YVNvdXJjZTsgaW5kZXggYXMgaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPnt7aSArIDF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj57e2l0ZW0ubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAgICAgICAge3sgJ0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPiJdfQ==
@@ -38,12 +38,14 @@ export class HitParamsGeneralPart2Component {
38
38
  integrator: [integrator ?? 0, []],
39
39
  });
40
40
  }
41
- submitForm() {
41
+ async submitForm() {
42
42
  debugger;
43
43
  this.hitParamsGeneralsService.getParamsGeneral().subscribe(data => {
44
44
  this.paramsGeneralDto = data;
45
- if (this.generalformParamsGeneralPart2.invalid)
45
+ if (this.generalformParamsGeneralPart2.invalid) {
46
+ this.valid.emit(false);
46
47
  return;
48
+ }
47
49
  this.submitButtonDisabled = true;
48
50
  // this.toasterService.info('eDonusum::TransactionStarted');
49
51
  this.paramsGeneralDtoPart1.integrator =
@@ -80,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
80
82
  }], valid: [{
81
83
  type: Output
82
84
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWxzLXBhcnQyL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wYXJhbXMtZ2VuZXJhbHMvaGl0LXBhcmFtcy1nZW5lcmFscy1wYXJ0Mi9oaXQtcGFyYW1zLWdlbmVyYWwtcGFydDIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBV3JDLE1BQU0sT0FBTyw4QkFBOEI7SUFlekMsWUFDa0IsT0FBNkIsRUFDckMsRUFBZSxFQUNOLHdCQUFrRCxFQUNsRCxjQUE4QixFQUMvQixxQkFBNEM7UUFKNUMsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNOLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFickQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFVB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T0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7Nk9BU3RELHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFBhcmFtc0dlbmVyYWxEdG8sIFBhcmFtc0dlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zLWdlbmVyYWxzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBIaXRFbnRlZ3JhdG9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWVudGVncmF0b3JzL2hpdC1lbnRlZ3JhdG9yLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0UGFyYW1zR2VuZXJhbFBhcnQyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBnZW5lcmFsZm9ybVBhcmFtc0dlbmVyYWxQYXJ0MjogRm9ybUdyb3VwO1xyXG5cclxuICBwYXJhbXNHZW5lcmFsRHRvPzogUGFyYW1zR2VuZXJhbER0bztcclxuXHJcbiAgQElucHV0KCkgcGFyYW1zR2VuZXJhbER0b1BhcnQxOiBQYXJhbXNHZW5lcmFsRHRvO1xyXG5cclxuICBASW5wdXQoKSBJc1N1Ym1pdEJ1dHRvbkhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIHN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIGludGVncmF0b3JEYXRhU291cmNlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFBhcmFtc0dlbmVyYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFBhcmFtc0dlbmVyYWxzU2VydmljZTogSGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGl0RW50ZWdyYXRvcnNTZXJ2aWNlOiBIaXRFbnRlZ3JhdG9yc1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLmdldFBhcmFtc0dlbmVyYWwoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0byA9IGRhdGE7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgdGhpcy5oaXRFbnRlZ3JhdG9yc1NlcnZpY2UuZ2V0RW50ZWdyYXRvcnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuaW50ZWdyYXRvckRhdGFTb3VyY2UgPSBkYXRhO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7IGludGVncmF0b3IgfSA9IHRoaXMucGFyYW1zR2VuZXJhbER0byB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGludGVncmF0b3I6IFtpbnRlZ3JhdG9yID8/IDAsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5oaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UuZ2V0UGFyYW1zR2VuZXJhbCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvID0gZGF0YTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgICAgLy8gdGhpcy50b2FzdGVyU2VydmljZS5pbmZvKCdlRG9udXN1bTo6VHJhbnNhY3Rpb25TdGFydGVkJyk7XHJcblxyXG4gICAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG9QYXJ0MS5pbnRlZ3JhdG9yID1cclxuICAgICAgICB0aGlzLmdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyLmNvbnRyb2xzLmludGVncmF0b3IudmFsdWU7XHJcblxyXG4gICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnBhcmFtc0dlbmVyYWxEdG8/LmlkLCB7XHJcbiAgICAgICAgLi4udGhpcy5wYXJhbXNHZW5lcmFsRHRvUGFydDEsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmVxdWVzdFxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB7IH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcygnZURvbnVzdW06OlRyYW5zYWN0aW9uU3VjY2Vzc2Z1bCcpO1xyXG4gICAgICAgICAgICB0aGlzLmhpdFBhcmFtc0dlbmVyYWxzU2VydmljZS5nZXRQYXJhbXNHZW5lcmFsKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0byA9IGRhdGE7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlRyYW5zYWN0aW9uVW5zdWNjZXNzZnVsJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyXCIgaWQ9XCJwYXJhbXMtZ2VuZXJhbC1wYXJ0MlwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgICAgICAgICB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggaWQ9XCJwYXJhbXMtZ2VuZXJhbC1pbnRlZ3JhdG9yXCIgZm9ybUNvbnRyb2xOYW1lPVwiaW50ZWdyYXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCIgdmFsdWVFeHByPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImludGVncmF0b3JEYXRhU291cmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1sZy1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwicGFyYW1zLWdlbmVyYWwtcGFydDJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzdWJtaXRCdXR0b25EaXNhYmxlZFwiIFtoaWRkZW5dPVwiSXNTdWJtaXRCdXR0b25IaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2FicC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWxzLXBhcnQyL2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wYXJhbXMtZ2VuZXJhbHMvaGl0LXBhcmFtcy1nZW5lcmFscy1wYXJ0Mi9oaXQtcGFyYW1zLWdlbmVyYWwtcGFydDIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBV3JDLE1BQU0sT0FBTyw4QkFBOEI7SUFlekMsWUFDa0IsT0FBNkIsRUFDckMsRUFBZSxFQUNOLHdCQUFrRCxFQUNsRCxjQUE4QixFQUMvQixxQkFBNEM7UUFKNUMsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNOLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFickQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFVB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OEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixtQkFDbkIsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7Nk9BU3RELHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFBhcmFtc0dlbmVyYWxEdG8sIFBhcmFtc0dlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvcGFyYW1zLWdlbmVyYWxzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LXBhcmFtcy1nZW5lcmFscy9oaXQtcGFyYW1zLWdlbmVyYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBIaXRFbnRlZ3JhdG9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWVudGVncmF0b3JzL2hpdC1lbnRlZ3JhdG9yLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hpdC1wYXJhbXMtZ2VuZXJhbC1wYXJ0MicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LXBhcmFtcy1nZW5lcmFsLXBhcnQyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0UGFyYW1zR2VuZXJhbFBhcnQyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBnZW5lcmFsZm9ybVBhcmFtc0dlbmVyYWxQYXJ0MjogRm9ybUdyb3VwO1xyXG5cclxuICBwYXJhbXNHZW5lcmFsRHRvPzogUGFyYW1zR2VuZXJhbER0bztcclxuXHJcbiAgQElucHV0KCkgcGFyYW1zR2VuZXJhbER0b1BhcnQxOiBQYXJhbXNHZW5lcmFsRHRvO1xyXG5cclxuICBASW5wdXQoKSBJc1N1Ym1pdEJ1dHRvbkhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIHN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIGludGVncmF0b3JEYXRhU291cmNlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFBhcmFtc0dlbmVyYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFBhcmFtc0dlbmVyYWxzU2VydmljZTogSGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGl0RW50ZWdyYXRvcnNTZXJ2aWNlOiBIaXRFbnRlZ3JhdG9yc1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLmdldFBhcmFtc0dlbmVyYWwoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0byA9IGRhdGE7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgdGhpcy5oaXRFbnRlZ3JhdG9yc1NlcnZpY2UuZ2V0RW50ZWdyYXRvcnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuaW50ZWdyYXRvckRhdGFTb3VyY2UgPSBkYXRhO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7IGludGVncmF0b3IgfSA9IHRoaXMucGFyYW1zR2VuZXJhbER0byB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGludGVncmF0b3I6IFtpbnRlZ3JhdG9yID8/IDAsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0Rm9ybSgpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5oaXRQYXJhbXNHZW5lcmFsc1NlcnZpY2UuZ2V0UGFyYW1zR2VuZXJhbCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvID0gZGF0YTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdlbmVyYWxmb3JtUGFyYW1zR2VuZXJhbFBhcnQyLmludmFsaWQpIHtcclxuICAgICAgICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcblxyXG4gICAgICAvLyB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmluZm8oJ2VEb251c3VtOjpUcmFuc2FjdGlvblN0YXJ0ZWQnKTtcclxuXHJcbiAgICAgIHRoaXMucGFyYW1zR2VuZXJhbER0b1BhcnQxLmludGVncmF0b3IgPVxyXG4gICAgICAgIHRoaXMuZ2VuZXJhbGZvcm1QYXJhbXNHZW5lcmFsUGFydDIuY29udHJvbHMuaW50ZWdyYXRvci52YWx1ZTtcclxuXHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMucGFyYW1zR2VuZXJhbER0bz8uaWQsIHtcclxuICAgICAgICAuLi50aGlzLnBhcmFtc0dlbmVyYWxEdG9QYXJ0MSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXF1ZXN0XHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGFwKCgpID0+IHsgfSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdlRG9udXN1bTo6VHJhbnNhY3Rpb25TdWNjZXNzZnVsJyk7XHJcbiAgICAgICAgICAgIHRoaXMuaGl0UGFyYW1zR2VuZXJhbHNTZXJ2aWNlLmdldFBhcmFtc0dlbmVyYWwoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJhbXNHZW5lcmFsRHRvID0gZGF0YTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWQuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKCdlRG9udXN1bTo6VHJhbnNhY3Rpb25VbnN1Y2Nlc3NmdWwnKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWQuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZ2VuZXJhbGZvcm1QYXJhbXNHZW5lcmFsUGFydDJcIiBpZD1cInBhcmFtcy1nZW5lcmFsLXBhcnQyXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgICAgICAgIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBpZD1cInBhcmFtcy1nZW5lcmFsLWludGVncmF0b3JcIiBmb3JtQ29udHJvbE5hbWU9XCJpbnRlZ3JhdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIiB2YWx1ZUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiaW50ZWdyYXRvckRhdGFTb3VyY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWxnLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJwYXJhbXMtZ2VuZXJhbC1wYXJ0MlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Ym1pdEJ1dHRvbkRpc2FibGVkXCIgW2hpZGRlbl09XCJJc1N1Ym1pdEJ1dHRvbkhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYWJwLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19