@bnsights/bbsf-admin-portal 1.1.64 → 1.3.1
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 +2 -0
- package/bnsights-bbsf-admin-portal-1.3.1.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/content/content.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/footer/footer.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/header/header.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/header/page-title/page-title.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/scripts-init/scripts-init.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/subheader/subheader.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/subheader/subheader.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/topbar/topbar.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +11 -6
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/change-password/change-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/verify-two-fa/verify-two-fa.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/auth-callback/auth-callback.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.module.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.routing.mjs +5 -5
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.module.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.routing.mjs +5 -5
- package/esm2022/lib/Pages/core/auth.module.mjs +5 -5
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +4 -4
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +4 -4
- package/esm2022/lib/Pages/core/authentication/auth.service.mjs +4 -4
- package/esm2022/lib/Pages/departments/department/department.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments.module.mjs +5 -5
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.module.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.routing.mjs +5 -5
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +5 -5
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +5 -5
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-centers.component.mjs +5 -5
- package/esm2022/lib/Pages/home/filter-pipe.mjs +6 -5
- package/esm2022/lib/Pages/home/home.component.mjs +5 -5
- package/esm2022/lib/Pages/home/home.module.mjs +5 -5
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +5 -5
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +5 -5
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +5 -5
- package/esm2022/lib/Pages/jobs/jobs.module.mjs +5 -5
- package/esm2022/lib/Pages/license/license/license.component.mjs +5 -5
- package/esm2022/lib/Pages/license/license.module.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +5 -5
- package/esm2022/lib/Pages/logs/log/log.component.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs.component.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs.module.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups.module.mjs +5 -5
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.routing.mjs +5 -5
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/add-organization/add-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/edit-organization/edit-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/list-organization/list-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.module.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.routing.mjs +5 -5
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers.component.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers.module.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays.component.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +5 -5
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles.module.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/Pipes/survey-date.pipe.mjs +6 -5
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ConfigurationsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ErrorService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/GlobalErrorHandler.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/HttpErrorInterceptor.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/data.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/organization.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/survey-question.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/survey.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/userService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/components/AdDirective.mjs +5 -4
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/no-results/no-results.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-layout/survey-layout.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/config.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/filter/filter.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/survey-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/survey.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/shared.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/stylesbundle.service.mjs +4 -4
- package/esm2022/lib/Pages/start/index/index.component.mjs +5 -5
- package/esm2022/lib/Pages/start/start-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/start/start.module.mjs +5 -5
- package/esm2022/lib/Pages/users/users.component.mjs +5 -5
- package/esm2022/lib/Pages/users/users.module.mjs +5 -5
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows.module.mjs +5 -5
- package/esm2022/lib/_metronic/core/services/layout-init.service.mjs +4 -4
- package/esm2022/lib/_metronic/core/services/layout.service.mjs +4 -4
- package/esm2022/lib/_metronic/core/services/page-info.service.mjs +4 -4
- package/esm2022/lib/masterlayout.component.mjs +5 -5
- package/esm2022/lib/masterlayout.module.mjs +5 -5
- package/esm2022/lib/masterlayout.routing.mjs +5 -5
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +802 -796
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +2 -0
- package/package.json +12 -12
package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs
CHANGED
|
@@ -132,12 +132,12 @@ export class DocumentMasterLayoutsComponent {
|
|
|
132
132
|
ngOnDestroy() {
|
|
133
133
|
this.requestHandlerService.destroyHandler();
|
|
134
134
|
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentMasterLayoutsComponent, deps: [{ token: i1.AuthService }, { token: i2.PageInfoService }, { token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i1.EnvironmentService }, { token: i3.DocumentHeaderAndFooterTemplateService }, { token: i4.ClipboardService }, { token: i5.NgbModal }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DocumentMasterLayoutsComponent, selector: "lib-document-master-layouts", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["DocumentHeaderAndFooterTemplatePagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <form [formGroup]=\"documentHeaderAndFooterTemplateForm\">\r\n <!--(OnChange)=\"searchClientSide($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"documentHeaderAndFooterTemplateForm\"></BBSF-TextBox>\r\n\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <a id=\"btnSetPass\" *ngIf=\"!productionMode\" class=\"btn btn-sm btn-light-primary me-3\" href=\"javascript:;\" (click)=\"showGenerateCodeModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </a>\r\n <button type=\"button\" title=\"Add\" class=\"btn btn-primary btn-sm \"\r\n [routerLink]=\"['/Admin/Documents/Add']\" routerLinkActive=\"router-link-active\">\r\n <i class=\" fa fa-plus\"></i>{{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <!-- end::Header -->\r\n <!-- begin::Body -->\r\n <div class=\"card-body py-3\">\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-150\">{{utilityService.getResourceValue(\"NameInEnglish\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"NameInArabic\")}}</th>\r\n <th class=\"min-w-50\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let template of clientSidePagingResult\">\r\n\r\n <td class=\"text-dark\">\r\n {{template.name.english}}\r\n </td>\r\n <td>{{template.name.arabic}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\"\r\n [routerLink]=\"['/Admin/Documents/Edit',template.iD_GUID]\"\r\n routerLinkActive=\"router-link-active\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\" id=\"btnResetPass\"\r\n (click)=\"showDeleteDocumentHeaderAndFooterTemplateModal(template.iD_GUID)\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"clientSidePagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--end::Permission list-->\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <BBSF-Paging (Items)=\"setDocumentHeaderAndFooterTemplateResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"documentHeaderAndFooterTemplatePaging\" [group]=\"documentHeaderAndFooterTemplateForm\"\r\n #DocumentHeaderAndFooterTemplatePagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal 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\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\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(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\"\r\n #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\"\r\n (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i10.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i10.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i10.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i5.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i5.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: i12.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i13.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
|
|
137
137
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentMasterLayoutsComponent, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
|
-
args: [{ selector: 'lib-document-master-layouts', template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <form [formGroup]=\"documentHeaderAndFooterTemplateForm\">\r\n <!--(OnChange)=\"searchClientSide($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"documentHeaderAndFooterTemplateForm\"></BBSF-TextBox>\r\n\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <a id=\"btnSetPass\" *ngIf=\"!productionMode\" class=\"btn btn-sm btn-light-primary me-3\" href=\"javascript:;\" (click)=\"showGenerateCodeModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </a>\r\n <button type=\"button\" title=\"Add\" class=\"btn btn-primary btn-sm \"\r\n [routerLink]=\"['/Admin/Documents/Add']\" routerLinkActive=\"router-link-active\">\r\n <i class=\" fa fa-plus\"></i>{{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <!-- end::Header -->\r\n <!-- begin::Body -->\r\n <div class=\"card-body py-3\">\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-150\">{{utilityService.getResourceValue(\"NameInEnglish\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"NameInArabic\")}}</th>\r\n <th class=\"min-w-50\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let template of clientSidePagingResult\">\r\n\r\n <td class=\"text-dark\">\r\n {{template.name.english}}\r\n </td>\r\n <td>{{template.name.arabic}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\"\r\n [routerLink]=\"['/Admin/Documents/Edit',template.iD_GUID]\"\r\n routerLinkActive=\"router-link-active\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\" id=\"btnResetPass\"\r\n (click)=\"showDeleteDocumentHeaderAndFooterTemplateModal(template.iD_GUID)\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"clientSidePagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--end::Permission list-->\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <BBSF-Paging (Items)=\"setDocumentHeaderAndFooterTemplateResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"documentHeaderAndFooterTemplatePaging\" [group]=\"documentHeaderAndFooterTemplateForm\"\r\n #DocumentHeaderAndFooterTemplatePagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal 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\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\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(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\"\r\n #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\"\r\n (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>\r\n" }]
|
|
140
|
+
args: [{ selector: 'lib-document-master-layouts', standalone: false, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <form [formGroup]=\"documentHeaderAndFooterTemplateForm\">\r\n <!--(OnChange)=\"searchClientSide($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"documentHeaderAndFooterTemplateForm\"></BBSF-TextBox>\r\n\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <a id=\"btnSetPass\" *ngIf=\"!productionMode\" class=\"btn btn-sm btn-light-primary me-3\" href=\"javascript:;\" (click)=\"showGenerateCodeModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </a>\r\n <button type=\"button\" title=\"Add\" class=\"btn btn-primary btn-sm \"\r\n [routerLink]=\"['/Admin/Documents/Add']\" routerLinkActive=\"router-link-active\">\r\n <i class=\" fa fa-plus\"></i>{{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <!-- end::Header -->\r\n <!-- begin::Body -->\r\n <div class=\"card-body py-3\">\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-150\">{{utilityService.getResourceValue(\"NameInEnglish\")}}</th>\r\n <th class=\"min-w-150\">{{utilityService.getResourceValue(\"NameInArabic\")}}</th>\r\n <th class=\"min-w-50\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let template of clientSidePagingResult\">\r\n\r\n <td class=\"text-dark\">\r\n {{template.name.english}}\r\n </td>\r\n <td>{{template.name.arabic}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\"\r\n [routerLink]=\"['/Admin/Documents/Edit',template.iD_GUID]\"\r\n routerLinkActive=\"router-link-active\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" ngbDropdownItem class=\"drop-item px-3\" id=\"btnResetPass\"\r\n (click)=\"showDeleteDocumentHeaderAndFooterTemplateModal(template.iD_GUID)\">\r\n <span class=\"drop-link\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"clientSidePagingResult.length == 0\">\r\n <td colspan=\"3\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--end::Permission list-->\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <BBSF-Paging (Items)=\"setDocumentHeaderAndFooterTemplateResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"documentHeaderAndFooterTemplatePaging\" [group]=\"documentHeaderAndFooterTemplateForm\"\r\n #DocumentHeaderAndFooterTemplatePagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal 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\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\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(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\"\r\n #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\"\r\n (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>\r\n" }]
|
|
141
141
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.PageInfoService }, { type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i1.EnvironmentService }, { type: i3.DocumentHeaderAndFooterTemplateService }, { type: i4.ClipboardService }, { type: i5.NgbModal }, { type: i1.RequestHandlerService }], propDecorators: { pagingElement: [{
|
|
142
142
|
type: ViewChild,
|
|
143
143
|
args: ['DocumentHeaderAndFooterTemplatePagingViewElement', { static: false }]
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
145
145
|
type: ViewChild,
|
|
146
146
|
args: ['ConfirmationModalControl', { static: false }]
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBOEIsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQW1CLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbk0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFVckYsTUFBTSxPQUFPLDhCQUE4QjtJQTJCekMsWUFBb0IsV0FBd0IsRUFBVSxlQUFnQyxFQUM3RSxjQUE4QixFQUFVLG9CQUEwQyxFQUNqRixrQkFBc0MsRUFBVSxzQ0FBOEUsRUFDOUgsaUJBQW1DLEVBQVUsWUFBc0IsRUFDbkUscUJBQTRDO1FBSmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzdFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDakYsdUJB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QyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzsrR0E1SVUsOEJBQThCO21HQUE5Qiw4QkFBOEIsNlVDZDNDLHN6TEFzSEE7OzRGRHhHYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCOzhWQWdCMkMsYUFBYTtzQkFBOUYsU0FBUzt1QkFBQyxrREFBa0QsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3RCLHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsIENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucywgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgSW5wdXRUeXBlLCBQYWdpbmdDb21wb25lbnQsIFBhZ2luZ09wdGlvbnMsIFRleHRBcmVhT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICduZ3gtY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1kb2N1bWVudC1tYXN0ZXItbGF5b3V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LW1hc3Rlci1sYXlvdXRzLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRNYXN0ZXJMYXlvdXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXBpVXJsID0gXCIvYXBpL2FkbWluL0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUvXCI7XHJcbiAgcHJvZHVjdGlvbk1vZGU6IGJvb2xlYW47XHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBjb21wb25lbnRzXHJcbiAgZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICB0ZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSWQ6IHN0cmluZztcclxuICBEZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBHZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgR2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICBWYWx1ZVRvQ29weTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIGJic2ZUcmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsIHByaXZhdGUgZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2U6IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1hc3RlckxheW91dHNcIik7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vaW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW5pdFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3gubmFtZSA9IFwic2VhcmNoVGV4dEJveFwiO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5wbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlYXJjaEJ5TmFtZVwiKTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5oaWRlTGFiZWwgPSB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5mb3JtQ29udHJvbE5hbWUgPSBcInNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIjtcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmlzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuZmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nLmFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVVybCArICdHZXREb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlQnlGaWx0ZXInO1xyXG4gICAgdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nLm9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXTtcclxuICAgIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZy5maWx0ZXJzID0gW3RoaXMudGV4dElucHV0RmlsdGVyXTtcclxuICAgIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZy52YWxpZGF0aW9uVG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpO1xyXG4gICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuICBzZXREb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5jbGllbnRTaWRlUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuICBzZWFyY2hDbGllbnRTaWRlKHNlYXJjaFZhbHVlKSB7XHJcbiAgICBpZiAoc2VhcmNoVmFsdWUpXHJcbiAgICAgIHRoaXMuY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdCA9IHRoaXMuY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdC5maWx0ZXIoXHJcbiAgICAgICAgZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgICAgIHJldHVybiAoaXRlbS5uYW1lLmVuZ2xpc2gudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgICAgICB8fCBpdGVtLm5hbWUuYXJhYmljLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmNsaWVudFNpZGVQYWdpbmdSZXN1bHQgPSB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmdSZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvL0RlbGV0ZSBEb2N1bWVudCBIZWFkZSBhbmQgRm9vdGVyXHJcbiAgc2hvd0RlbGV0ZURvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVNb2RhbChEb2N1bWVudEhlYWRlcmFuZEZvb3RlcklkRW5jOiBhbnkpIHtcclxuICAgIHRoaXMuZGVsZXRlRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlkID0gRG9jdW1lbnRIZWFkZXJhbmRGb290ZXJJZEVuYztcclxuXHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSWQpO1xyXG5cclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZURvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGU7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuc2VydmljZVN1Ym1pdE1vZGVsID0gcGFyYW1BcnJheTtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UuZGVsZXRlSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUoaWQpO1xyXG4gIH07XHJcblxyXG4gIC8vR2VuZXJhdGUgRG9jdW1lbnQgSGVhZGUgYW5kIEZvb3RlciBDb2RlXHJcbiAgc2hvd0dlbmVyYXRlQ29kZU1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLmdlbmVyYXRlQ29kZSgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEubmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS52YWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLlZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5yb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuY29scyA9IDIwO1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLm1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb3B5SW5wdXRNZXNzYWdlKCkge1xyXG4gICAgdGhpcy5fY2xpcGJvYXJkU2VydmljZS5jb3B5KHRoaXMuVmFsdWVUb0NvcHkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG48ZGl2ICpuZ0lmPVwic2hvd1BhZ2VDb250ZW50XCIgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVGb3JtXCI+XHJcbiAgICAgICAgICA8IS0tKE9uQ2hhbmdlKT1cInNlYXJjaENsaWVudFNpZGUoJGV2ZW50KVwiIC0tPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCAgW29wdGlvbnNdPVwic2VhcmNoVGV4dEJveFwiIFtncm91cF09XCJkb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICA8YSBpZD1cImJ0blNldFBhc3NcIiAqbmdJZj1cIiFwcm9kdWN0aW9uTW9kZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJzaG93R2VuZXJhdGVDb2RlTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleVwiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkFkZFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBcIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vRG9jdW1lbnRzL0FkZCddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCIgZmEgZmEtcGx1c1wiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gZW5kOjpIZWFkZXIgLS0+XHJcbiAgICA8IS0tIGJlZ2luOjpCb2R5IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lSW5FbmdsaXNoXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVJbkFyYWJpY1wiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB0ZW1wbGF0ZSBvZiBjbGllbnRTaWRlUGFnaW5nUmVzdWx0XCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAge3t0ZW1wbGF0ZS5uYW1lLmVuZ2xpc2h9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7dGVtcGxhdGUubmFtZS5hcmFiaWN9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vRG9jdW1lbnRzL0VkaXQnLHRlbXBsYXRlLmlEX0dVSURdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgaWQ9XCJidG5SZXNldFBhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlTW9kYWwodGVtcGxhdGUuaURfR1VJRClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJjbGllbnRTaWRlUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XHJcbiAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0RG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJkb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nXCIgW2dyb3VwXT1cImRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICNEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tZGVsZXRlIE1vZGFsLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwiZGVsZXRlQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cIkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cIkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiICNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG5cclxuPCEtLSBHZW5lcmF0ZUNvZGUgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjR2VuZXJhdGVDb2RlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJHZW5lcmF0ZUNvZGVGb3JtXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiUm93XCI+XHJcbiAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIiBbZ3JvdXBdPVwiR2VuZXJhdGVDb2RlRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgIDwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNvcHlJbnB1dE1lc3NhZ2UoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ29weVRvQ2xpcGJvYXJkXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMvZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBOEIsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQW1CLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbk0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFXckYsTUFBTSxPQUFPLDhCQUE4QjtJQTJCekMsWUFBb0IsV0FBd0IsRUFBVSxlQUFnQyxFQUM3RSxjQUE4QixFQUFVLG9CQUEwQyxFQUNqRixrQkFBc0MsRUFBVSxzQ0FBOEUsRUFDOUgsaUJBQW1DLEVBQVUsWUFBc0IsRUFDbkUscUJBQTRDO1FBSmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzdFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDakYsdUJB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J0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIElucHV0VHlwZSwgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1kb2N1bWVudC1tYXN0ZXItbGF5b3V0cycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtbWFzdGVyLWxheW91dHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50TWFzdGVyTGF5b3V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIHNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFwaVVybCA9IFwiL2FwaS9hZG1pbi9Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlL1wiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2VhcmNoVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBkb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nOiBQYWdpbmdPcHRpb25zO1xyXG4gIGlzRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlkOiBzdHJpbmc7XHJcbiAgRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgLy9HZW5lcmF0ZUNvZGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgR2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEdlbmVyYXRlQ29kZVRleHRBcmVhOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgVmFsdWVUb0NvcHk6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLCBwcml2YXRlIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlOiBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXN0ZXJMYXlvdXRzXCIpO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL2luaXRpYWxpemUgZmlsdGVycyBhbmQgcGFnaW5nXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICAvLyBUZXh0Qm94IGluaXRcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94Lm5hbWUgPSBcInNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3gucGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIik7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guaGlkZUxhYmVsID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuZm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCI7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5hY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCI7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5pc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZy5hY3Rpb25Qb3N0VVJMID0gdGhpcy5hcGlVcmwgKyAnR2V0RG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUJ5RmlsdGVyJztcclxuICAgIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIl07XHJcbiAgICB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmcuZmlsdGVycyA9IFt0aGlzLnRleHRJbnB1dEZpbHRlcl07XHJcbiAgICB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVQYWdpbmcudmFsaWRhdGlvblRva2VuID0gdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTtcclxuICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0RG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcbiAgc2VhcmNoQ2xpZW50U2lkZShzZWFyY2hWYWx1ZSkge1xyXG4gICAgaWYgKHNlYXJjaFZhbHVlKVxyXG4gICAgICB0aGlzLmNsaWVudFNpZGVQYWdpbmdSZXN1bHQgPSB0aGlzLmNsaWVudFNpZGVQYWdpbmdSZXN1bHQuZmlsdGVyKFxyXG4gICAgICAgIGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgICAgICByZXR1cm4gKGl0ZW0ubmFtZS5lbmdsaXNoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgfHwgaXRlbS5uYW1lLmFyYWJpYy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgICB9KTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5jbGllbnRTaWRlUGFnaW5nUmVzdWx0ID0gdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlUGFnaW5nUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy9EZWxldGUgRG9jdW1lbnQgSGVhZGUgYW5kIEZvb3RlclxyXG4gIHNob3dEZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlTW9kYWwoRG9jdW1lbnRIZWFkZXJhbmRGb290ZXJJZEVuYzogYW55KSB7XHJcbiAgICB0aGlzLmRlbGV0ZURvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVJZCA9IERvY3VtZW50SGVhZGVyYW5kRm9vdGVySWRFbmM7XHJcblxyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlkKTtcclxuXHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlO1xyXG4gICAgdGhpcy5EZWxldGVDb25maXJtYXRpb25PcHRpb25zLnNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMucGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLmRlbGV0ZUhlYWRlckFuZEZvb3RlclRlbXBsYXRlKGlkKTtcclxuICB9O1xyXG5cclxuICAvL0dlbmVyYXRlIERvY3VtZW50IEhlYWRlIGFuZCBGb290ZXIgQ29kZVxyXG4gIHNob3dHZW5lcmF0ZUNvZGVNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG4gICAgdGhpcy5kb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5nZW5lcmF0ZUNvZGUoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLm5hbWUgPSBcIkdlbmVyYXRlQ29kZVRleHRBcmVhXCI7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEudmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5WYWx1ZVRvQ29weSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLmhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEucm93cyA9IDIwO1xyXG4gICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLmNvbHMgPSAyMDtcclxuICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5tYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEdlbmVyYXRlQ29kZU1vZGFsKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29weUlucHV0TWVzc2FnZSgpIHtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLlZhbHVlVG9Db3B5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuPGRpdiAqbmdJZj1cInNob3dQYWdlQ29udGVudFwiIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPCEtLShPbkNoYW5nZSk9XCJzZWFyY2hDbGllbnRTaWRlKCRldmVudClcIiAtLT5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggIFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiBbZ3JvdXBdPVwiZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuXHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDwhLS0gYmVnaW46Ok1lbnUgLS0+XHJcbiAgICAgICAgPGEgaWQ9XCJidG5TZXRQYXNzXCIgKm5nSWY9XCIhcHJvZHVjdGlvbk1vZGVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlQ29kZU1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1rZXlcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJBZGRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gXCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9BZGQnXVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiIGZhIGZhLXBsdXNcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIGVuZDo6SGVhZGVyIC0tPlxyXG4gICAgPCEtLSBiZWdpbjo6Qm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZUluRW5nbGlzaFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lSW5BcmFiaWNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgIHt7dGVtcGxhdGUubmFtZS5lbmdsaXNofX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD57e3RlbXBsYXRlLm5hbWUuYXJhYmljfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0RvY3VtZW50cy9FZGl0Jyx0ZW1wbGF0ZS5pRF9HVUlEXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGlua1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIGlkPVwiYnRuUmVzZXRQYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZU1vZGFsKHRlbXBsYXRlLmlEX0dVSUQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGlua1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPHRyICpuZ0lmPVwiY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8IS0tZW5kOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZ1wiIFtncm91cF09XCJkb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAjRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJEZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIiAjQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcbjwhLS0gR2VuZXJhdGVDb2RlIE1vZGFsIC0tPlxyXG48bmctdGVtcGxhdGUgI0dlbmVyYXRlQ29kZU1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiR2VuZXJhdGVDb2RlRm9ybVwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIlJvd1wiPlxyXG4gICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cIkdlbmVyYXRlQ29kZVRleHRBcmVhXCIgW2dyb3VwXT1cIkdlbmVyYXRlQ29kZUZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICNHZW5lcmF0ZUNvZGVJbnB1dD5cclxuICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZUdlbmVyYXRlQ29kZU1vZGFsIGlkPVwiQ2xvc2VHZW5lcmF0ZUNvZGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNvcHlUb0NsaXBib2FyZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|