@bnsights/bbsf-admin-portal 1.1.63 → 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 +3 -1
- 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
|
@@ -250,12 +250,12 @@ export class PermissionsComponent {
|
|
|
250
250
|
ngOnDestroy() {
|
|
251
251
|
this.requestHandlerService.destroyHandler();
|
|
252
252
|
}
|
|
253
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PermissionsComponent, selector: "lib-permissions", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["PermissionPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<!-- #region page content -->\r\n<div 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 <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"permissionsForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div\r\n *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\"\r\n ngbDropdown\r\n class=\"d-inline-block\"\r\n [ngStyle]=\"{ display: showPageContent == true ? 'block' : 'none' }\">\r\n <button ngbDropdownToggle type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{ utilityService.getResourceValue('Filter') }}\r\n </button>\r\n <div\r\n *ngIf=\"isFilterLoaded\"\r\n ngbDropdownMenu\r\n aria-labelledby=\"FiltersDropdown\"\r\n class=\"filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 dropdown-menu dropdown-menu-right\">\r\n <form [formGroup]=\"permissionsForm\">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">\r\n <div>\r\n <BBSF-DropdownList #organizationDDL [options]=\"organizationOptions\" [group]=\"permissionsForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" name=\"permissionResetButton\">\r\n {{ utilityService.getResourceValue('Reset') }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n @if (isSuperAdmin) {\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddPermissionModal(AddPermissionModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{ utilityService.getResourceValue('Add') }}\r\n </button>\r\n }\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!-- #region permission list -->\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('Name') }}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{ utilityService.getResourceValue('SysName') }}</th>\r\n <th class=\"min-w-150\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ utilityService.getResourceValue('Organization') }}</th>\r\n <th class=\"min-w-50px\">{{ 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 permission of filteredPermissionsPagingResult\">\r\n <td>\r\n {{ permission.permissionName }}\r\n </td>\r\n <td *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ permission.currentOrganizationName ?? '-' }}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{ permission.sysName }}</td>\r\n <td>\r\n <div *ngIf=\"isSuperAdmin\">\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 class=\"mat-menu-content\" #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem (click)=\"showEditPermissionModal(permission.iD_GUID, EditPermissionModal)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Edit') }}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\" (click)=\"showDeletePermissionModal(permission.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Delete') }}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredPermissionsPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '3' : '4'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- #endregion -->\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging\r\n (Items)=\"setPermissionsListResult($event)\"\r\n *ngIf=\"isFilterLoaded\"\r\n [options]=\"permissionsPaging\"\r\n [group]=\"permissionsForm\"\r\n #PermissionPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region add modal -->\r\n<ng-template #AddPermissionModal 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('AddPermissions') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"addPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #ClosePermissionModal\r\n id=\"ClosePermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Edit Modal -->\r\n<ng-template #EditPermissionModal 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('EditPermission') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div class=\"col-md-12\" *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"editSysName\" [group]=\"editPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"editOrganization\" [group]=\"editPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #CloseEditPermissionModal\r\n id=\"CloseEditPermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl>\r\n</BBSF-ConfirmationModal>\r\n<!-- #endregion -->\r\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i8.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i8.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i8.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i8.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i8.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i8.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i9.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: i9.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: i10.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i11.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
|
|
253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PermissionsComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.NgbModal }, { token: i4.PermissionsService }, { token: i2.RequestHandlerService }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: PermissionsComponent, selector: "lib-permissions", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["PermissionPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<!-- #region page content -->\r\n<div 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 <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"permissionsForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div\r\n *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\"\r\n ngbDropdown\r\n class=\"d-inline-block\"\r\n [ngStyle]=\"{ display: showPageContent == true ? 'block' : 'none' }\">\r\n <button ngbDropdownToggle type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{ utilityService.getResourceValue('Filter') }}\r\n </button>\r\n <div\r\n *ngIf=\"isFilterLoaded\"\r\n ngbDropdownMenu\r\n aria-labelledby=\"FiltersDropdown\"\r\n class=\"filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 dropdown-menu dropdown-menu-right\">\r\n <form [formGroup]=\"permissionsForm\">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">\r\n <div>\r\n <BBSF-DropdownList #organizationDDL [options]=\"organizationOptions\" [group]=\"permissionsForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" name=\"permissionResetButton\">\r\n {{ utilityService.getResourceValue('Reset') }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n @if (isSuperAdmin) {\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddPermissionModal(AddPermissionModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{ utilityService.getResourceValue('Add') }}\r\n </button>\r\n }\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!-- #region permission list -->\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('Name') }}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{ utilityService.getResourceValue('SysName') }}</th>\r\n <th class=\"min-w-150\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ utilityService.getResourceValue('Organization') }}</th>\r\n <th class=\"min-w-50px\">{{ 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 permission of filteredPermissionsPagingResult\">\r\n <td>\r\n {{ permission.permissionName }}\r\n </td>\r\n <td *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ permission.currentOrganizationName ?? '-' }}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{ permission.sysName }}</td>\r\n <td>\r\n <div *ngIf=\"isSuperAdmin\">\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 class=\"mat-menu-content\" #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem (click)=\"showEditPermissionModal(permission.iD_GUID, EditPermissionModal)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Edit') }}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\" (click)=\"showDeletePermissionModal(permission.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Delete') }}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredPermissionsPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '3' : '4'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- #endregion -->\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging\r\n (Items)=\"setPermissionsListResult($event)\"\r\n *ngIf=\"isFilterLoaded\"\r\n [options]=\"permissionsPaging\"\r\n [group]=\"permissionsForm\"\r\n #PermissionPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region add modal -->\r\n<ng-template #AddPermissionModal 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('AddPermissions') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"addPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #ClosePermissionModal\r\n id=\"ClosePermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Edit Modal -->\r\n<ng-template #EditPermissionModal 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('EditPermission') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div class=\"col-md-12\" *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"editSysName\" [group]=\"editPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"editOrganization\" [group]=\"editPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #CloseEditPermissionModal\r\n id=\"CloseEditPermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl>\r\n</BBSF-ConfirmationModal>\r\n<!-- #endregion -->\r\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i8.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i8.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i8.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i8.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i8.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i8.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i9.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: i9.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: i10.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i11.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
|
|
255
255
|
}
|
|
256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PermissionsComponent, decorators: [{
|
|
257
257
|
type: Component,
|
|
258
|
-
args: [{ selector: 'lib-permissions', template: "<block-ui></block-ui>\r\n\r\n<!-- #region page content -->\r\n<div 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 <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"permissionsForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div\r\n *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\"\r\n ngbDropdown\r\n class=\"d-inline-block\"\r\n [ngStyle]=\"{ display: showPageContent == true ? 'block' : 'none' }\">\r\n <button ngbDropdownToggle type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{ utilityService.getResourceValue('Filter') }}\r\n </button>\r\n <div\r\n *ngIf=\"isFilterLoaded\"\r\n ngbDropdownMenu\r\n aria-labelledby=\"FiltersDropdown\"\r\n class=\"filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 dropdown-menu dropdown-menu-right\">\r\n <form [formGroup]=\"permissionsForm\">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">\r\n <div>\r\n <BBSF-DropdownList #organizationDDL [options]=\"organizationOptions\" [group]=\"permissionsForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" name=\"permissionResetButton\">\r\n {{ utilityService.getResourceValue('Reset') }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n @if (isSuperAdmin) {\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddPermissionModal(AddPermissionModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{ utilityService.getResourceValue('Add') }}\r\n </button>\r\n }\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!-- #region permission list -->\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('Name') }}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{ utilityService.getResourceValue('SysName') }}</th>\r\n <th class=\"min-w-150\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ utilityService.getResourceValue('Organization') }}</th>\r\n <th class=\"min-w-50px\">{{ 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 permission of filteredPermissionsPagingResult\">\r\n <td>\r\n {{ permission.permissionName }}\r\n </td>\r\n <td *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ permission.currentOrganizationName ?? '-' }}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{ permission.sysName }}</td>\r\n <td>\r\n <div *ngIf=\"isSuperAdmin\">\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 class=\"mat-menu-content\" #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem (click)=\"showEditPermissionModal(permission.iD_GUID, EditPermissionModal)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Edit') }}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\" (click)=\"showDeletePermissionModal(permission.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Delete') }}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredPermissionsPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '3' : '4'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- #endregion -->\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging\r\n (Items)=\"setPermissionsListResult($event)\"\r\n *ngIf=\"isFilterLoaded\"\r\n [options]=\"permissionsPaging\"\r\n [group]=\"permissionsForm\"\r\n #PermissionPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region add modal -->\r\n<ng-template #AddPermissionModal 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('AddPermissions') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"addPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #ClosePermissionModal\r\n id=\"ClosePermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Edit Modal -->\r\n<ng-template #EditPermissionModal 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('EditPermission') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div class=\"col-md-12\" *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"editSysName\" [group]=\"editPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"editOrganization\" [group]=\"editPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #CloseEditPermissionModal\r\n id=\"CloseEditPermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl>\r\n</BBSF-ConfirmationModal>\r\n<!-- #endregion -->\r\n" }]
|
|
258
|
+
args: [{ selector: 'lib-permissions', standalone: false, template: "<block-ui></block-ui>\r\n\r\n<!-- #region page content -->\r\n<div 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 <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"permissionsForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div\r\n *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\"\r\n ngbDropdown\r\n class=\"d-inline-block\"\r\n [ngStyle]=\"{ display: showPageContent == true ? 'block' : 'none' }\">\r\n <button ngbDropdownToggle type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{ utilityService.getResourceValue('Filter') }}\r\n </button>\r\n <div\r\n *ngIf=\"isFilterLoaded\"\r\n ngbDropdownMenu\r\n aria-labelledby=\"FiltersDropdown\"\r\n class=\"filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 dropdown-menu dropdown-menu-right\">\r\n <form [formGroup]=\"permissionsForm\">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">\r\n <div>\r\n <BBSF-DropdownList #organizationDDL [options]=\"organizationOptions\" [group]=\"permissionsForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" name=\"permissionResetButton\">\r\n {{ utilityService.getResourceValue('Reset') }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n @if (isSuperAdmin) {\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddPermissionModal(AddPermissionModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{ utilityService.getResourceValue('Add') }}\r\n </button>\r\n }\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!-- #region permission list -->\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('Name') }}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{ utilityService.getResourceValue('SysName') }}</th>\r\n <th class=\"min-w-150\" *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ utilityService.getResourceValue('Organization') }}</th>\r\n <th class=\"min-w-50px\">{{ 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 permission of filteredPermissionsPagingResult\">\r\n <td>\r\n {{ permission.permissionName }}\r\n </td>\r\n <td *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\">{{ permission.currentOrganizationName ?? '-' }}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{ permission.sysName }}</td>\r\n <td>\r\n <div *ngIf=\"isSuperAdmin\">\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 class=\"mat-menu-content\" #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem (click)=\"showEditPermissionModal(permission.iD_GUID, EditPermissionModal)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Edit') }}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\" (click)=\"showDeletePermissionModal(permission.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{ utilityService.getResourceValue('Delete') }}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredPermissionsPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '3' : '4'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- #endregion -->\r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging\r\n (Items)=\"setPermissionsListResult($event)\"\r\n *ngIf=\"isFilterLoaded\"\r\n [options]=\"permissionsPaging\"\r\n [group]=\"permissionsForm\"\r\n #PermissionPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n<!-- #endregion -->\r\n\r\n<!-- #region add modal -->\r\n<ng-template #AddPermissionModal 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('AddPermissions') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"addPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #ClosePermissionModal\r\n id=\"ClosePermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region Edit Modal -->\r\n<ng-template #EditPermissionModal 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('EditPermission') }}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editPermissionFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editPermissionForm\"></BBSF-MultiLingualTextBox>\r\n <div class=\"col-md-12\" *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"editSysName\" [group]=\"editPermissionForm\"> </BBSF-TextBox>\r\n </div>\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"editOrganization\" [group]=\"editPermissionForm\"></BBSF-DropdownList>\r\n <div class=\"text-center pt-7\">\r\n <button\r\n type=\"button\"\r\n #CloseEditPermissionModal\r\n id=\"CloseEditPermissionModal\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n 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=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!-- #endregion -->\r\n\r\n<!-- #region delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl>\r\n</BBSF-ConfirmationModal>\r\n<!-- #endregion -->\r\n" }]
|
|
259
259
|
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.EnvironmentService }, { type: i3.NgbModal }, { type: i4.PermissionsService }, { type: i2.RequestHandlerService }, { type: i2.AuthService }], propDecorators: { pagingElement: [{
|
|
260
260
|
type: ViewChild,
|
|
261
261
|
args: ['PermissionPagingViewElement', { static: false }]
|
|
@@ -263,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
263
263
|
type: ViewChild,
|
|
264
264
|
args: ['ConfirmationModalControl', { static: false }]
|
|
265
265
|
}] } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9yb2xlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3JvbGVzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQThCLHdCQUF3QixFQUF5QixlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFtQixhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JTLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBSzdHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNekMsTUFBTSxPQUFPLG9CQUFvQjtJQWlEL0IsWUFDVSxlQUFnQyxFQUNqQyxjQUE4QixFQUM3QixrQkFBc0MsRUFDdEMsWUFBc0IsRUFDdEIsa0JBQXNDLEVBQ3RDLHFCQUE0QyxFQUM1QyxXQUF3QjtRQU54QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FB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IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIERyb3Bkb3duT3B0aW9ucywgRW5nbGlzaEFyYWJpY0RUTywgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgRm9ybU9wdGlvbnMsIElucHV0VHlwZSwgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgUGVybWlzc2lvblNldHMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25MaXN0TW9kZWwsIFBlcm1pc3Npb25Nb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvUGVybWlzc2lvbnNNb2RlbHMvUGVybWlzc2lvbk1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zaGFyZWQvU2VydmljZXMvUGVybWlzc2lvbnNTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBlcm1pc3Npb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLkFwaVVybDtcclxuICBQcm9kdWN0aW9uTW9kZTogYm9vbGVhbjtcclxuICBjdXJyZW50VXNlclByb2ZpbGU6IGFueTtcclxuICBwZXJtaXNzaW9uU2V0cyA9IFBlcm1pc3Npb25TZXRzO1xyXG4gIGlzTXVsdGlUZW5hbmN5QWxsb3dlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU3VwZXJBZG1pbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBvcmdhbml6YXRpb25MaXN0ID0gW107XHJcbiAgZmlsdGVyRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHBlcm1pc3Npb25zRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdDogUGVybWlzc2lvbkxpc3RNb2RlbFtdID0gW107XHJcbiAgZmlsdGVyZWRQZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdDogUGVybWlzc2lvbkxpc3RNb2RlbFtdID0gW107XHJcbiAgcGVybWlzc2lvbnNQYWdpbmc6IFBhZ2luZ09wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gIHRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBvcmdhbml6YXRpb25PcHRpb25zOiBEcm9wZG93bk9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgb3JnYW5pemF0aW9uc0ZpbHRlcjogRmlsdGVySXRlbSA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdQZXJtaXNzaW9uUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkUGVybWlzc2lvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBhZGRQZXJtaXNzaW9uRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zO1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIG9yZ2FuaXphdGlvbjogRHJvcGRvd25PcHRpb25zO1xyXG4gIGlzQWRkUGVybWlzc2lvbkZvcm1Mb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgZWRpdFBlcm1pc3Npb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0T3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgaXNFZGl0UGVybWlzc2lvbk1vZGVsTG9hZGVkOiBib29sZWFuO1xyXG4gIGVkaXRQZXJtaXNzaW9uSWQ6IHN0cmluZztcclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlZFBlcm1pc3Npb25JZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG5cclxuICAgIC8vUGFnZSBoZWFkZXIgKGJyZWFkY3J1bWIgYW5kIHRpdGxlKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBlcm1pc3Npb25zXCIpO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuICAgIHRoaXMuaXNNdWx0aVRlbmFuY3lBbGxvd2VkID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QWxsb3dNdWx0aVRlbmFuY3koKTtcclxuICAgIHRoaXMuY3VycmVudFVzZXJQcm9maWxlID0gdGhpcy5hdXRoU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnByb2ZpbGU7XHJcbiAgICB0aGlzLmlzU3VwZXJBZG1pbiA9IHRoaXMuY3VycmVudFVzZXJQcm9maWxlLnBlcm1pc3Npb25TZXRTSUQgPT0gdGhpcy5wZXJtaXNzaW9uU2V0cy5BZG1pbjtcclxuXHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldFBlcm1pc3Npb25zTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmdSZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbHRlcmVkUGVybWlzc2lvbnNQYWdpbmdSZXN1bHQgPSB0aGlzLnBlcm1pc3Npb25zUGFnaW5nUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy9pbml0aWFsaXplIHBhZ2VcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmxvYWREcm9wZG93bigpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCBkcm9wZG93blJlc3BvbnNlTW9kZWwgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbkxpc3QgPSBkcm9wZG93blJlc3BvbnNlTW9kZWw7XHJcbiAgICAgIC8vI3JlZ2lvbiBpbnB1dCBmaWVsZCBvcHRpb25zXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3gubmFtZSA9IFwic2VhcmNoVGV4dEJveFwiO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LnBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpO1xyXG5cclxuICAgICAgbGV0IGZpbHRlck9yZ2FuaXphdGlvbkxpc3QgPSBbe1xyXG4gICAgICAgIGtleTogQ29uc3RhbnRzLk5vdEFzc2lnbmVkVG9Pcmdhbml6YXRpb24sXHJcbiAgICAgICAgdmFsdWU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5vdEFzc2lnbmVkXCIpLFxyXG4gICAgICB9XS5jb25jYXQodGhpcy5vcmdhbml6YXRpb25MaXN0KTtcclxuXHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25PcHRpb25zLm5hbWUgPSBcIm9yZ2FuaXphdGlvblwiO1xyXG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbk9wdGlvbnMubGFiZWxLZXkgPSBcIk9yZ2FuaXphdGlvbnNcIjtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25PcHRpb25zLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uT3B0aW9ucy5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uT3B0aW9ucy5kYXRhU291cmNlID0gZmlsdGVyT3JnYW5pemF0aW9uTGlzdDtcclxuICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmZvcm1Db250cm9sTmFtZSA9IHRoaXMuc2VhcmNoVGV4dEJveC5uYW1lO1xyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5hY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCI7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmlzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5maWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLmlzTXVsdGlUZW5hbmN5QWxsb3dlZCAmJiB0aGlzLmlzU3VwZXJBZG1pbikge1xyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZmlsdGVycyA9IHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZmlsdGVycyA/PyBbXTtcclxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLmRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzID8/IFtdO1xyXG5cclxuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnNGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uc0ZpbHRlci5mb3JtQ29udHJvbE5hbWUgPSB0aGlzLm9yZ2FuaXphdGlvbk9wdGlvbnMubmFtZTtcclxuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnNGaWx0ZXIuYWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwib3JnYW5pemF0aW9uSWRcIjtcclxuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnNGaWx0ZXIuaXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zRmlsdGVyLmZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdDtcclxuXHJcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5maWx0ZXJzLnB1c2godGhpcy5vcmdhbml6YXRpb25zRmlsdGVyKTtcclxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLmRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5wdXNoKHRoaXMub3JnYW5pemF0aW9uc0ZpbHRlci5mb3JtQ29udHJvbE5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLmFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRQZXJtaXNzaW9uc0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFt0aGlzLnNlYXJjaFRleHRCb3gubmFtZV07XHJcbiAgICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZmlsdGVycyA9IFtcclxuICAgICAgICAuLi50aGlzLnBlcm1pc3Npb25zUGFnaW5nLmZpbHRlcnMsXHJcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXJcclxuICAgICAgXTtcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5yZXNldEZpbHRlckJ1dHRvbk5hbWU9J3Blcm1pc3Npb25SZXNldEJ1dHRvbic7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIGFkZCBtb2RhbFxyXG4gIHNob3dBZGRQZXJtaXNzaW9uTW9kYWwoYWRkUGVybWlzc2lvbk1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkUGVybWlzc2lvbkZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtO1xyXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkUGVybWlzc2lvbk1vZGVsO1xyXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRQZXJtaXNzaW9uRnVuY3Rpb247XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUubmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLmFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5tYXhMZW5ndGggPSAxMDA7XHJcblxyXG5cclxuICAgIHRoaXMuc3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5zeXNOYW1lLm5hbWUgPSBcIlN5c05hbWVcIjtcclxuICAgIHRoaXMuc3lzTmFtZS5sYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgdGhpcy5zeXNOYW1lLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc3lzTmFtZS52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLnN5c05hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgIHRoaXMub3JnYW5pemF0aW9uID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24ubmFtZSA9IFwiT3JnYW5pemF0aW9uSURfR1VJRFwiO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24ubGFiZWxLZXkgPSBcIk9yZ2FuaXphdGlvblwiO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24uc2VsZWN0ZWRJdGVtcyA9IG51bGw7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbi5kYXRhU291cmNlID0gdGhpcy5vcmdhbml6YXRpb25MaXN0O1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24uc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uLmlzUmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGFkZFBlcm1pc3Npb25Nb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkUGVybWlzc2lvbk1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRQZXJtaXNzaW9uTW9kZWw6IFBlcm1pc3Npb25Nb2RlbCA9IG5ldyBQZXJtaXNzaW9uTW9kZWwoKTtcclxuICAgIGlmICh0aGlzLlByb2R1Y3Rpb25Nb2RlID09IGZhbHNlKVxyXG4gICAgICBBZGRQZXJtaXNzaW9uTW9kZWwuc3lzTmFtZSA9IFJlc3VsdE1vZGVsLlN5c05hbWU7XHJcbiAgICBBZGRQZXJtaXNzaW9uTW9kZWwubmFtZSA9IFJlc3VsdE1vZGVsLk5hbWU7XHJcbiAgICBBZGRQZXJtaXNzaW9uTW9kZWwub3JnYW5pemF0aW9uSURfR1VJRCA9IFJlc3VsdE1vZGVsW3RoaXMub3JnYW5pemF0aW9uLm5hbWVdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZFBlcm1pc3Npb25Nb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRBZGRQZXJtaXNzaW9uRnVuY3Rpb24gPSAoQWRkUGVybWlzc2lvbk1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5hZGRQZXJtaXNzaW9uKEFkZFBlcm1pc3Npb25Nb2RlbCk7XHJcbiAgfTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG5cclxuICAvLyNyZWdpb24gZWRpdCBtb2RhbFxyXG4gIHNob3dFZGl0UGVybWlzc2lvbk1vZGFsKHBlcm1pc3Npb25JRDogc3RyaW5nLCBlZGl0UGVybWlzc2lvbk1vZGFsKSB7XHJcblxyXG4gICAgdGhpcy5lZGl0UGVybWlzc2lvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmVkaXRQZXJtaXNzaW9uRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLmVkaXRQZXJtaXNzaW9uRm9ybTtcclxuICAgIHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0UGVybWlzc2lvbk1vZGVsO1xyXG4gICAgdGhpcy5lZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdFBlcm1pc3Npb25GdW5jdGlvbjtcclxuICAgIHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG5cclxuICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmdldFBlcm1pc3Npb24ocGVybWlzc2lvbklEKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBQZXJtaXNzaW9uID0gcmVzdWx0Lm1vZGVsIGFzIGFueTtcclxuICAgICAgbGV0IE5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICBOYW1lLmFyYWJpYyA9IFBlcm1pc3Npb24ubmFtZS5hcmFiaWM7XHJcbiAgICAgIE5hbWUuZW5nbGlzaCA9IFBlcm1pc3Npb24ubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLm5hbWUgPSBcIk5hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5hcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuZW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUudmFsdWUgPSBOYW1lO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uSWQgPSBQZXJtaXNzaW9uLmlEX0dVSUQ7XHJcblxyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubmFtZSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLmxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLnZhbHVlID0gUGVybWlzc2lvbi5zeXNOYW1lO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE9yZ2FuaXphdGlvbiA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLm5hbWUgPSBcIk9yZ2FuaXphdGlvbklEX0dVSURcIjtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLmxhYmVsS2V5ID0gXCJPcmdhbml6YXRpb25cIjtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLnNlbGVjdGVkSXRlbXMgPSBQZXJtaXNzaW9uLm9yZ2FuaXphdGlvbklEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZWRpdE9yZ2FuaXphdGlvbi5kYXRhU291cmNlID0gdGhpcy5vcmdhbml6YXRpb25MaXN0O1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24uc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLmlzUmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdFBlcm1pc3Npb25Nb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFZGl0UGVybWlzc2lvbk1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRQZXJtaXNzaW9uRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgRWRpdFBlcm1pc3Npb25Nb2RlbCA9IG5ldyBQZXJtaXNzaW9uTW9kZWwoKTtcclxuICAgIEVkaXRQZXJtaXNzaW9uTW9kZWwuaURfR1VJRCA9IHRoaXMuZWRpdFBlcm1pc3Npb25JZDtcclxuICAgIEVkaXRQZXJtaXNzaW9uTW9kZWwubmFtZSA9IFJlc3VsdE1vZGVsLk5hbWU7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0aW9uTW9kZSA9PSBmYWxzZSlcclxuICAgICAgRWRpdFBlcm1pc3Npb25Nb2RlbC5zeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZTtcclxuXHJcbiAgICBFZGl0UGVybWlzc2lvbk1vZGVsLm9yZ2FuaXphdGlvbklEX0dVSUQgPSBSZXN1bHRNb2RlbFt0aGlzLmVkaXRPcmdhbml6YXRpb24ubmFtZV07XHJcbiAgICBwYXJhbUFycmF5LnB1c2goRWRpdFBlcm1pc3Npb25Nb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRFZGl0UGVybWlzc2lvbkZ1bmN0aW9uID0gKEVkaXRQZXJtaXNzaW9uTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmVkaXRQZXJtaXNzaW9uKEVkaXRQZXJtaXNzaW9uTW9kZWwpO1xyXG4gIH07XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG5cclxuICAvLyNyZWdpb24gU3RhcnQgb2YgZGVsZXRlIFBlcm1pc3Npb24gcGFydFxyXG4gIHNob3dEZWxldGVQZXJtaXNzaW9uTW9kYWwoUGVybWlzc2lvbklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kZWxldGVkUGVybWlzc2lvbklkID0gUGVybWlzc2lvbklkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZFBlcm1pc3Npb25JZCk7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zID0gbmV3IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZGVsZXRlUGVybWlzc2lvbkZ1bmN0aW9uO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLnNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMucGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUGVybWlzc2lvbkZ1bmN0aW9uID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmRlbGV0ZVBlcm1pc3Npb24oaWQpO1xyXG4gIH07XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGZpbHRlclBlcm1pc3Npb25MaXN0KHNlYXJjaFZhbHVlKSB7XHJcbiAgICBpZiAoc2VhcmNoVmFsdWUpXHJcbiAgICAgIHRoaXMuZmlsdGVyZWRQZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdCA9IHRoaXMucGVybWlzc2lvbnNQYWdpbmdSZXN1bHQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wZXJtaXNzaW9uTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5maWx0ZXJlZFBlcm1pc3Npb25zUGFnaW5nUmVzdWx0ID0gdGhpcy5wZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBEZXN0cm95IE9ic2VydmFibGVcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG48IS0tICNyZWdpb24gcGFnZSBjb250ZW50IC0tPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgW2dyb3VwXT1cInBlcm1pc3Npb25zRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIGlzU3VwZXJBZG1pblwiXHJcbiAgICAgICAgICBuZ2JEcm9wZG93blxyXG4gICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IHNob3dQYWdlQ29udGVudCA9PSB0cnVlID8gJ2Jsb2NrJyA6ICdub25lJyB9XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duVG9nZ2xlIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIGlkPVwiRmlsdGVyc0Ryb3Bkb3duXCIgdGl0bGU9XCJGaWx0ZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0ZpbHRlcicpIH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgIG5nYkRyb3Bkb3duTWVudVxyXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJGaWx0ZXJzRHJvcGRvd25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlci1jb250YWluZXIgbWVudSBtZW51LXN1YiBtZW51LXN1Yi1kcm9wZG93biBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1ncmF5LTgwMCBtZW51LXN0YXRlLWJnLWxpZ2h0LXByaW1hcnkgdy0yNTBweCB3LW1kLTUwMHB4IGZ3LWJvbGQgcHktMyBkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIj5cclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwZXJtaXNzaW9uc0Zvcm1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNyBweS01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJpc011bHRpVGVuYW5jeUFsbG93ZWQgJiYgaXNTdXBlckFkbWluXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0ICNvcmdhbml6YXRpb25EREwgW29wdGlvbnNdPVwib3JnYW5pemF0aW9uT3B0aW9uc1wiIFtncm91cF09XCJwZXJtaXNzaW9uc0Zvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeSBwdi1yZXNldCBidG4tc21cIiBuYW1lPVwicGVybWlzc2lvblJlc2V0QnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnUmVzZXQnKSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgQGlmIChpc1N1cGVyQWRtaW4pIHtcclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGRQZXJtaXNzaW9uTW9kYWwoQWRkUGVybWlzc2lvbk1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0FkZCcpIH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8IS0tICNyZWdpb24gcGVybWlzc2lvbiBsaXN0IC0tPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdOYW1lJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdTeXNOYW1lJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MFwiICpuZ0lmPVwiaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIGlzU3VwZXJBZG1pblwiPnt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ09yZ2FuaXphdGlvbicpIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MHB4XCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQWN0aW9uJykgfX08L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBlcm1pc3Npb24gb2YgZmlsdGVyZWRQZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIHt7IHBlcm1pc3Npb24ucGVybWlzc2lvbk5hbWUgfX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImlzTXVsdGlUZW5hbmN5QWxsb3dlZCAmJiBpc1N1cGVyQWRtaW5cIj57eyBwZXJtaXNzaW9uLmN1cnJlbnRPcmdhbml6YXRpb25OYW1lID8/ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj57eyBwZXJtaXNzaW9uLnN5c05hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1N1cGVyQWRtaW5cIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgY2xhc3M9XCJtYXQtbWVudS1jb250ZW50XCIgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwic2hvd0VkaXRQZXJtaXNzaW9uTW9kYWwocGVybWlzc2lvbi5pRF9HVUlELCBFZGl0UGVybWlzc2lvbk1vZGFsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0VkaXQnKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIiAoY2xpY2spPVwic2hvd0RlbGV0ZVBlcm1pc3Npb25Nb2RhbChwZXJtaXNzaW9uLmlEX0dVSUQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVsZXRlJykgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPHRyICpuZ0lmPVwiZmlsdGVyZWRQZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIlByb2R1Y3Rpb25Nb2RlID8gJzMnIDogJzQnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmdcclxuICAgICAgICAoSXRlbXMpPVwic2V0UGVybWlzc2lvbnNMaXN0UmVzdWx0KCRldmVudClcIlxyXG4gICAgICAgICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cInBlcm1pc3Npb25zUGFnaW5nXCJcclxuICAgICAgICBbZ3JvdXBdPVwicGVybWlzc2lvbnNGb3JtXCJcclxuICAgICAgICAjUGVybWlzc2lvblBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48IS0tICNyZWdpb24gYWRkIG1vZGFsIC0tPlxyXG48bmctdGVtcGxhdGUgI0FkZFBlcm1pc3Npb25Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQWRkUGVybWlzc2lvbnMnKSB9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiYWRkUGVybWlzc2lvbkZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRQZXJtaXNzaW9uRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzeXNOYW1lXCIgW2dyb3VwXT1cImFkZFBlcm1pc3Npb25Gb3JtXCI+IDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRHJvcGRvd25MaXN0ICpuZ0lmPVwiaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIGlzU3VwZXJBZG1pblwiIFtvcHRpb25zXT1cIm9yZ2FuaXphdGlvblwiIFtncm91cF09XCJhZGRQZXJtaXNzaW9uRm9ybVwiPjwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAjQ2xvc2VQZXJtaXNzaW9uTW9kYWxcclxuICAgICAgICAgIGlkPVwiQ2xvc2VQZXJtaXNzaW9uTW9kYWxcIlxyXG4gICAgICAgICAgZGF0YS1kaXNtaXNzPVwibW9kYWxcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdDYW5jZWxMYWJlbCcpIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnU2F2ZUxhYmVsJykgfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuPCEtLSAjcmVnaW9uIEVkaXQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjRWRpdFBlcm1pc3Npb25Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRWRpdFBlcm1pc3Npb24nKSB9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9uc1wiPlxyXG4gICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cImVkaXRQZXJtaXNzaW9uRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXRQZXJtaXNzaW9uRm9ybVwiPiA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCAqbmdJZj1cImlzTXVsdGlUZW5hbmN5QWxsb3dlZCAmJiBpc1N1cGVyQWRtaW5cIiBbb3B0aW9uc109XCJlZGl0T3JnYW5pemF0aW9uXCIgW2dyb3VwXT1cImVkaXRQZXJtaXNzaW9uRm9ybVwiPjwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAjQ2xvc2VFZGl0UGVybWlzc2lvbk1vZGFsXHJcbiAgICAgICAgICBpZD1cIkNsb3NlRWRpdFBlcm1pc3Npb25Nb2RhbFwiXHJcbiAgICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCJcclxuICAgICAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0NhbmNlbExhYmVsJykgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdTYXZlTGFiZWwnKSB9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48IS0tICNyZWdpb24gZGVsZXRlIE1vZGFsIC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIiAjQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPlxyXG48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9yb2xlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3JvbGVzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQThCLHdCQUF3QixFQUF5QixlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFtQixhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JTLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBSzdHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPekMsTUFBTSxPQUFPLG9CQUFvQjtJQWlEL0IsWUFDVSxlQUFnQyxFQUNqQyxjQUE4QixFQUM3QixrQkFBc0MsRUFDdEMsWUFBc0IsRUFDdEIsa0JBQXNDLEVBQ3RDLHFCQUE0QyxFQUM1QyxXQUF3QjtRQU54QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FB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OlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIERyb3Bkb3duTGlzdENvbXBvbmVudCwgRHJvcGRvd25PcHRpb25zLCBFbmdsaXNoQXJhYmljRFRPLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBQZXJtaXNzaW9uU2V0cywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkxpc3RNb2RlbCwgUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9QZXJtaXNzaW9uc01vZGVscy9QZXJtaXNzaW9uTW9kZWwnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9QZXJtaXNzaW9uc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSwgQXV0aFNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1wZXJtaXNzaW9ucycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgQXBpVXJsID0gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuQXBpVXJsO1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIGN1cnJlbnRVc2VyUHJvZmlsZTogYW55O1xyXG4gIHBlcm1pc3Npb25TZXRzID0gUGVybWlzc2lvblNldHM7XHJcbiAgaXNNdWx0aVRlbmFuY3lBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTdXBlckFkbWluOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIG9yZ2FuaXphdGlvbkxpc3QgPSBbXTtcclxuICBmaWx0ZXJGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgcGVybWlzc2lvbnNGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBlcm1pc3Npb25zUGFnaW5nUmVzdWx0OiBQZXJtaXNzaW9uTGlzdE1vZGVsW10gPSBbXTtcclxuICBmaWx0ZXJlZFBlcm1pc3Npb25zUGFnaW5nUmVzdWx0OiBQZXJtaXNzaW9uTGlzdE1vZGVsW10gPSBbXTtcclxuICBwZXJtaXNzaW9uc1BhZ2luZzogUGFnaW5nT3B0aW9ucyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIG9yZ2FuaXphdGlvbk9wdGlvbnM6IERyb3Bkb3duT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICBvcmdhbml6YXRpb25zRmlsdGVyOiBGaWx0ZXJJdGVtID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1Blcm1pc3Npb25QYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBhZGRQZXJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZFBlcm1pc3Npb25Gb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgbXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgc3lzTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgb3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgaXNBZGRQZXJtaXNzaW9uRm9ybUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBlZGl0UGVybWlzc2lvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBlZGl0TXVsdGlMaW5ndWFsTmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdFN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRPcmdhbml6YXRpb246IERyb3Bkb3duT3B0aW9ucztcclxuICBpc0VkaXRQZXJtaXNzaW9uTW9kZWxMb2FkZWQ6IGJvb2xlYW47XHJcbiAgZWRpdFBlcm1pc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVkUGVybWlzc2lvbklkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uc1NlcnZpY2U6IFBlcm1pc3Npb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcblxyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGVybWlzc2lvbnNcIik7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuUHJvZHVjdGlvbk1vZGUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRQcm9kdWN0aW9uTW9kZSgpO1xyXG4gICAgdGhpcy5pc011bHRpVGVuYW5jeUFsbG93ZWQgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBbGxvd011bHRpVGVuYW5jeSgpO1xyXG4gICAgdGhpcy5jdXJyZW50VXNlclByb2ZpbGUgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkucHJvZmlsZTtcclxuICAgIHRoaXMuaXNTdXBlckFkbWluID0gdGhpcy5jdXJyZW50VXNlclByb2ZpbGUucGVybWlzc2lvblNldFNJRCA9PSB0aGlzLnBlcm1pc3Npb25TZXRzLkFkbWluO1xyXG5cclxuICAgIC8vaW5pdGlhbGl6ZSBwYWdlXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0UGVybWlzc2lvbnNMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRQZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdCA9IHRoaXMucGVybWlzc2lvbnNQYWdpbmdSZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvL2luaXRpYWxpemUgcGFnZVxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UubG9hZERyb3Bkb3duKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IGRyb3Bkb3duUmVzcG9uc2VNb2RlbCA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uTGlzdCA9IGRyb3Bkb3duUmVzcG9uc2VNb2RlbDtcclxuICAgICAgLy8jcmVnaW9uIGlucHV0IGZpZWxkIG9wdGlvbnNcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5uYW1lID0gXCJzZWFyY2hUZXh0Qm94XCI7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5oaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3gudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3gucGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIik7XHJcblxyXG4gICAgICBsZXQgZmlsdGVyT3JnYW5pemF0aW9uTGlzdCA9IFt7XHJcbiAgICAgICAga2V5OiBDb25zdGFudHMuTm90QXNzaWduZWRUb09yZ2FuaXphdGlvbixcclxuICAgICAgICB2YWx1ZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTm90QXNzaWduZWRcIiksXHJcbiAgICAgIH1dLmNvbmNhdCh0aGlzLm9yZ2FuaXphdGlvbkxpc3QpO1xyXG5cclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbk9wdGlvbnMubmFtZSA9IFwib3JnYW5pemF0aW9uXCI7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uT3B0aW9ucy5sYWJlbEtleSA9IFwiT3JnYW5pemF0aW9uc1wiO1xyXG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbk9wdGlvbnMuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25PcHRpb25zLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb25PcHRpb25zLmRhdGFTb3VyY2UgPSBmaWx0ZXJPcmdhbml6YXRpb25MaXN0O1xyXG4gICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuZm9ybUNvbnRyb2xOYW1lID0gdGhpcy5zZWFyY2hUZXh0Qm94Lm5hbWU7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIjtcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuaXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuICAgICAgaWYgKHRoaXMuaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIHRoaXMuaXNTdXBlckFkbWluKSB7XHJcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5maWx0ZXJzID0gdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5maWx0ZXJzID8/IFtdO1xyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5kcm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMgPz8gW107XHJcblxyXG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uc0ZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zRmlsdGVyLmZvcm1Db250cm9sTmFtZSA9IHRoaXMub3JnYW5pemF0aW9uT3B0aW9ucy5uYW1lO1xyXG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uc0ZpbHRlci5hY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJvcmdhbml6YXRpb25JZFwiO1xyXG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uc0ZpbHRlci5pc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnNGaWx0ZXIuZmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuRHJvcGRvd25MaXN0O1xyXG5cclxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLmZpbHRlcnMucHVzaCh0aGlzLm9yZ2FuaXphdGlvbnNGaWx0ZXIpO1xyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmcuZHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzLnB1c2godGhpcy5vcmdhbml6YXRpb25zRmlsdGVyLmZvcm1Db250cm9sTmFtZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucGVybWlzc2lvbnNQYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFBlcm1pc3Npb25zQnlGaWx0ZXInO1xyXG4gICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLm9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW3RoaXMuc2VhcmNoVGV4dEJveC5uYW1lXTtcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uc1BhZ2luZy5maWx0ZXJzID0gW1xyXG4gICAgICAgIC4uLnRoaXMucGVybWlzc2lvbnNQYWdpbmcuZmlsdGVycyxcclxuICAgICAgICB0aGlzLnRleHRJbnB1dEZpbHRlclxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnBlcm1pc3Npb25zUGFnaW5nLnJlc2V0RmlsdGVyQnV0dG9uTmFtZT0ncGVybWlzc2lvblJlc2V0QnV0dG9uJztcclxuICAgICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICAvLyNyZWdpb24gYWRkIG1vZGFsXHJcbiAgc2hvd0FkZFBlcm1pc3Npb25Nb2RhbChhZGRQZXJtaXNzaW9uTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuYWRkUGVybWlzc2lvbkZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuYWRkUGVybWlzc2lvbkZvcm07XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRQZXJtaXNzaW9uTW9kZWw7XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb25Gb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZFBlcm1pc3Npb25GdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkUGVybWlzc2lvbkZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5uYW1lID0gXCJOYW1lXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuYXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLmVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcblxyXG4gICAgdGhpcy5zeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnN5c05hbWUubmFtZSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgdGhpcy5zeXNOYW1lLmxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICB0aGlzLnN5c05hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5zeXNOYW1lLnZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuc3lzTmFtZS5tYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgdGhpcy5vcmdhbml6YXRpb24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbi5uYW1lID0gXCJPcmdhbml6YXRpb25JRF9HVUlEXCI7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbi5sYWJlbEtleSA9IFwiT3JnYW5pemF0aW9uXCI7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbi5zZWxlY3RlZEl0ZW1zID0gbnVsbDtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uLmRhdGFTb3VyY2UgPSB0aGlzLm9yZ2FuaXphdGlvbkxpc3Q7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbi5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24uYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5vcmdhbml6YXRpb24uaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oYWRkUGVybWlzc2lvbk1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRBZGRQZXJtaXNzaW9uTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuYWRkUGVybWlzc2lvbkZvcm0udmFsdWUgYXMgYW55O1xyXG4gICAgbGV0IEFkZFBlcm1pc3Npb25Nb2RlbDogUGVybWlzc2lvbk1vZGVsID0gbmV3IFBlcm1pc3Npb25Nb2RlbCgpO1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdGlvbk1vZGUgPT0gZmFsc2UpXHJcbiAgICAgIEFkZFBlcm1pc3Npb25Nb2RlbC5zeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZTtcclxuICAgIEFkZFBlcm1pc3Npb25Nb2RlbC5uYW1lID0gUmVzdWx0TW9kZWwuTmFtZTtcclxuICAgIEFkZFBlcm1pc3Npb25Nb2RlbC5vcmdhbml6YXRpb25JRF9HVUlEID0gUmVzdWx0TW9kZWxbdGhpcy5vcmdhbml6YXRpb24ubmFtZV07XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkUGVybWlzc2lvbk1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldEFkZFBlcm1pc3Npb25GdW5jdGlvbiA9IChBZGRQZXJtaXNzaW9uTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmFkZFBlcm1pc3Npb24oQWRkUGVybWlzc2lvbk1vZGVsKTtcclxuICB9O1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBlZGl0IG1vZGFsXHJcbiAgc2hvd0VkaXRQZXJtaXNzaW9uTW9kYWwocGVybWlzc2lvbklEOiBzdHJpbmcsIGVkaXRQZXJtaXNzaW9uTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmVkaXRQZXJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5lZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtO1xyXG4gICAgdGhpcy5lZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRQZXJtaXNzaW9uTW9kZWw7XHJcbiAgICB0aGlzLmVkaXRQZXJtaXNzaW9uRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0UGVybWlzc2lvbkZ1bmN0aW9uO1xyXG4gICAgdGhpcy5lZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuXHJcblxyXG4gICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuZ2V0UGVybWlzc2lvbihwZXJtaXNzaW9uSUQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgbGV0IFBlcm1pc3Npb24gPSByZXN1bHQubW9kZWwgYXMgYW55O1xyXG4gICAgICBsZXQgTmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIE5hbWUuYXJhYmljID0gUGVybWlzc2lvbi5uYW1lLmFyYWJpYztcclxuICAgICAgTmFtZS5lbmdsaXNoID0gUGVybWlzc2lvbi5uYW1lLmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUubmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLmFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS52YWx1ZSA9IE5hbWU7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25JZCA9IFBlcm1pc3Npb24uaURfR1VJRDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5uYW1lID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubGFiZWxLZXkgPSBcIlN5c05hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUudmFsdWUgPSBQZXJtaXNzaW9uLnN5c05hbWU7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24ubmFtZSA9IFwiT3JnYW5pemF0aW9uSURfR1VJRFwiO1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24ubGFiZWxLZXkgPSBcIk9yZ2FuaXphdGlvblwiO1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24uc2VsZWN0ZWRJdGVtcyA9IFBlcm1pc3Npb24ub3JnYW5pemF0aW9uSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5lZGl0T3JnYW5pemF0aW9uLmRhdGFTb3VyY2UgPSB0aGlzLm9yZ2FuaXphdGlvbkxpc3Q7XHJcbiAgICAgIHRoaXMuZWRpdE9yZ2FuaXphdGlvbi5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24uYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRPcmdhbml6YXRpb24uaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0UGVybWlzc2lvbk1vZGFsKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGdldEVkaXRQZXJtaXNzaW9uTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuZWRpdFBlcm1pc3Npb25Gb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBFZGl0UGVybWlzc2lvbk1vZGVsID0gbmV3IFBlcm1pc3Npb25Nb2RlbCgpO1xyXG4gICAgRWRpdFBlcm1pc3Npb25Nb2RlbC5pRF9HVUlEID0gdGhpcy5lZGl0UGVybWlzc2lvbklkO1xyXG4gICAgRWRpdFBlcm1pc3Npb25Nb2RlbC5uYW1lID0gUmVzdWx0TW9kZWwuTmFtZTtcclxuICAgIGlmICh0aGlzLlByb2R1Y3Rpb25Nb2RlID09IGZhbHNlKVxyXG4gICAgICBFZGl0UGVybWlzc2lvbk1vZGVsLnN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lO1xyXG5cclxuICAgIEVkaXRQZXJtaXNzaW9uTW9kZWwub3JnYW5pemF0aW9uSURfR1VJRCA9IFJlc3VsdE1vZGVsW3RoaXMuZWRpdE9yZ2FuaXphdGlvbi5uYW1lXTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0UGVybWlzc2lvbk1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldEVkaXRQZXJtaXNzaW9uRnVuY3Rpb24gPSAoRWRpdFBlcm1pc3Npb25Nb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuZWRpdFBlcm1pc3Npb24oRWRpdFBlcm1pc3Npb25Nb2RlbCk7XHJcbiAgfTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBTdGFydCBvZiBkZWxldGUgUGVybWlzc2lvbiBwYXJ0XHJcbiAgc2hvd0RlbGV0ZVBlcm1pc3Npb25Nb2RhbChQZXJtaXNzaW9uSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRlbGV0ZWRQZXJtaXNzaW9uSWQgPSBQZXJtaXNzaW9uSWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVkUGVybWlzc2lvbklkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVQZXJtaXNzaW9uRnVuY3Rpb247XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuc2VydmljZVN1Ym1pdE1vZGVsID0gcGFyYW1BcnJheTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVQZXJtaXNzaW9uRnVuY3Rpb24gPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuZGVsZXRlUGVybWlzc2lvbihpZCk7XHJcbiAgfTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgZmlsdGVyUGVybWlzc2lvbkxpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5maWx0ZXJlZFBlcm1pc3Npb25zUGFnaW5nUmVzdWx0ID0gdGhpcy5wZXJtaXNzaW9uc1BhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLnBlcm1pc3Npb25OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZpbHRlcmVkUGVybWlzc2lvbnNQYWdpbmdSZXN1bHQgPSB0aGlzLnBlcm1pc3Npb25zUGFnaW5nUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIERlc3Ryb3kgT2JzZXJ2YWJsZVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBwYWdlIGNvbnRlbnQgLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiBbZ3JvdXBdPVwicGVybWlzc2lvbnNGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJpc011bHRpVGVuYW5jeUFsbG93ZWQgJiYgaXNTdXBlckFkbWluXCJcclxuICAgICAgICAgIG5nYkRyb3Bkb3duXHJcbiAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogc2hvd1BhZ2VDb250ZW50ID09IHRydWUgPyAnYmxvY2snIDogJ25vbmUnIH1cIj5cclxuICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25Ub2dnbGUgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgaWQ9XCJGaWx0ZXJzRHJvcGRvd25cIiB0aXRsZT1cIkZpbHRlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWx0ZXIgbWUtMVwiPjwvaT5cclxuICAgICAgICAgICAge3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRmlsdGVyJykgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgbmdiRHJvcGRvd25NZW51XHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIkZpbHRlcnNEcm9wZG93blwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWNvbnRhaW5lciBtZW51IG1lbnUtc3ViIG1lbnUtc3ViLWRyb3Bkb3duIG1lbnUtY29sdW1uIG1lbnUtcm91bmRlZCBtZW51LWdyYXktODAwIG1lbnUtc3RhdGUtYmctbGlnaHQtcHJpbWFyeSB3LTI1MHB4IHctbWQtNTAwcHggZnctYm9sZCBweS0zIGRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInBlcm1pc3Npb25zRm9ybVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC03IHB5LTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImlzTXVsdGlUZW5hbmN5QWxsb3dlZCAmJiBpc1N1cGVyQWRtaW5cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgI29yZ2FuaXphdGlvbkRETCBbb3B0aW9uc109XCJvcmdhbml6YXRpb25PcHRpb25zXCIgW2dyb3VwXT1cInBlcm1pc3Npb25zRm9ybVwiPjwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5IHB2LXJlc2V0IGJ0bi1zbVwiIG5hbWU9XCJwZXJtaXNzaW9uUmVzZXRCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdSZXNldCcpIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAaWYgKGlzU3VwZXJBZG1pbikge1xyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgdGl0bGU9XCJBZGRcIiAoY2xpY2spPVwic2hvd0FkZFBlcm1pc3Npb25Nb2RhbChBZGRQZXJtaXNzaW9uTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT5cclxuICAgICAgICAgICAge3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQWRkJykgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBwZXJtaXNzaW9uIGxpc3QgLS0+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ05hbWUnKSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPnt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1N5c05hbWUnKSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwXCIgKm5nSWY9XCJpc011bHRpVGVuYW5jeUFsbG93ZWQgJiYgaXNTdXBlckFkbWluXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnT3JnYW5pemF0aW9uJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdBY3Rpb24nKSB9fTwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGVybWlzc2lvbiBvZiBmaWx0ZXJlZFBlcm1pc3Npb25zUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAge3sgcGVybWlzc2lvbi5wZXJtaXNzaW9uTmFtZSB9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIGlzU3VwZXJBZG1pblwiPnt7IHBlcm1pc3Npb24uY3VycmVudE9yZ2FuaXphdGlvbk5hbWUgPz8gJy0nIH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiBjbGFzcz1cImFsaWduLW1pZGRsZVwiPnt7IHBlcm1pc3Npb24uc3lzTmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU3VwZXJBZG1pblwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSBjbGFzcz1cIm1hdC1tZW51LWNvbnRlbnRcIiAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJzaG93RWRpdFBlcm1pc3Npb25Nb2RhbChwZXJtaXNzaW9uLmlEX0dVSUQsIEVkaXRQZXJtaXNzaW9uTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRWRpdCcpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIChjbGljayk9XCJzaG93RGVsZXRlUGVybWlzc2lvbk1vZGFsKHBlcm1pc3Npb24uaURfR1VJRClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdEZWxldGUnKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJmaWx0ZXJlZFBlcm1pc3Npb25zUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiUHJvZHVjdGlvbk1vZGUgPyAnMycgOiAnNCdcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgIDxCQlNGLVBhZ2luZ1xyXG4gICAgICAgIChJdGVtcyk9XCJzZXRQZXJtaXNzaW9uc0xpc3RSZXN1bHQoJGV2ZW50KVwiXHJcbiAgICAgICAgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwicGVybWlzc2lvbnNQYWdpbmdcIlxyXG4gICAgICAgIFtncm91cF09XCJwZXJtaXNzaW9uc0Zvcm1cIlxyXG4gICAgICAgICNQZXJtaXNzaW9uUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBhZGQgbW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjQWRkUGVybWlzc2lvbk1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdBZGRQZXJtaXNzaW9ucycpIH19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRQZXJtaXNzaW9uRm9ybU9wdGlvbnNcIj5cclxuICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJtdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cImFkZFBlcm1pc3Npb25Gb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInN5c05hbWVcIiBbZ3JvdXBdPVwiYWRkUGVybWlzc2lvbkZvcm1cIj4gPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgKm5nSWY9XCJpc011bHRpVGVuYW5jeUFsbG93ZWQgJiYgaXNTdXBlckFkbWluXCIgW29wdGlvbnNdPVwib3JnYW5pemF0aW9uXCIgW2dyb3VwXT1cImFkZFBlcm1pc3Npb25Gb3JtXCI+PC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICNDbG9zZVBlcm1pc3Npb25Nb2RhbFxyXG4gICAgICAgICAgaWQ9XCJDbG9zZVBlcm1pc3Npb25Nb2RhbFwiXHJcbiAgICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCJcclxuICAgICAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0NhbmNlbExhYmVsJykgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdTYXZlTGFiZWwnKSB9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48IS0tICNyZWdpb24gRWRpdCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNFZGl0UGVybWlzc2lvbk1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57eyB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdFZGl0UGVybWlzc2lvbicpIH19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJlZGl0UGVybWlzc2lvbkZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiZWRpdFBlcm1pc3Npb25Gb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdFN5c05hbWVcIiBbZ3JvdXBdPVwiZWRpdFBlcm1pc3Npb25Gb3JtXCI+IDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRHJvcGRvd25MaXN0ICpuZ0lmPVwiaXNNdWx0aVRlbmFuY3lBbGxvd2VkICYmIGlzU3VwZXJBZG1pblwiIFtvcHRpb25zXT1cImVkaXRPcmdhbml6YXRpb25cIiBbZ3JvdXBdPVwiZWRpdFBlcm1pc3Npb25Gb3JtXCI+PC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICNDbG9zZUVkaXRQZXJtaXNzaW9uTW9kYWxcclxuICAgICAgICAgIGlkPVwiQ2xvc2VFZGl0UGVybWlzc2lvbk1vZGFsXCJcclxuICAgICAgICAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQ2FuY2VsTGFiZWwnKSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1NhdmVMYWJlbCcpIH19PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBkZWxldGUgTW9kYWwgLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwiZGVsZXRlQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cImRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cIkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiICNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+XHJcbjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4iXX0=
|