@bnsights/bbsf-admin-portal 1.1.4 → 1.1.6
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.
- package/README.md +6 -2
- package/bnsights-bbsf-admin-portal-1.1.6.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +1 -1
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +146 -146
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +152 -152
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +1 -1
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +7 -7
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +12 -12
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +19 -19
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +12 -12
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +102 -102
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +7 -7
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +271 -271
- package/esm2022/lib/Pages/core/auth.module.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +3 -3
- package/esm2022/lib/Pages/departments/department/department.component.mjs +48 -48
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +32 -32
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +52 -52
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +100 -100
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +151 -151
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +72 -72
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +27 -27
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +1 -1
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +84 -84
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +56 -56
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +58 -58
- package/esm2022/lib/Pages/home/home.component.mjs +7 -7
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +129 -129
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +14 -14
- package/esm2022/lib/Pages/license/license/license.component.mjs +11 -11
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +41 -41
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +125 -125
- package/esm2022/lib/Pages/logs/log/log.component.mjs +11 -11
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +120 -120
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +34 -34
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +83 -83
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +35 -35
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +53 -53
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +50 -50
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +16 -16
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +135 -135
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +186 -186
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +122 -122
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +120 -120
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +29 -29
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +57 -57
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +79 -79
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +35 -35
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +27 -27
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +36 -36
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +74 -74
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +8 -8
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +89 -89
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +9 -9
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +222 -222
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +257 -257
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +25 -25
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +24 -24
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +6 -6
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +52 -52
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +16 -16
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +20 -20
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +69 -69
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +180 -180
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +3 -3
- package/esm2022/lib/Pages/users/users.component.mjs +190 -190
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +176 -176
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +364 -364
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +67 -67
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +227 -227
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +31 -31
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +56 -56
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +5187 -5187
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +0 -1
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +2 -2
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +1 -1
- package/package.json +3 -3
- package/esm2022/bnsights-test-test-admin-portal.mjs +0 -5
- package/fesm2022/bnsights-test-test-admin-portal.mjs +0 -27181
- package/fesm2022/bnsights-test-test-admin-portal.mjs.map +0 -1
|
@@ -132,16 +132,16 @@ export class LicenseComponent {
|
|
|
132
132
|
this.uploadFileForm = new FormGroup({});
|
|
133
133
|
this.uploadFileForm.reset();
|
|
134
134
|
this.uploadFileFormOptions = new FormOptions();
|
|
135
|
-
this.uploadFileFormOptions.
|
|
136
|
-
this.uploadFileFormOptions.
|
|
137
|
-
this.uploadFileFormOptions.
|
|
138
|
-
this.uploadFileFormOptions.
|
|
135
|
+
this.uploadFileFormOptions.formGroup = this.uploadFileForm;
|
|
136
|
+
this.uploadFileFormOptions.getModelFunction = this.getAddLicenseModel;
|
|
137
|
+
this.uploadFileFormOptions.serviceSubmitFunction = this.getAddLicenseFunction;
|
|
138
|
+
this.uploadFileFormOptions.onSuccessHandler = this.OnSuccessHandler;
|
|
139
139
|
this.licenseFileInput = new FileUploadOptions();
|
|
140
|
-
this.licenseFileInput.
|
|
141
|
-
this.licenseFileInput.
|
|
142
|
-
this.licenseFileInput.
|
|
143
|
-
this.licenseFileInput.
|
|
144
|
-
this.licenseFileInput.
|
|
140
|
+
this.licenseFileInput.name = "LicenseFileInput";
|
|
141
|
+
this.licenseFileInput.labelKey = "UploadFile";
|
|
142
|
+
this.licenseFileInput.isMultipleFile = false;
|
|
143
|
+
this.licenseFileInput.isRequired = true;
|
|
144
|
+
this.licenseFileInput.fileUploadAcceptsTypes = [FileType.License];
|
|
145
145
|
this.modalService.open(uploadFileModal);
|
|
146
146
|
this.utilityService.stopBlockUI();
|
|
147
147
|
}
|
|
@@ -154,10 +154,10 @@ export class LicenseComponent {
|
|
|
154
154
|
this.requestHandlerService.destroyHandler();
|
|
155
155
|
}
|
|
156
156
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: LicenseComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.LicenseService }, { token: i4.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
157
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: LicenseComponent, selector: "lib-license", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i7.FileUploadComponent, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["
|
|
157
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: LicenseComponent, selector: "lib-license", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i7.FileUploadComponent, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "directive", type: i8.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
|
|
158
158
|
}
|
|
159
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: LicenseComponent, decorators: [{
|
|
160
160
|
type: Component,
|
|
161
161
|
args: [{ selector: 'lib-license', template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"] }]
|
|
162
162
|
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.EnvironmentService }, { type: i3.LicenseService }, { type: i4.NgbModal }, { type: i2.RequestHandlerService }] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7QUFTckYsTUFBTSxPQUFPLGdCQUFnQjtJQTRCeUIsQ0FBQztJQUdyRCxZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUFzQixFQUN0QixxQkFBNEM7UUFMNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztR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NUQsZ0JBQWdCLENBQUMsY0FBYztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUN0QyxDQUFDO0lBUUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0FsTFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbURDZjdCLDR6TkE0SEE7OzJGRDdHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgU2hvd1BhZ2VDb250ZW50ID0gZmFsc2U7XHJcbiAgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1NoYWRvdyA9IFtdO1xyXG4gIG5vTGljZW5zZUZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aXZhdGlvbkRhdGU6IHN0cmluZztcclxuICBsaWNlbnNlU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZUVuZERhdGU6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZUluTWludXRlczogbnVtYmVyID0gMFxyXG4gIHNlY29uZHM6IG51bWJlciA9IDA7XHJcbiAgbWludXRlczogbnVtYmVyID0gMDtcclxuICBob3VyczogbnVtYmVyID0gMDtcclxuICBkYXlzOiBudW1iZXIgPSAwO1xyXG4gIHdlZWtzOiBudW1iZXIgPSAwO1xyXG4gIG1vbnRoczogbnVtYmVyID0gMDtcclxuICB5ZWFyczogbnVtYmVyID0gMDtcclxuICBkYXRlX2Z1dHVyZTogYW55O1xyXG4gIGRhdGVfbm93OiBhbnk7XHJcbiAgc2hvd1RpbWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW50ZXJ2YWxDb25zdDogYW55O1xyXG4gIC8vVXBsb2FkIE1vZGVsIENvbnRyb2xzXHJcbiAgdXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICB1cGxvYWRGaWxlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbGljZW5zZUZpbGVJbnB1dDogRmlsZVVwbG9hZE9wdGlvbnM7XHJcbiAgYXBwZW5kRXhpc3Rpbmc6IGJvb2xlYW47XHJcbiAgaW5pdGlhbE1pbnV0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgyNCAqIDYwICogMzApOztcclxuICB2YWx1ZSA9IDA7XHJcbiAgdGltZXIkOiBhbnlcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbGljZW5zZVNlcnZpY2U6IExpY2Vuc2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKVxyXG4gICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5saWNlbnNlU2VydmljZS5nZXRPcmdhbml6YXRpb25MaWNlbnNlKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBpZiAoTW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUxpY2Vuc2VEYXRhKE1vZGVsLnZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNldFBhZ2VMaWNlbnNlRGF0YShsaWNlbnNlOiBhbnkpIHtcclxuICAgIGxldCBzdGFydERhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmxpY2Vuc2VTdGFydERhdGUpO1xyXG4gICAgbGV0IGVuZERhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmxpY2Vuc2VFbmREYXRlKTtcclxuICAgIGxldCBhY3RpdmF0aW9uRGF0ZSA9IG5ldyBEYXRlKGxpY2Vuc2UuYWN0aXZhdGlvbkRhdGUpO1xyXG4gICAgdGhpcy5hY3RpdmF0aW9uRGF0ZSA9IGFjdGl2YXRpb25EYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgdGhpcy5saWNlbnNlU3RhcnREYXRlID0gc3RhcnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICB0aGlzLmxpY2Vuc2VFbmREYXRlID0gZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgdGhpcy5uYW1lID0gbGljZW5zZS5uYW1lLmN1cnJlbnRcclxuXHJcbiAgICBsZXQgQ3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKChlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpID09IEN1cnJlbnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpKSlcclxuICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZCA9IHRydWVcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZCA9IGZhbHNlXHJcblxyXG4gICAgdGhpcy5kYXRlSW5NaW51dGVzID0gdGhpcy5nZXREaWZmZXJlbmNlSW5NaW51dGVzKEN1cnJlbnREYXRlLCBlbmREYXRlKTtcclxuICAgIC8vc2V0IGZpcnN0IHRpbWVcclxuICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIHRoaXMuc2hvd1RpbWVyID0gdHJ1ZVxyXG5cclxuICAgIHRoaXMuaW50ZXJ2YWxDb25zdCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRDb3VudGVyKGVuZERhdGUpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb3VudGVyKGVuZERhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGF0ZV9mdXR1cmUgPSBlbmREYXRlO1xyXG4gICAgdGhpcy5kYXRlX25vdyA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgdGhpcy5zZWNvbmRzID0gTWF0aC5mbG9vcigodGhpcy5kYXRlX2Z1dHVyZSAtICh0aGlzLmRhdGVfbm93KSkgLyAxMDAwKTtcclxuICAgIHRoaXMubWludXRlcyA9IE1hdGguZmxvb3IodGhpcy5zZWNvbmRzIC8gNjApO1xyXG4gICAgdGhpcy5ob3VycyA9IE1hdGguZmxvb3IodGhpcy5taW51dGVzIC8gNjApO1xyXG4gICAgdGhpcy5kYXlzID0gTWF0aC5mbG9vcih0aGlzLmhvdXJzIC8gMjQpO1xyXG4gICAgdGhpcy5tb250aHMgPSBNYXRoLmZsb29yKHRoaXMuZGF5cyAvIDMxKTtcclxuICAgIHRoaXMueWVhcnMgPSBNYXRoLmZsb29yKHRoaXMubW9udGhzIC8gMTIpO1xyXG5cclxuICAgIHRoaXMuaG91cnMgPSB0aGlzLmhvdXJzIC0gKHRoaXMuZGF5cyAqIDI0KTtcclxuICAgIHRoaXMubWludXRlcyA9IHRoaXMubWludXRlcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwKSAtICh0aGlzLmhvdXJzICogNjApO1xyXG4gICAgdGhpcy5zZWNvbmRzID0gdGhpcy5zZWNvbmRzIC0gKHRoaXMuZGF5cyAqIDI0ICogNjAgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwICogNjApIC0gKHRoaXMubWludXRlcyAqIDYwKTtcclxuICAgIHRoaXMuZGF5cyA9IHRoaXMuZGF5cyAtICh0aGlzLm1vbnRocyAqIDMxKTtcclxuICAgIHRoaXMubW9udGhzID0gdGhpcy5tb250aHMgLSAodGhpcy55ZWFycyAqIDEyKTtcclxuICB9XHJcblxyXG4gIGdldERpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZTEsIGRhdGUyKSB7XHJcbiAgICBjb25zdCBkaWZmSW5NcyA9IE1hdGguYWJzKGRhdGUyIC0gZGF0ZTEpO1xyXG4gICAgcmV0dXJuIGRpZmZJbk1zIC8gKDEwMDAgKiA2MCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vLy8vLy8vLy8vLyBTdGFydCBhZGQgTGljZW5zZSBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtLnJlc2V0KCk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMudXBsb2FkRmlsZUZvcm1cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VNb2RlbDtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZUZ1bmN0aW9uO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMuT25TdWNjZXNzSGFuZGxlcjtcclxuXHJcblxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0ID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuTmFtZSA9IFwiTGljZW5zZUZpbGVJbnB1dFwiXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuTGFiZWxLZXkgPSBcIlVwbG9hZEZpbGVcIlxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LklzTXVsdGlwbGVGaWxlID0gZmFsc2VcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5Jc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LkZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBbRmlsZVR5cGUuTGljZW5zZV1cclxuXHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih1cGxvYWRGaWxlTW9kYWwpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRBZGRMaWNlbnNlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMudXBsb2FkRmlsZUZvcm0udmFsdWU7XHJcbiAgICBsZXQgTW9kZWwgPSBuZXcgTGljZW5zZU1vZGVsKCk7XHJcblxyXG4gICAgTW9kZWwuYXBwZW5kRXhpc3RpbmcgPSB0aGlzLmFwcGVuZEV4aXN0aW5nO1xyXG4gICAgTW9kZWwuTGljZW5zZUZpbGUgPSB7XHJcbiAgICAgIEZpbGVCYXNlNjQ6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVCYXNlNjQsXHJcbiAgICAgIEZpbGVOYW1lOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlTmFtZSxcclxuICAgICAgRmlsZVNpemVJbk1COiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlU2l6ZUluTUIsXHJcbiAgICAgIEZpbGVUeXBlOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlVHlwZVxyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTGljZW5zZUZ1bmN0aW9uID0gKE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxpY2Vuc2VTZXJ2aWNlLnVwbG9hZExpY2Vuc2UoTW9kZWwpO1xyXG4gIH1cclxuICAvLy8vLy8vLy8vLy8gRW5kIG9mIGFkZCBMaWNlbnNlICBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbiAgaXNBcHBlbmRFeGlzdGluZyhhcHBlbmRFeGlzdGluZykge1xyXG4gICAgdGhpcy5hcHBlbmRFeGlzdGluZyA9IGFwcGVuZEV4aXN0aW5nXHJcbiAgfVxyXG4gIE9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzKSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxDb25zdCk7XHJcbiAgICB0aGlzLnNldFBhZ2VMaWNlbnNlRGF0YShyZXMudmFsKTtcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLUJlZ2luOjpTZWN0aW9uLS0+XHJcbiAgPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgIDxoMyAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiXCI+e3tuYW1lfX08L2gzPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbS0zIGJhZGdlLWxnXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VBY3RpdmF0ZWRTdWNjZXNzZnVsbHlcIil9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2YXRlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUaW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fVGltZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVhcnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieWVhcnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3t5ZWFyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNb250aHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bW9udGhzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRheXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5cyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2RheXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG91cnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91cnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tob3Vyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW51dGVzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbiBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21pbnV0ZXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSAgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlY29uZHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VjIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7c2Vjb25kc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBsaWNlbnNlLWhlYWRcIiAqbmdJZj1cIm5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZU5vdEZvdW5kXCIpfX1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVN0YXJ0RGF0ZVwiKX19OjwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlU3RhcnREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VFeHBpcnlEYXRlXCIpfX06PC9wPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e2xpY2Vuc2VFbmREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIGFjdGl2YXRlLS0+XHJcbiAgPG5nLXRlbXBsYXRlICN1cGxvYWRGaWxlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi4vLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwidXBsb2FkRmlsZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtRmlsZVVwbGFvZCBbb3B0aW9uc109XCJsaWNlbnNlRmlsZUlucHV0XCIgW2dyb3VwXT1cInVwbG9hZEZpbGVGb3JtXCI+XHJcbiAgICAgICAgPC9CQlNGLUZpbGVVcGxhb2Q+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gI0Nsb3NlTGljZW5zZUZpbGVNb2RhbCBpZD1cIkNsb3NlTGljZW5zZUZpbGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcoZmFsc2UpXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJpc0FwcGVuZEV4aXN0aW5nKHRydWUpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcHBlbmRcIil9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7QUFTckYsTUFBTSxPQUFPLGdCQUFnQjtJQTRCeUIsQ0FBQztJQUdyRCxZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUFzQixFQUN0QixxQkFBNEM7UUFMNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztR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NUQsZ0JBQWdCLENBQUMsY0FBYztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUN0QyxDQUFDO0lBUUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0FsTFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbURDZjdCLDR6TkE0SEE7OzJGRDdHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgU2hvd1BhZ2VDb250ZW50ID0gZmFsc2U7XHJcbiAgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1NoYWRvdyA9IFtdO1xyXG4gIG5vTGljZW5zZUZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aXZhdGlvbkRhdGU6IHN0cmluZztcclxuICBsaWNlbnNlU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZUVuZERhdGU6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZUluTWludXRlczogbnVtYmVyID0gMFxyXG4gIHNlY29uZHM6IG51bWJlciA9IDA7XHJcbiAgbWludXRlczogbnVtYmVyID0gMDtcclxuICBob3VyczogbnVtYmVyID0gMDtcclxuICBkYXlzOiBudW1iZXIgPSAwO1xyXG4gIHdlZWtzOiBudW1iZXIgPSAwO1xyXG4gIG1vbnRoczogbnVtYmVyID0gMDtcclxuICB5ZWFyczogbnVtYmVyID0gMDtcclxuICBkYXRlX2Z1dHVyZTogYW55O1xyXG4gIGRhdGVfbm93OiBhbnk7XHJcbiAgc2hvd1RpbWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW50ZXJ2YWxDb25zdDogYW55O1xyXG4gIC8vVXBsb2FkIE1vZGVsIENvbnRyb2xzXHJcbiAgdXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICB1cGxvYWRGaWxlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbGljZW5zZUZpbGVJbnB1dDogRmlsZVVwbG9hZE9wdGlvbnM7XHJcbiAgYXBwZW5kRXhpc3Rpbmc6IGJvb2xlYW47XHJcbiAgaW5pdGlhbE1pbnV0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgyNCAqIDYwICogMzApOztcclxuICB2YWx1ZSA9IDA7XHJcbiAgdGltZXIkOiBhbnlcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbGljZW5zZVNlcnZpY2U6IExpY2Vuc2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKVxyXG4gICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5saWNlbnNlU2VydmljZS5nZXRPcmdhbml6YXRpb25MaWNlbnNlKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBpZiAoTW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUxpY2Vuc2VEYXRhKE1vZGVsLnZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNldFBhZ2VMaWNlbnNlRGF0YShsaWNlbnNlOiBhbnkpIHtcclxuICAgIGxldCBzdGFydERhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmxpY2Vuc2VTdGFydERhdGUpO1xyXG4gICAgbGV0IGVuZERhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmxpY2Vuc2VFbmREYXRlKTtcclxuICAgIGxldCBhY3RpdmF0aW9uRGF0ZSA9IG5ldyBEYXRlKGxpY2Vuc2UuYWN0aXZhdGlvbkRhdGUpO1xyXG4gICAgdGhpcy5hY3RpdmF0aW9uRGF0ZSA9IGFjdGl2YXRpb25EYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgdGhpcy5saWNlbnNlU3RhcnREYXRlID0gc3RhcnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICB0aGlzLmxpY2Vuc2VFbmREYXRlID0gZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgdGhpcy5uYW1lID0gbGljZW5zZS5uYW1lLmN1cnJlbnRcclxuXHJcbiAgICBsZXQgQ3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKChlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpID09IEN1cnJlbnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpKSlcclxuICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZCA9IHRydWVcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZCA9IGZhbHNlXHJcblxyXG4gICAgdGhpcy5kYXRlSW5NaW51dGVzID0gdGhpcy5nZXREaWZmZXJlbmNlSW5NaW51dGVzKEN1cnJlbnREYXRlLCBlbmREYXRlKTtcclxuICAgIC8vc2V0IGZpcnN0IHRpbWVcclxuICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIHRoaXMuc2hvd1RpbWVyID0gdHJ1ZVxyXG5cclxuICAgIHRoaXMuaW50ZXJ2YWxDb25zdCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRDb3VudGVyKGVuZERhdGUpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb3VudGVyKGVuZERhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGF0ZV9mdXR1cmUgPSBlbmREYXRlO1xyXG4gICAgdGhpcy5kYXRlX25vdyA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgdGhpcy5zZWNvbmRzID0gTWF0aC5mbG9vcigodGhpcy5kYXRlX2Z1dHVyZSAtICh0aGlzLmRhdGVfbm93KSkgLyAxMDAwKTtcclxuICAgIHRoaXMubWludXRlcyA9IE1hdGguZmxvb3IodGhpcy5zZWNvbmRzIC8gNjApO1xyXG4gICAgdGhpcy5ob3VycyA9IE1hdGguZmxvb3IodGhpcy5taW51dGVzIC8gNjApO1xyXG4gICAgdGhpcy5kYXlzID0gTWF0aC5mbG9vcih0aGlzLmhvdXJzIC8gMjQpO1xyXG4gICAgdGhpcy5tb250aHMgPSBNYXRoLmZsb29yKHRoaXMuZGF5cyAvIDMxKTtcclxuICAgIHRoaXMueWVhcnMgPSBNYXRoLmZsb29yKHRoaXMubW9udGhzIC8gMTIpO1xyXG5cclxuICAgIHRoaXMuaG91cnMgPSB0aGlzLmhvdXJzIC0gKHRoaXMuZGF5cyAqIDI0KTtcclxuICAgIHRoaXMubWludXRlcyA9IHRoaXMubWludXRlcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwKSAtICh0aGlzLmhvdXJzICogNjApO1xyXG4gICAgdGhpcy5zZWNvbmRzID0gdGhpcy5zZWNvbmRzIC0gKHRoaXMuZGF5cyAqIDI0ICogNjAgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwICogNjApIC0gKHRoaXMubWludXRlcyAqIDYwKTtcclxuICAgIHRoaXMuZGF5cyA9IHRoaXMuZGF5cyAtICh0aGlzLm1vbnRocyAqIDMxKTtcclxuICAgIHRoaXMubW9udGhzID0gdGhpcy5tb250aHMgLSAodGhpcy55ZWFycyAqIDEyKTtcclxuICB9XHJcblxyXG4gIGdldERpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZTEsIGRhdGUyKSB7XHJcbiAgICBjb25zdCBkaWZmSW5NcyA9IE1hdGguYWJzKGRhdGUyIC0gZGF0ZTEpO1xyXG4gICAgcmV0dXJuIGRpZmZJbk1zIC8gKDEwMDAgKiA2MCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vLy8vLy8vLy8vLyBTdGFydCBhZGQgTGljZW5zZSBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtLnJlc2V0KCk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMudXBsb2FkRmlsZUZvcm1cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VNb2RlbDtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZUZ1bmN0aW9uO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMub25TdWNjZXNzSGFuZGxlciA9IHRoaXMuT25TdWNjZXNzSGFuZGxlcjtcclxuXHJcblxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0ID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubmFtZSA9IFwiTGljZW5zZUZpbGVJbnB1dFwiXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubGFiZWxLZXkgPSBcIlVwbG9hZEZpbGVcIlxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmlzTXVsdGlwbGVGaWxlID0gZmFsc2VcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5pc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBbRmlsZVR5cGUuTGljZW5zZV1cclxuXHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih1cGxvYWRGaWxlTW9kYWwpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRBZGRMaWNlbnNlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMudXBsb2FkRmlsZUZvcm0udmFsdWU7XHJcbiAgICBsZXQgTW9kZWwgPSBuZXcgTGljZW5zZU1vZGVsKCk7XHJcblxyXG4gICAgTW9kZWwuYXBwZW5kRXhpc3RpbmcgPSB0aGlzLmFwcGVuZEV4aXN0aW5nO1xyXG4gICAgTW9kZWwuTGljZW5zZUZpbGUgPSB7XHJcbiAgICAgIEZpbGVCYXNlNjQ6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVCYXNlNjQsXHJcbiAgICAgIEZpbGVOYW1lOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlTmFtZSxcclxuICAgICAgRmlsZVNpemVJbk1COiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlU2l6ZUluTUIsXHJcbiAgICAgIEZpbGVUeXBlOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlVHlwZVxyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTGljZW5zZUZ1bmN0aW9uID0gKE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxpY2Vuc2VTZXJ2aWNlLnVwbG9hZExpY2Vuc2UoTW9kZWwpO1xyXG4gIH1cclxuICAvLy8vLy8vLy8vLy8gRW5kIG9mIGFkZCBMaWNlbnNlICBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbiAgaXNBcHBlbmRFeGlzdGluZyhhcHBlbmRFeGlzdGluZykge1xyXG4gICAgdGhpcy5hcHBlbmRFeGlzdGluZyA9IGFwcGVuZEV4aXN0aW5nXHJcbiAgfVxyXG4gIE9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzKSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxDb25zdCk7XHJcbiAgICB0aGlzLnNldFBhZ2VMaWNlbnNlRGF0YShyZXMudmFsKTtcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLUJlZ2luOjpTZWN0aW9uLS0+XHJcbiAgPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgIDxoMyAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiXCI+e3tuYW1lfX08L2gzPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbS0zIGJhZGdlLWxnXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VBY3RpdmF0ZWRTdWNjZXNzZnVsbHlcIil9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2YXRlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUaW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fVGltZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVhcnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieWVhcnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3t5ZWFyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNb250aHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bW9udGhzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRheXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5cyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2RheXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG91cnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91cnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tob3Vyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW51dGVzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbiBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21pbnV0ZXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSAgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlY29uZHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VjIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7c2Vjb25kc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBsaWNlbnNlLWhlYWRcIiAqbmdJZj1cIm5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZU5vdEZvdW5kXCIpfX1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVN0YXJ0RGF0ZVwiKX19OjwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlU3RhcnREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VFeHBpcnlEYXRlXCIpfX06PC9wPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e2xpY2Vuc2VFbmREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIGFjdGl2YXRlLS0+XHJcbiAgPG5nLXRlbXBsYXRlICN1cGxvYWRGaWxlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi4vLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwidXBsb2FkRmlsZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtRmlsZVVwbGFvZCBbb3B0aW9uc109XCJsaWNlbnNlRmlsZUlucHV0XCIgW2dyb3VwXT1cInVwbG9hZEZpbGVGb3JtXCI+XHJcbiAgICAgICAgPC9CQlNGLUZpbGVVcGxhb2Q+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gI0Nsb3NlTGljZW5zZUZpbGVNb2RhbCBpZD1cIkNsb3NlTGljZW5zZUZpbGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcoZmFsc2UpXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJpc0FwcGVuZEV4aXN0aW5nKHRydWUpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcHBlbmRcIil9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19
|
|
@@ -81,48 +81,48 @@ export class LocalizationsReplaceTextComponent {
|
|
|
81
81
|
if (isFind) {
|
|
82
82
|
this.findForm = new FormGroup({});
|
|
83
83
|
this.findFormOptions = new FormOptions();
|
|
84
|
-
this.findFormOptions.
|
|
84
|
+
this.findFormOptions.formGroup = this.findForm;
|
|
85
85
|
let selectedResourceSet = this.resourceSetList.map((item) => item.key);
|
|
86
86
|
this.resourceSet = new DropdownOptions();
|
|
87
|
-
this.resourceSet.
|
|
88
|
-
this.resourceSet.
|
|
89
|
-
this.resourceSet.
|
|
90
|
-
this.resourceSet.
|
|
91
|
-
this.resourceSet.
|
|
92
|
-
this.resourceSet.
|
|
93
|
-
this.resourceSet.
|
|
87
|
+
this.resourceSet.name = "resourceSet";
|
|
88
|
+
this.resourceSet.labelKey = "ResourceSet";
|
|
89
|
+
this.resourceSet.dataSource = this.resourceSetList;
|
|
90
|
+
this.resourceSet.singleSelection = false;
|
|
91
|
+
this.resourceSet.allowSearchFilter = true;
|
|
92
|
+
this.resourceSet.selectedItems = selectedResourceSet;
|
|
93
|
+
this.resourceSet.isRequired = true;
|
|
94
94
|
this.findText = new TextBoxOptions();
|
|
95
|
-
this.findText.
|
|
96
|
-
this.findText.
|
|
97
|
-
this.findText.
|
|
98
|
-
this.findText.
|
|
99
|
-
this.findText.
|
|
95
|
+
this.findText.name = "findText";
|
|
96
|
+
this.findText.labelKey = "FindWhat";
|
|
97
|
+
this.findText.type = InputType.Text;
|
|
98
|
+
this.findText.value = null;
|
|
99
|
+
this.findText.isRequired = true;
|
|
100
100
|
this.caseSensetive = new CheckBoxOptions();
|
|
101
|
-
this.caseSensetive.
|
|
102
|
-
this.caseSensetive.
|
|
103
|
-
this.caseSensetive.
|
|
101
|
+
this.caseSensetive.name = "caseSensetive";
|
|
102
|
+
this.caseSensetive.value = true;
|
|
103
|
+
this.caseSensetive.labelKey = "CaseSensetive";
|
|
104
104
|
this.matchWholeWord = new CheckBoxOptions();
|
|
105
|
-
this.matchWholeWord.
|
|
106
|
-
this.matchWholeWord.
|
|
107
|
-
this.matchWholeWord.
|
|
105
|
+
this.matchWholeWord.name = "matchWholeWord";
|
|
106
|
+
this.matchWholeWord.value = true;
|
|
107
|
+
this.matchWholeWord.labelKey = "MatchWholeWord";
|
|
108
108
|
this.english = new CheckBoxOptions();
|
|
109
|
-
this.english.
|
|
110
|
-
this.english.
|
|
111
|
-
this.english.
|
|
109
|
+
this.english.name = "english";
|
|
110
|
+
this.english.value = true;
|
|
111
|
+
this.english.labelKey = "English";
|
|
112
112
|
this.arabic = new CheckBoxOptions();
|
|
113
|
-
this.arabic.
|
|
114
|
-
this.arabic.
|
|
115
|
-
this.arabic.
|
|
113
|
+
this.arabic.name = "arabic";
|
|
114
|
+
this.arabic.value = true;
|
|
115
|
+
this.arabic.labelKey = "Arabic";
|
|
116
116
|
}
|
|
117
117
|
else {
|
|
118
|
-
this.findFormOptions.
|
|
119
|
-
this.findFormOptions.
|
|
118
|
+
this.findFormOptions.getModelFunction = this.getReplaceResourceModel;
|
|
119
|
+
this.findFormOptions.serviceSubmitFunction = this.getReplaceResourceFunction;
|
|
120
120
|
this.replaceText = new TextBoxOptions();
|
|
121
|
-
this.replaceText.
|
|
122
|
-
this.replaceText.
|
|
123
|
-
this.replaceText.
|
|
124
|
-
this.replaceText.
|
|
125
|
-
this.replaceText.
|
|
121
|
+
this.replaceText.name = "replaceText";
|
|
122
|
+
this.replaceText.labelKey = "ReplaceWith";
|
|
123
|
+
this.replaceText.type = InputType.Text;
|
|
124
|
+
this.replaceText.value = null;
|
|
125
|
+
this.replaceText.isRequired = true;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
initializePaging() {
|
|
@@ -158,13 +158,13 @@ export class LocalizationsReplaceTextComponent {
|
|
|
158
158
|
this.isArabicFilter.IsFormControl = true;
|
|
159
159
|
this.isArabicFilter.FilterType = FilterType.CheckBox;
|
|
160
160
|
this.localizationPaging = new PagingOptions();
|
|
161
|
-
this.localizationPaging.
|
|
161
|
+
this.localizationPaging.reinitializeFunctionName = "reinitializeResources";
|
|
162
162
|
//this.localizationPaging.OnClickFiltersControlNames = ["findBtn"];
|
|
163
|
-
this.localizationPaging.
|
|
164
|
-
this.localizationPaging.
|
|
165
|
-
this.localizationPaging.
|
|
166
|
-
this.localizationPaging.
|
|
167
|
-
this.localizationPaging.
|
|
163
|
+
this.localizationPaging.actionPostURL = this.apiUrl + 'FindResource';
|
|
164
|
+
this.localizationPaging.onKeyPressFiltersControlNames = ["findText", "caseSensetive", "matchWholeWord", "english", "arabic"];
|
|
165
|
+
this.localizationPaging.dropdownFiltersControlNames = ["ResourceSet"];
|
|
166
|
+
this.localizationPaging.filters = [this.resourceSetFilter, this.textInputFilter, this.caseSensetiveFilter, this.matchWholeWordFilter, this.isEnglishFilter, this.isArabicFilter];
|
|
167
|
+
this.localizationPaging.onSuccessCallBackJSFunction = "findResourceOnSuccess";
|
|
168
168
|
}
|
|
169
169
|
findResource() {
|
|
170
170
|
debugger;
|
|
@@ -183,7 +183,7 @@ export class LocalizationsReplaceTextComponent {
|
|
|
183
183
|
debugger;
|
|
184
184
|
this.localizationPagingResult = result;
|
|
185
185
|
if (!this.isFirstTime) {
|
|
186
|
-
this.replaceText.
|
|
186
|
+
this.replaceText.value = null;
|
|
187
187
|
this.showFindResult = true;
|
|
188
188
|
if (result.length > 0)
|
|
189
189
|
this.enableReplaceBtn = true;
|
|
@@ -200,7 +200,7 @@ export class LocalizationsReplaceTextComponent {
|
|
|
200
200
|
this.requestHandlerService.destroyHandler();
|
|
201
201
|
}
|
|
202
202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: LocalizationsReplaceTextComponent, deps: [{ token: i1.localizationsService }, { token: i2.PageInfoService }, { token: i3.UtilityService }, { token: i3.BBSFTranslateService }, { token: i3.RequestHandlerService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: LocalizationsReplaceTextComponent, selector: "lib-localizations-replace-text", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["formElement"], descendants: true }, { propertyName: "pagingElement", first: true, predicate: ["localizationPagingViewElement"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <BBSF-Form [options]=\"findFormOptions\" #formElement>\r\n\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"resourceSet\" [group]=\"findForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"findText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"caseSensetive\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"matchWholeWord\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"english\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"arabic\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"submit\" #submitFormButton hidden class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Submit\")}}</button>\r\n <button type=\"button\" (click)=\"findResource()\" id=\"findBtn\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Find\")}}</button>\r\n </div>\r\n <div *ngIf=\"showFindResult\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceId\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"English\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Arabic\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let resource of localizationPagingResult\">\r\n <td>\r\n <div class=\"text-dark\">{{resource.resourceSet}}</div>\r\n </td>\r\n <td>{{resource.resourceId}}</td>\r\n <td>{{resource.valueEN}}</td>\r\n <td>{{resource.valueAR}}</td>\r\n </tr>\r\n <tr *ngIf=\"localizationPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"row\" id=\"replaceControls\">\r\n <div class=\"col-md-9\">\r\n <BBSF-TextBox [options]=\"replaceText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button [disabled]=\"!enableReplaceBtn\" type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setResourcesListResult($event)\" \r\n [options]=\"localizationPaging\" [group]=\"findForm\" #localizationPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </BBSF-Form>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i6.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: LocalizationsReplaceTextComponent, selector: "lib-localizations-replace-text", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["formElement"], descendants: true }, { propertyName: "pagingElement", first: true, predicate: ["localizationPagingViewElement"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <BBSF-Form [options]=\"findFormOptions\" #formElement>\r\n\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"resourceSet\" [group]=\"findForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"findText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"caseSensetive\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"matchWholeWord\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"english\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"arabic\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"submit\" #submitFormButton hidden class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Submit\")}}</button>\r\n <button type=\"button\" (click)=\"findResource()\" id=\"findBtn\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Find\")}}</button>\r\n </div>\r\n <div *ngIf=\"showFindResult\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceId\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"English\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Arabic\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let resource of localizationPagingResult\">\r\n <td>\r\n <div class=\"text-dark\">{{resource.resourceSet}}</div>\r\n </td>\r\n <td>{{resource.resourceId}}</td>\r\n <td>{{resource.valueEN}}</td>\r\n <td>{{resource.valueAR}}</td>\r\n </tr>\r\n <tr *ngIf=\"localizationPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"row\" id=\"replaceControls\">\r\n <div class=\"col-md-9\">\r\n <BBSF-TextBox [options]=\"replaceText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button [disabled]=\"!enableReplaceBtn\" type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setResourcesListResult($event)\" \r\n [options]=\"localizationPaging\" [group]=\"findForm\" #localizationPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </BBSF-Form>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i6.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i6.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i6.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i6.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i6.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i7.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
|
|
204
204
|
}
|
|
205
205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: LocalizationsReplaceTextComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
212
212
|
type: ViewChild,
|
|
213
213
|
args: ['localizationPagingViewElement', { static: false }]
|
|
214
214
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb2NhbGl6YXRpb25zL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0L2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9jYWxpemF0aW9ucy9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQWlCLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFpQixXQUFXLEVBQUUsU0FBUyxFQUFtQixhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJek0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7Ozs7QUFRbkgsTUFBTSxPQUFPLGlDQUFpQztJQW9DNUMsWUFFWSxvQkFBMEMsRUFBVSxlQUFnQyxFQUNyRixjQUE4QixFQUFVLG9CQUEwQyxFQUNqRixxQkFBNEMsRUFBVSxXQUF3QjtRQUY5RSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3JGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtR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QzFCO0lBQ0gsQ0FBQztJQXVCRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQTFPVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxtU0NmOUMsKzlIQXdGQTs7MkZEekVhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7cVBBNEJHLFdBQVc7c0JBQXZELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFTb0IsYUFBYTtzQkFBM0UsU0FBUzt1QkFBQywrQkFBK0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnY29uc29sZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25SZXBsYWNlVGV4dE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb2NhbGl6YXRpb25Nb2RlbHMvTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCc7XHJcbmltcG9ydCB7IGxvY2FsaXphdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL2xvY2FsaXphdGlvbnNTZXJ2aWNlLnNlcnZpY2UgJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uc1JlcGxhY2VUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgYXBpVXJsID0gdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5BcGlVcmxcclxuICBpc0ZpcnN0VGltZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLy9SZXF1aXJlZCBDb250cm9scyBmb3IgRmluZFxyXG4gIGZpbmRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZmluZEZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICByZXNvdXJjZVNldDogRHJvcGRvd25PcHRpb25zO1xyXG4gIGZpbmRUZXh0OiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNvdXJjZVNldExpc3Q6IGFueVtdID0gW107XHJcbiAgLy9maWx0ZXJzXHJcbiAgcmVzb3VyY2VTZXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGNhc2VTZW5zZXRpdmVGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgbWF0Y2hXaG9sZVdvcmRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNFbmdsaXNoRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGlzQXJhYmljRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIC8vUmVxdWlyZWQgQ29udHJvbHMgZm9yIFJlcGxhY2VcclxuICByZXBsYWNlVGV4dDogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0ZpbmRSZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVSZXBsYWNlQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1FbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1FbGVtZW50OiBGb3JtQ29tcG9uZW50O1xyXG4gIC8vRmlsdGVyc1xyXG4gIGNhc2VTZW5zZXRpdmU6IENoZWNrQm94T3B0aW9ucztcclxuICBtYXRjaFdob2xlV29yZDogQ2hlY2tCb3hPcHRpb25zO1xyXG4gIGVuZ2xpc2g6IENoZWNrQm94T3B0aW9ucztcclxuICBhcmFiaWM6IENoZWNrQm94T3B0aW9ucztcclxuICAvL1Jlc3VsdCB0YWJsZVxyXG4gIGxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBsb2NhbGl6YXRpb25QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZCgnbG9jYWxpemF0aW9uUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGxvY2FsaXphdGlvbnNTZXJ2aWNlOiBsb2NhbGl6YXRpb25zU2VydmljZSwgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlcGxhY2VUZXh0XCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9jYWxpemF0aW9uc1wiKSwgcGF0aDogJy9BZG1pbi9Mb2NhbGl6YXRpb24nLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG4gIC8vSW5pdCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLmxvYWREcm9wZG93bigpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXRMaXN0ID0gcmVzdWx0IGFzIGFueVxyXG5cclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSh0cnVlKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgICAgfSwgNTApO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuICBpbml0aWFsaXplRm9ybShpc0ZpbmQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc0ZpbmQpIHtcclxuICAgICAgdGhpcy5maW5kRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmZpbmRGb3JtXHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRSZXNvdXJjZVNldCA9IHRoaXMucmVzb3VyY2VTZXRMaXN0Lm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0Lk5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5MYWJlbEtleSA9IFwiUmVzb3VyY2VTZXRcIlxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LkRhdGFTb3VyY2UgPSB0aGlzLnJlc291cmNlU2V0TGlzdFxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRSZXNvdXJjZVNldDtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuZmluZFRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5maW5kVGV4dC5OYW1lID0gXCJmaW5kVGV4dFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LkxhYmVsS2V5ID0gXCJGaW5kV2hhdFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5maW5kVGV4dC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZmluZFRleHQuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5OYW1lID0gXCJjYXNlU2Vuc2V0aXZlXCI7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5WYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5MYWJlbEtleSA9IFwiQ2FzZVNlbnNldGl2ZVwiO1xyXG5cclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5OYW1lID0gXCJtYXRjaFdob2xlV29yZFwiO1xyXG4gICAgICB0aGlzLm1hdGNoV2hvbGVXb3JkLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5MYWJlbEtleSA9IFwiTWF0Y2hXaG9sZVdvcmRcIjtcclxuXHJcbiAgICAgIHRoaXMuZW5nbGlzaCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lbmdsaXNoLk5hbWUgPSBcImVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lbmdsaXNoLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lbmdsaXNoLkxhYmVsS2V5ID0gXCJFbmdsaXNoXCI7XHJcblxyXG4gICAgICB0aGlzLmFyYWJpYyA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hcmFiaWMuTmFtZSA9IFwiYXJhYmljXCI7XHJcbiAgICAgIHRoaXMuYXJhYmljLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hcmFiaWMuTGFiZWxLZXkgPSBcIkFyYWJpY1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZmluZEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZU1vZGVsO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uO1xyXG5cclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0Lk5hbWUgPSBcInJlcGxhY2VUZXh0XCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQuTGFiZWxLZXkgPSBcIlJlcGxhY2VXaXRoXCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBpbml0aWFsaXplUGFnaW5nKCkge1xyXG4gICAgLy9QYWdpbmcgYW5kIEZpbHRlcnNcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwicmVzb3VyY2VTZXRcIlxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Ecm9wZG93bkxpc3RcclxuXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImNhc2VTZW5zZXRpdmVcIlxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImlzQ2FzZVNlbnNpdGl2ZVwiXHJcbiAgICB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcIm1hdGNoV2hvbGVXb3JkXCJcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNNYXRjaFdob2xlV29yZE9ubHlcIlxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiZW5nbGlzaFwiXHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJpc0VuZ2xpc2hcIlxyXG4gICAgdGhpcy5pc0VuZ2xpc2hGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkNoZWNrQm94XHJcblxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLmlzQXJhYmljRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiYXJhYmljXCJcclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNBcmFiaWNcIlxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLlJlaW5pdGlhbGl6ZUZ1bmN0aW9uTmFtZSA9IFwicmVpbml0aWFsaXplUmVzb3VyY2VzXCJcclxuICAgIC8vdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJmaW5kQnRuXCJdO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpVXJsICsgJ0ZpbmRSZXNvdXJjZSc7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcImZpbmRUZXh0XCIsIFwiY2FzZVNlbnNldGl2ZVwiLCBcIm1hdGNoV2hvbGVXb3JkXCIsIFwiZW5nbGlzaFwiLCBcImFyYWJpY1wiXVxyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wiUmVzb3VyY2VTZXRcIl07XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5GaWx0ZXJzID0gW3RoaXMucmVzb3VyY2VTZXRGaWx0ZXIsIHRoaXMudGV4dElucHV0RmlsdGVyLCB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIsIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIsIHRoaXMuaXNFbmdsaXNoRmlsdGVyLCB0aGlzLmlzQXJhYmljRmlsdGVyXVxyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuT25TdWNjZXNzQ2FsbEJhY2tKU0Z1bmN0aW9uID0gXCJmaW5kUmVzb3VyY2VPblN1Y2Nlc3NcIjtcclxuXHJcbiAgfVxyXG4gIGZpbmRSZXNvdXJjZSgpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgLy9pZiBoYXMgdmFsdWVcclxuICAgIHZhciBpc1ZhbGlkID0gdGhpcy5maW5kRm9ybS5jb250cm9sc1tcImZpbmRUZXh0XCJdLnZhbGlkO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLnBhZ2luZ0VsZW1lbnQgYXMgYW55O1xyXG4gICAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBjb250cm9sID0gdGhpcy5maW5kRm9ybS5nZXQoXCJmaW5kVGV4dFwiKSBhcyBhbnk7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzZXRSZXNvdXJjZXNMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIGlmICghdGhpcy5pc0ZpcnN0VGltZSkge1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5zaG93RmluZFJlc3VsdCA9IHRydWU7XHJcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMClcclxuICAgICAgICB0aGlzLmVuYWJsZVJlcGxhY2VCdG4gPSB0cnVlO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5lbmFibGVSZXBsYWNlQnRuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaXNGaXJzdFRpbWUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vUmVwbGFjZSBSZXNvdXJjZSBmdW5jdGlvbnNcclxuICBnZXRSZXBsYWNlUmVzb3VyY2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5maW5kRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICAvL2NvbnNvbGUubG9nKFJlc3VsdE1vZGVsKTtcclxuICAgIGxldCByZXBsYWNlTW9kZWw6IExvY2FsaXphdGlvblJlcGxhY2VUZXh0TW9kZWwgPSBuZXcgTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCgpO1xyXG4gICAgcmVwbGFjZU1vZGVsLkZpbmRXaGF0ID0gcmVzdWx0TW9kZWwuZmluZFRleHQ7XHJcbiAgICByZXBsYWNlTW9kZWwuUmVwbGFjZVdpdGggPSByZXN1bHRNb2RlbC5yZXBsYWNlVGV4dDtcclxuICAgIHJlcGxhY2VNb2RlbC5TZWxlY3RlZFJlc291cmNlU2V0cyA9IHJlc3VsdE1vZGVsLnJlc291cmNlU2V0O1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQ2FzZVNlbnNpdGl2ZSA9IHJlc3VsdE1vZGVsLmNhc2VTZW5zZXRpdmU7XHJcbiAgICByZXBsYWNlTW9kZWwuSXNNYXRjaFdob2xlV29yZE9ubHkgPSByZXN1bHRNb2RlbC5tYXRjaFdob2xlV29yZDtcclxuICAgIHJlcGxhY2VNb2RlbC5Jc0VuZ2xpc2ggPSByZXN1bHRNb2RlbC5lbmdsaXNoO1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQXJhYmljID0gcmVzdWx0TW9kZWwuYXJhYmljO1xyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChyZXBsYWNlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uID0gKHJlcGxhY2VNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5yZXBsYWNlUmVzb3VyY2UocmVwbGFjZU1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbjxkaXYgKm5nSWY9XCJzaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZmluZEZvcm1PcHRpb25zXCIgI2Zvcm1FbGVtZW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJyZXNvdXJjZVNldFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJmaW5kVGV4dFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJjYXNlU2Vuc2V0aXZlXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIm1hdGNoV2hvbGVXb3JkXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImVuZ2xpc2hcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiYXJhYmljXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjc3VibWl0Rm9ybUJ1dHRvbiBoaWRkZW4gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3VibWl0XCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJmaW5kUmVzb3VyY2UoKVwiIGlkPVwiZmluZEJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkZpbmRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmluZFJlc3VsdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlU2V0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlSWRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW5nbGlzaFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXNvdXJjZSBvZiBsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e3Jlc291cmNlLnJlc291cmNlU2V0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UucmVzb3VyY2VJZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVFTn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVBUn19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBpZD1cInJlcGxhY2VDb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInJlcGxhY2VUZXh0XCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhZW5hYmxlUmVwbGFjZUJ0blwiIHR5cGU9XCJzdWJtaXRcIiAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0UmVzb3VyY2VzTGlzdFJlc3VsdCgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImxvY2FsaXphdGlvblBhZ2luZ1wiIFtncm91cF09XCJmaW5kRm9ybVwiICNsb2NhbGl6YXRpb25QYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb2NhbGl6YXRpb25zL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0L2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9jYWxpemF0aW9ucy9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQWlCLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFpQixXQUFXLEVBQUUsU0FBUyxFQUFtQixhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJek0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7Ozs7QUFRbkgsTUFBTSxPQUFPLGlDQUFpQztJQW9DNUMsWUFFWSxvQkFBMEMsRUFBVSxlQUFnQyxFQUNyRixjQUE4QixFQUFVLG9CQUEwQyxFQUNqRixxQkFBNEMsRUFBVSxXQUF3QjtRQUY5RSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3JGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtR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QzFCO0lBQ0gsQ0FBQztJQXVCRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQTFPVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxtU0NmOUMsKzlIQXdGQTs7MkZEekVhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7cVBBNEJHLFdBQVc7c0JBQXZELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFTb0IsYUFBYTtzQkFBM0UsU0FBUzt1QkFBQywrQkFBK0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnY29uc29sZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25SZXBsYWNlVGV4dE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb2NhbGl6YXRpb25Nb2RlbHMvTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCc7XHJcbmltcG9ydCB7IGxvY2FsaXphdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL2xvY2FsaXphdGlvbnNTZXJ2aWNlLnNlcnZpY2UgJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uc1JlcGxhY2VUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgYXBpVXJsID0gdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5BcGlVcmxcclxuICBpc0ZpcnN0VGltZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLy9SZXF1aXJlZCBDb250cm9scyBmb3IgRmluZFxyXG4gIGZpbmRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZmluZEZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICByZXNvdXJjZVNldDogRHJvcGRvd25PcHRpb25zO1xyXG4gIGZpbmRUZXh0OiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNvdXJjZVNldExpc3Q6IGFueVtdID0gW107XHJcbiAgLy9maWx0ZXJzXHJcbiAgcmVzb3VyY2VTZXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGNhc2VTZW5zZXRpdmVGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgbWF0Y2hXaG9sZVdvcmRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNFbmdsaXNoRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGlzQXJhYmljRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIC8vUmVxdWlyZWQgQ29udHJvbHMgZm9yIFJlcGxhY2VcclxuICByZXBsYWNlVGV4dDogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0ZpbmRSZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVSZXBsYWNlQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1FbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1FbGVtZW50OiBGb3JtQ29tcG9uZW50O1xyXG4gIC8vRmlsdGVyc1xyXG4gIGNhc2VTZW5zZXRpdmU6IENoZWNrQm94T3B0aW9ucztcclxuICBtYXRjaFdob2xlV29yZDogQ2hlY2tCb3hPcHRpb25zO1xyXG4gIGVuZ2xpc2g6IENoZWNrQm94T3B0aW9ucztcclxuICBhcmFiaWM6IENoZWNrQm94T3B0aW9ucztcclxuICAvL1Jlc3VsdCB0YWJsZVxyXG4gIGxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBsb2NhbGl6YXRpb25QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZCgnbG9jYWxpemF0aW9uUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGxvY2FsaXphdGlvbnNTZXJ2aWNlOiBsb2NhbGl6YXRpb25zU2VydmljZSwgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlcGxhY2VUZXh0XCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9jYWxpemF0aW9uc1wiKSwgcGF0aDogJy9BZG1pbi9Mb2NhbGl6YXRpb24nLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG4gIC8vSW5pdCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLmxvYWREcm9wZG93bigpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXRMaXN0ID0gcmVzdWx0IGFzIGFueVxyXG5cclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSh0cnVlKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgICAgfSwgNTApO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuICBpbml0aWFsaXplRm9ybShpc0ZpbmQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc0ZpbmQpIHtcclxuICAgICAgdGhpcy5maW5kRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLmZpbmRGb3JtXHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRSZXNvdXJjZVNldCA9IHRoaXMucmVzb3VyY2VTZXRMaXN0Lm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0Lm5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5sYWJlbEtleSA9IFwiUmVzb3VyY2VTZXRcIlxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LmRhdGFTb3VyY2UgPSB0aGlzLnJlc291cmNlU2V0TGlzdFxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRSZXNvdXJjZVNldDtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuZmluZFRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5maW5kVGV4dC5uYW1lID0gXCJmaW5kVGV4dFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LmxhYmVsS2V5ID0gXCJGaW5kV2hhdFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5maW5kVGV4dC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZmluZFRleHQuaXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5uYW1lID0gXCJjYXNlU2Vuc2V0aXZlXCI7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS52YWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5sYWJlbEtleSA9IFwiQ2FzZVNlbnNldGl2ZVwiO1xyXG5cclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5uYW1lID0gXCJtYXRjaFdob2xlV29yZFwiO1xyXG4gICAgICB0aGlzLm1hdGNoV2hvbGVXb3JkLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5sYWJlbEtleSA9IFwiTWF0Y2hXaG9sZVdvcmRcIjtcclxuXHJcbiAgICAgIHRoaXMuZW5nbGlzaCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lbmdsaXNoLm5hbWUgPSBcImVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lbmdsaXNoLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lbmdsaXNoLmxhYmVsS2V5ID0gXCJFbmdsaXNoXCI7XHJcblxyXG4gICAgICB0aGlzLmFyYWJpYyA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hcmFiaWMubmFtZSA9IFwiYXJhYmljXCI7XHJcbiAgICAgIHRoaXMuYXJhYmljLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hcmFiaWMubGFiZWxLZXkgPSBcIkFyYWJpY1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZmluZEZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZU1vZGVsO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uO1xyXG5cclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0Lm5hbWUgPSBcInJlcGxhY2VUZXh0XCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQubGFiZWxLZXkgPSBcIlJlcGxhY2VXaXRoXCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBpbml0aWFsaXplUGFnaW5nKCkge1xyXG4gICAgLy9QYWdpbmcgYW5kIEZpbHRlcnNcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwicmVzb3VyY2VTZXRcIlxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Ecm9wZG93bkxpc3RcclxuXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImNhc2VTZW5zZXRpdmVcIlxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImlzQ2FzZVNlbnNpdGl2ZVwiXHJcbiAgICB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcIm1hdGNoV2hvbGVXb3JkXCJcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNNYXRjaFdob2xlV29yZE9ubHlcIlxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiZW5nbGlzaFwiXHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJpc0VuZ2xpc2hcIlxyXG4gICAgdGhpcy5pc0VuZ2xpc2hGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkNoZWNrQm94XHJcblxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLmlzQXJhYmljRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiYXJhYmljXCJcclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNBcmFiaWNcIlxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLnJlaW5pdGlhbGl6ZUZ1bmN0aW9uTmFtZSA9IFwicmVpbml0aWFsaXplUmVzb3VyY2VzXCJcclxuICAgIC8vdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJmaW5kQnRuXCJdO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpVXJsICsgJ0ZpbmRSZXNvdXJjZSc7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcImZpbmRUZXh0XCIsIFwiY2FzZVNlbnNldGl2ZVwiLCBcIm1hdGNoV2hvbGVXb3JkXCIsIFwiZW5nbGlzaFwiLCBcImFyYWJpY1wiXVxyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuZHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wiUmVzb3VyY2VTZXRcIl07XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5maWx0ZXJzID0gW3RoaXMucmVzb3VyY2VTZXRGaWx0ZXIsIHRoaXMudGV4dElucHV0RmlsdGVyLCB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIsIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIsIHRoaXMuaXNFbmdsaXNoRmlsdGVyLCB0aGlzLmlzQXJhYmljRmlsdGVyXVxyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcub25TdWNjZXNzQ2FsbEJhY2tKU0Z1bmN0aW9uID0gXCJmaW5kUmVzb3VyY2VPblN1Y2Nlc3NcIjtcclxuXHJcbiAgfVxyXG4gIGZpbmRSZXNvdXJjZSgpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgLy9pZiBoYXMgdmFsdWVcclxuICAgIHZhciBpc1ZhbGlkID0gdGhpcy5maW5kRm9ybS5jb250cm9sc1tcImZpbmRUZXh0XCJdLnZhbGlkO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLnBhZ2luZ0VsZW1lbnQgYXMgYW55O1xyXG4gICAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBjb250cm9sID0gdGhpcy5maW5kRm9ybS5nZXQoXCJmaW5kVGV4dFwiKSBhcyBhbnk7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzZXRSZXNvdXJjZXNMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIGlmICghdGhpcy5pc0ZpcnN0VGltZSkge1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5zaG93RmluZFJlc3VsdCA9IHRydWU7XHJcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMClcclxuICAgICAgICB0aGlzLmVuYWJsZVJlcGxhY2VCdG4gPSB0cnVlO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5lbmFibGVSZXBsYWNlQnRuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaXNGaXJzdFRpbWUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vUmVwbGFjZSBSZXNvdXJjZSBmdW5jdGlvbnNcclxuICBnZXRSZXBsYWNlUmVzb3VyY2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5maW5kRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICAvL2NvbnNvbGUubG9nKFJlc3VsdE1vZGVsKTtcclxuICAgIGxldCByZXBsYWNlTW9kZWw6IExvY2FsaXphdGlvblJlcGxhY2VUZXh0TW9kZWwgPSBuZXcgTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCgpO1xyXG4gICAgcmVwbGFjZU1vZGVsLkZpbmRXaGF0ID0gcmVzdWx0TW9kZWwuZmluZFRleHQ7XHJcbiAgICByZXBsYWNlTW9kZWwuUmVwbGFjZVdpdGggPSByZXN1bHRNb2RlbC5yZXBsYWNlVGV4dDtcclxuICAgIHJlcGxhY2VNb2RlbC5TZWxlY3RlZFJlc291cmNlU2V0cyA9IHJlc3VsdE1vZGVsLnJlc291cmNlU2V0O1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQ2FzZVNlbnNpdGl2ZSA9IHJlc3VsdE1vZGVsLmNhc2VTZW5zZXRpdmU7XHJcbiAgICByZXBsYWNlTW9kZWwuSXNNYXRjaFdob2xlV29yZE9ubHkgPSByZXN1bHRNb2RlbC5tYXRjaFdob2xlV29yZDtcclxuICAgIHJlcGxhY2VNb2RlbC5Jc0VuZ2xpc2ggPSByZXN1bHRNb2RlbC5lbmdsaXNoO1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQXJhYmljID0gcmVzdWx0TW9kZWwuYXJhYmljO1xyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChyZXBsYWNlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uID0gKHJlcGxhY2VNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5yZXBsYWNlUmVzb3VyY2UocmVwbGFjZU1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbjxkaXYgKm5nSWY9XCJzaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZmluZEZvcm1PcHRpb25zXCIgI2Zvcm1FbGVtZW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJyZXNvdXJjZVNldFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJmaW5kVGV4dFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJjYXNlU2Vuc2V0aXZlXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIm1hdGNoV2hvbGVXb3JkXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImVuZ2xpc2hcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiYXJhYmljXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjc3VibWl0Rm9ybUJ1dHRvbiBoaWRkZW4gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3VibWl0XCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJmaW5kUmVzb3VyY2UoKVwiIGlkPVwiZmluZEJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkZpbmRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmluZFJlc3VsdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlU2V0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlSWRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW5nbGlzaFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXNvdXJjZSBvZiBsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e3Jlc291cmNlLnJlc291cmNlU2V0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UucmVzb3VyY2VJZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVFTn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVBUn19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBpZD1cInJlcGxhY2VDb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInJlcGxhY2VUZXh0XCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhZW5hYmxlUmVwbGFjZUJ0blwiIHR5cGU9XCJzdWJtaXRcIiAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0UmVzb3VyY2VzTGlzdFJlc3VsdCgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImxvY2FsaXphdGlvblBhZ2luZ1wiIFtncm91cF09XCJmaW5kRm9ybVwiICNsb2NhbGl6YXRpb25QYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
|