@bnsights/bbsf-admin-portal 1.0.0 → 1.0.5
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/bnsights-bbsf-admin-portal-1.0.5.tgz +0 -0
- package/bundles/bnsights-bbsf-admin-portal.umd.js +19694 -20386
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.js +2 -2
- package/esm2015/lib/Pages/account/account-routing.module.js +3 -1
- package/esm2015/lib/Pages/account/account.component.js +15 -6
- package/esm2015/lib/Pages/account/account.module.js +16 -8
- package/esm2015/lib/Pages/account/forgot-password/forgot-password.component.js +48 -0
- package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +392 -387
- package/esm2015/lib/Pages/core/authentication/auth.service.js +1 -2
- package/esm2015/lib/Pages/departments/department/department.component.js +59 -98
- package/esm2015/lib/Pages/departments/department-info/department-info.component.js +85 -94
- package/esm2015/lib/Pages/departments/departments.module.js +4 -1
- package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +224 -223
- package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +137 -146
- package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +136 -153
- package/esm2015/lib/Pages/home/home.component.js +32 -26
- package/esm2015/lib/Pages/home/home.module.js +5 -10
- package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +336 -317
- package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +168 -227
- package/esm2015/lib/Pages/license/license/license.component.js +68 -99
- package/esm2015/lib/Pages/localizations/localizations.component.js +378 -341
- package/esm2015/lib/Pages/logs/log/log.component.js +18 -27
- package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +297 -288
- package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +143 -165
- package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +234 -233
- package/esm2015/lib/Pages/lookups/lookups-routing.module.js +2 -2
- package/esm2015/lib/Pages/notifications/add/add.component.js +83 -76
- package/esm2015/lib/Pages/notifications/edit/edit.component.js +60 -63
- package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +128 -126
- package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +87 -85
- package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +57 -58
- package/esm2015/lib/Pages/notifications/notifications-routing.module.js +1 -3
- package/esm2015/lib/Pages/notifications/notifications.module.js +3 -4
- package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +232 -228
- package/esm2015/lib/Pages/notifications/templates/templates.component.js +347 -310
- package/esm2015/lib/Pages/providers/provider/provider.component.js +54 -52
- package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +268 -270
- package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +136 -152
- package/esm2015/lib/Pages/roles/permissions/permissions.component.js +182 -218
- package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +219 -254
- package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +134 -142
- package/esm2015/lib/Pages/sectors/sector/sector.component.js +127 -144
- package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +123 -139
- package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +8 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +8 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +6 -0
- package/esm2015/lib/Pages/shared/Enums/ParticipantType.js +8 -0
- package/esm2015/lib/Pages/shared/Services/AccountService.service.js +21 -0
- package/esm2015/lib/Pages/shared/Services/ConfigurationsService.service.js +15 -12
- package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +5 -8
- package/esm2015/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.js +10 -9
- package/esm2015/lib/Pages/shared/Services/HelpCenterService.service.js +10 -7
- package/esm2015/lib/Pages/shared/Services/ImpersonationRuleService.service.js +14 -8
- package/esm2015/lib/Pages/shared/Services/LicenseService.service.js +3 -3
- package/esm2015/lib/Pages/shared/Services/LogsService.js +1 -1
- package/esm2015/lib/Pages/shared/Services/LookupGroupsService.service.js +11 -5
- package/esm2015/lib/Pages/shared/Services/LookupService.service.js +31 -15
- package/esm2015/lib/Pages/shared/Services/PermissionSetService.service.js +18 -8
- package/esm2015/lib/Pages/shared/Services/PermissionsService.service.js +12 -9
- package/esm2015/lib/Pages/shared/Services/PublicHolidayService.service.js +9 -3
- package/esm2015/lib/Pages/shared/Services/SectorService.service.js +18 -13
- package/esm2015/lib/Pages/shared/Services/TemplateService.service.js +36 -29
- package/esm2015/lib/Pages/shared/Services/localizationsService.service .js +23 -13
- package/esm2015/lib/Pages/shared/Services/provider.service.js +5 -7
- package/esm2015/lib/Pages/shared/Services/userService.service.js +10 -2
- package/esm2015/lib/Pages/shared/models/AccountModels/forgotPasswordModel.js +6 -0
- package/esm2015/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupItem.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupModel.js +1 -2
- package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.js +1 -1
- package/esm2015/lib/Pages/users/users.component.js +398 -409
- package/esm2015/lib/masterlayout-routing.module.js +5 -4
- package/esm2015/lib/masterlayout.component.js +22 -32
- package/esm2015/lib/masterlayout.module.js +25 -19
- package/fesm2015/bnsights-bbsf-admin-portal.js +17295 -17401
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/lib/Pages/account/account.component.d.ts +5 -1
- package/lib/Pages/account/account.module.d.ts +8 -6
- package/lib/Pages/account/forgot-password/forgot-password.component.d.ts +20 -0
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +39 -31
- package/lib/Pages/departments/department/department.component.d.ts +19 -15
- package/lib/Pages/departments/department-info/department-info.component.d.ts +31 -28
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +34 -32
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +31 -34
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +30 -35
- package/lib/Pages/home/home.component.d.ts +4 -4
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +43 -42
- package/lib/Pages/jobs/jobs/jobs.component.d.ts +56 -62
- package/lib/Pages/license/license/license.component.d.ts +25 -23
- package/lib/Pages/localizations/localizations.component.d.ts +77 -65
- package/lib/Pages/logs/log/log.component.d.ts +7 -11
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +64 -59
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +44 -45
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +62 -56
- package/lib/Pages/notifications/add/add.component.d.ts +13 -11
- package/lib/Pages/notifications/edit/edit.component.d.ts +14 -14
- package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +18 -20
- package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +15 -16
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +24 -25
- package/lib/Pages/notifications/notifications.module.d.ts +15 -16
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +32 -32
- package/lib/Pages/notifications/templates/templates.component.d.ts +54 -46
- package/lib/Pages/providers/provider/provider.component.d.ts +13 -12
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +29 -27
- package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +39 -40
- package/lib/Pages/roles/permissions/permissions.component.d.ts +49 -54
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +53 -55
- package/lib/Pages/sectors/department-info/department-info.component.d.ts +41 -44
- package/lib/Pages/sectors/sector/sector.component.d.ts +35 -33
- package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +40 -44
- package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +5 -0
- package/lib/Pages/shared/Enums/ConfigurationType.d.ts +6 -0
- package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +4 -0
- package/lib/Pages/shared/Enums/ParticipantType.d.ts +6 -0
- package/lib/Pages/shared/Services/AccountService.service.d.ts +10 -0
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -8
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
- package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
- package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -11
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -7
- package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -6
- package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -19
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -11
- package/lib/Pages/shared/Services/provider.service.d.ts +1 -1
- package/lib/Pages/shared/Services/userService.service.d.ts +2 -0
- package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -0
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +0 -1
- package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +0 -2
- package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +1 -1
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +1 -1
- package/lib/Pages/users/users.component.d.ts +54 -68
- package/lib/masterlayout.component.d.ts +4 -5
- package/lib/masterlayout.module.d.ts +8 -9
- package/package.json +5 -3
- package/src/lib/assets/sass/core/components/_variables.scss +1 -1
- package/src/lib/assets/sass/custom-styles-rtl.scss +5 -0
- package/src/lib/assets/sass/custom-styles.scss +153 -0
- package/src/lib/assets/sass/style-rtl.scss +2 -0
- package/src/lib/assets/sass/style.scss +2 -2
- package/bnsights-bbsf-admin-portal-0.0.1.tgz +0 -0
- package/bnsights-bbsf-admin-portal-1.0.0.tgz +0 -0
- package/esm2015/lib/Pages/notifications/edit-template/edit-template.component.js +0 -35
- package/lib/Pages/notifications/edit-template/edit-template.component.d.ts +0 -35
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
1
|
import { Component, ViewChild } from '@angular/core';
|
|
3
2
|
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { EnglishArabicDTO, FilterItem, FilterType, InputType, MultiLingualTextBoxOptions, PagingOptions, TextBoxOptions } from '@bnsights/bbsf-controls';
|
|
5
|
-
import { BlockUI } from 'ng-block-ui';
|
|
3
|
+
import { ConfirmationModalOptions, EnglishArabicDTO, FilterItem, FilterType, FormOptions, InputType, MultiLingualTextBoxOptions, PagingOptions, TextBoxOptions } from '@bnsights/bbsf-controls';
|
|
6
4
|
import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
|
|
7
5
|
import { LookupGroupModel } from '../../shared/models/Lookups/LookupGroupModel';
|
|
8
|
-
import { UsersIDRequestModel } from '../../shared/models/UserModels/UsersIDRequestModel';
|
|
9
6
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "
|
|
11
|
-
import * as i2 from "
|
|
7
|
+
import * as i1 from "../../../_metronic/core/services/page-info.service";
|
|
8
|
+
import * as i2 from "@bnsights/bbsf-utilities";
|
|
12
9
|
import * as i3 from "../../shared/Services/LookupGroupsService.service";
|
|
13
10
|
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
14
11
|
import * as i5 from "ng-block-ui";
|
|
@@ -16,203 +13,184 @@ import * as i6 from "@bnsights/bbsf-controls";
|
|
|
16
13
|
import * as i7 from "@angular/material/menu";
|
|
17
14
|
import * as i8 from "../../empty-data/empty-data.component";
|
|
18
15
|
import * as i9 from "@angular/common";
|
|
19
|
-
import * as i10 from "
|
|
20
|
-
import * as i11 from "ng-inline-svg";
|
|
16
|
+
import * as i10 from "ng-inline-svg";
|
|
21
17
|
export class LookupGroupComponent {
|
|
22
|
-
constructor(
|
|
23
|
-
this.authService = authService;
|
|
18
|
+
constructor(pageInfoService, utilityService, lookupGroupsService, modalService, requestHandlerService) {
|
|
24
19
|
this.pageInfoService = pageInfoService;
|
|
25
20
|
this.utilityService = utilityService;
|
|
26
|
-
this.
|
|
27
|
-
this.environmentService = environmentService;
|
|
28
|
-
this.LookupGroupsService = LookupGroupsService;
|
|
21
|
+
this.lookupGroupsService = lookupGroupsService;
|
|
29
22
|
this.modalService = modalService;
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.LookupGroupsForm = new FormGroup({});
|
|
23
|
+
this.requestHandlerService = requestHandlerService;
|
|
24
|
+
//Page requirements
|
|
25
|
+
this.ApiUrl = this.lookupGroupsService.ApiUrl;
|
|
26
|
+
this.lookupGroupsForm = new FormGroup({});
|
|
35
27
|
this.showFilter = false;
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
28
|
+
this.lookupGroupsPagingResult = [];
|
|
29
|
+
this.filteredLookupGroupsPagingResult = [];
|
|
30
|
+
this.isFilterLoaded = false;
|
|
38
31
|
//Add Model Controls
|
|
39
|
-
this.
|
|
32
|
+
this.addLookupGroupForm = new FormGroup({});
|
|
40
33
|
//Edit Model Controls
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
this.editLookupGroupForm = new FormGroup({});
|
|
35
|
+
this.deleteControlLoaded = false;
|
|
36
|
+
this.getAddLookupGroupModel = () => {
|
|
37
|
+
let paramArray = [];
|
|
38
|
+
let ResultModel = this.addLookupGroupForm.value;
|
|
39
|
+
let AddModel = new LookupGroupModel();
|
|
40
|
+
AddModel.Name.Arabic = ResultModel.Name.ArabicValue;
|
|
41
|
+
AddModel.Name.English = ResultModel.Name.EnglishValue;
|
|
42
|
+
paramArray.push(AddModel);
|
|
43
|
+
return paramArray;
|
|
44
|
+
};
|
|
45
|
+
this.getAddLookupGroupFunction = (AddModel) => {
|
|
46
|
+
return this.lookupGroupsService.addLookupGroup(AddModel);
|
|
47
|
+
};
|
|
48
|
+
this.getEditLookupGroupModel = () => {
|
|
49
|
+
let paramArray = [];
|
|
50
|
+
let ResultModel = this.editLookupGroupForm.value;
|
|
51
|
+
let EditModel = new LookupGroupModel();
|
|
52
|
+
EditModel.Id = this.lookupGroupId;
|
|
53
|
+
EditModel.Name.English = ResultModel.EditName.EnglishValue;
|
|
54
|
+
EditModel.Name.Arabic = ResultModel.EditName.ArabicValue;
|
|
55
|
+
paramArray.push(EditModel);
|
|
56
|
+
return paramArray;
|
|
57
|
+
};
|
|
58
|
+
this.getEditLookupGroupFunction = (EditModel) => {
|
|
59
|
+
return this.lookupGroupsService.editLookupGroup(EditModel);
|
|
60
|
+
};
|
|
61
|
+
this.deleteLookupGroup = (id) => {
|
|
62
|
+
return this.lookupGroupsService.deleteLookupGroup(id);
|
|
63
|
+
};
|
|
48
64
|
}
|
|
49
65
|
ngOnInit() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this.language = event.lang;
|
|
61
|
-
this.ngOnInit();
|
|
62
|
-
});
|
|
63
|
-
this.language = yield this.utilityService.getCurrentLanguage();
|
|
64
|
-
this.ProductionMode = this.environmentService.getProductionMode();
|
|
65
|
-
this.LoadList();
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
ReinitializePermissionsPaging() {
|
|
69
|
-
let element = this.input;
|
|
70
|
-
element.ReinitializePaging();
|
|
71
|
-
}
|
|
72
|
-
UpdatePermissionsPaging() {
|
|
73
|
-
let element = this.input;
|
|
74
|
-
element.UpdatePaging();
|
|
66
|
+
//Page header (breadcrumb and title)
|
|
67
|
+
PageInfoService.PageTitle = this.utilityService.getResourceValue("LookupGroups");
|
|
68
|
+
PageInfoService.PageBreadcrumbs = [
|
|
69
|
+
{ title: this.utilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
|
|
70
|
+
{ title: '', path: '', isSeparator: true, isActive: false }
|
|
71
|
+
];
|
|
72
|
+
this.pageInfoService.calculateTitle();
|
|
73
|
+
this.pageInfoService.calculateBreadcrumbs();
|
|
74
|
+
//initialize page
|
|
75
|
+
this.initializePage();
|
|
75
76
|
}
|
|
77
|
+
//Paging functions
|
|
76
78
|
setLookupGroupListResult(result) {
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
79
|
+
this.lookupGroupsPagingResult = result;
|
|
80
|
+
this.filteredLookupGroupsPagingResult = this.lookupGroupsPagingResult;
|
|
79
81
|
this.utilityService.stopBlockUI();
|
|
80
82
|
}
|
|
83
|
+
//Filter functions
|
|
81
84
|
resetFilters() {
|
|
82
|
-
this.
|
|
83
|
-
let element = this.
|
|
85
|
+
this.lookupGroupsForm.controls["searchTextBox"].setValue(null);
|
|
86
|
+
let element = this.pagingElement;
|
|
84
87
|
element.ReinitializePaging();
|
|
85
88
|
}
|
|
86
|
-
|
|
89
|
+
initializePage() {
|
|
87
90
|
this.searchTextBox = new TextBoxOptions();
|
|
88
91
|
this.searchTextBox.Name = "searchTextBox";
|
|
89
92
|
this.searchTextBox.HideLabel = true;
|
|
90
93
|
this.searchTextBox.Type = InputType.Text;
|
|
91
94
|
this.searchTextBox.Placeholder = this.utilityService.getResourceValue("SearchByName");
|
|
92
|
-
this.
|
|
93
|
-
this.
|
|
94
|
-
this.
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
97
|
-
this.
|
|
98
|
-
this.
|
|
99
|
-
this.
|
|
100
|
-
this.
|
|
101
|
-
this.
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
this.IsFilterLoaded = true;
|
|
104
|
-
}, 10);
|
|
95
|
+
this.textInputFilter = new FilterItem();
|
|
96
|
+
this.textInputFilter.FormControlName = "searchTextBox";
|
|
97
|
+
this.textInputFilter.ActionParameterName = "searchText";
|
|
98
|
+
this.textInputFilter.IsFormControl = true;
|
|
99
|
+
this.textInputFilter.FilterType = FilterType.TextBox;
|
|
100
|
+
this.lookupGroupsPaging = new PagingOptions();
|
|
101
|
+
this.lookupGroupsPaging.ActionPostURL = this.ApiUrl + 'GetLookupGroupsByFilter';
|
|
102
|
+
this.lookupGroupsPaging.OnKeyPressFiltersControlNames = ["searchTextBox"];
|
|
103
|
+
this.lookupGroupsPaging.Filters = [this.textInputFilter];
|
|
104
|
+
this.isFilterLoaded = true;
|
|
105
105
|
}
|
|
106
|
+
///////////// Start add Lookup Group Part//////////////////////
|
|
106
107
|
showAddLookupGroupModal(AddLookupGroupModal) {
|
|
107
108
|
this.utilityService.startBlockUI();
|
|
108
|
-
this.
|
|
109
|
-
this.
|
|
110
|
-
this.
|
|
111
|
-
this.
|
|
112
|
-
this.
|
|
113
|
-
this.
|
|
114
|
-
this.
|
|
109
|
+
this.addLookupGroupForm = new FormGroup({});
|
|
110
|
+
this.addLookupGroupFormOptions = new FormOptions();
|
|
111
|
+
this.addLookupGroupFormOptions.FormGroup = this.addLookupGroupForm;
|
|
112
|
+
this.addLookupGroupFormOptions.GetModelFunction = this.getAddLookupGroupModel;
|
|
113
|
+
this.addLookupGroupFormOptions.ServiceSubmitFunction = this.getAddLookupGroupFunction;
|
|
114
|
+
this.addLookupGroupFormOptions.PagingReference = this.pagingElement;
|
|
115
|
+
this.multiLingualName = new MultiLingualTextBoxOptions();
|
|
116
|
+
this.multiLingualName.Name = "Name";
|
|
117
|
+
this.multiLingualName.ArabicLabelKey = "NameInArabic";
|
|
118
|
+
this.multiLingualName.EnglishLabelKey = "NameInEnglish";
|
|
119
|
+
this.multiLingualName.IsRequired = true;
|
|
120
|
+
this.multiLingualName.Value = null;
|
|
115
121
|
this.modalService.open(AddLookupGroupModal);
|
|
116
122
|
this.utilityService.stopBlockUI();
|
|
117
123
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.EditMultiLingualName = new MultiLingualTextBoxOptions();
|
|
142
|
-
this.EditMultiLingualName.Name = "EditName";
|
|
143
|
-
this.EditMultiLingualName.ArabicLabelKey = "NameInArabic";
|
|
144
|
-
this.EditMultiLingualName.EnglishLabelKey = "NameInEnglish";
|
|
145
|
-
this.EditMultiLingualName.IsRequired = true;
|
|
146
|
-
this.EditMultiLingualName.Value = Name;
|
|
147
|
-
this.LookupGroupId = LookupGroup.id;
|
|
148
|
-
this.modalService.open(EditLookupGroupModal);
|
|
149
|
-
this.utilityService.stopBlockUI();
|
|
124
|
+
//////////// End of add Lookup Group part///////////////////////
|
|
125
|
+
///////////Start of edit Lookup part//////////////////////
|
|
126
|
+
showEditLookupGroupModal(lookupGroupID, editLookupGroupModal) {
|
|
127
|
+
this.editLookupGroupForm = new FormGroup({});
|
|
128
|
+
this.editLookupGroupFormOptions = new FormOptions();
|
|
129
|
+
this.editLookupGroupFormOptions.FormGroup = this.editLookupGroupForm;
|
|
130
|
+
this.editLookupGroupFormOptions.GetModelFunction = this.getEditLookupGroupModel;
|
|
131
|
+
this.editLookupGroupFormOptions.ServiceSubmitFunction = this.getEditLookupGroupFunction;
|
|
132
|
+
this.editLookupGroupFormOptions.PagingReference = this.pagingElement;
|
|
133
|
+
this.lookupGroupsService.getLookupGroup(lookupGroupID).subscribe((result) => {
|
|
134
|
+
let LookupGroup = result.model;
|
|
135
|
+
let name = new EnglishArabicDTO();
|
|
136
|
+
name.Arabic = LookupGroup.name.arabic;
|
|
137
|
+
name.English = LookupGroup.name.english;
|
|
138
|
+
this.editMultiLingualName = new MultiLingualTextBoxOptions();
|
|
139
|
+
this.editMultiLingualName.Name = "EditName";
|
|
140
|
+
this.editMultiLingualName.ArabicLabelKey = "NameInArabic";
|
|
141
|
+
this.editMultiLingualName.EnglishLabelKey = "NameInEnglish";
|
|
142
|
+
this.editMultiLingualName.IsRequired = true;
|
|
143
|
+
this.editMultiLingualName.Value = name;
|
|
144
|
+
this.lookupGroupId = LookupGroup.id;
|
|
145
|
+
this.modalService.open(editLookupGroupModal);
|
|
146
|
+
});
|
|
150
147
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
148
|
+
///////////End of edit LookupGroup part//////////////////////
|
|
149
|
+
///////////Start of delete LookupGroup part//////////////////////
|
|
150
|
+
showDeleteLookupGroupModal(lookupGroupId) {
|
|
151
|
+
this.deleteControlLoaded = false;
|
|
152
|
+
this.deletedLookupGroupId = lookupGroupId;
|
|
153
|
+
//array sent to service function
|
|
154
|
+
let paramArray = [];
|
|
155
|
+
paramArray.push(this.deletedLookupGroupId);
|
|
156
|
+
this.deleteConfirmationOptions = new ConfirmationModalOptions();
|
|
157
|
+
this.deleteConfirmationOptions.ServiceSubmitFunction = this.deleteLookupGroup;
|
|
158
|
+
this.deleteConfirmationOptions.ServiceSubmitModel = paramArray;
|
|
159
|
+
this.deleteConfirmationOptions.PagingReference = this.pagingElement;
|
|
160
|
+
this.deleteControlLoaded = true;
|
|
161
|
+
setTimeout(() => {
|
|
162
|
+
this.ConfirmationModalControl.showModal();
|
|
163
|
+
}, 200);
|
|
168
164
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
///////////End of delete LookupGroup part//////////////////////
|
|
166
|
+
/**FunctionName:filterLookupGroupList*/
|
|
167
|
+
/**Declaration:function to filter LookupGroupList in client-side */
|
|
168
|
+
/**Parameters:*/
|
|
169
|
+
/**searchValue: current value of search box*/
|
|
170
|
+
filterLookupGroupList(searchValue) {
|
|
171
|
+
if (searchValue)
|
|
172
|
+
this.filteredLookupGroupsPagingResult = this.lookupGroupsPagingResult.filter(item => item.lookupGroupName.toLowerCase().includes(searchValue.toLowerCase()));
|
|
173
|
+
else
|
|
174
|
+
this.filteredLookupGroupsPagingResult = this.lookupGroupsPagingResult;
|
|
175
175
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const element = this.deleteLookupGroupList[index];
|
|
180
|
-
UsersIDModel.UsersIDs.push(element.id);
|
|
181
|
-
}
|
|
182
|
-
this.LookupGroupsService.DeleteLookupGroup(UsersIDModel).subscribe((result) => {
|
|
183
|
-
this.deleteLookupGroupList = [];
|
|
184
|
-
this.modalService.dismissAll();
|
|
185
|
-
let element = this.input;
|
|
186
|
-
element.ReinitializePaging();
|
|
187
|
-
}, (error) => {
|
|
188
|
-
});
|
|
176
|
+
///////////Destroy Observable //////////////////////
|
|
177
|
+
ngOnDestroy() {
|
|
178
|
+
this.requestHandlerService.destroyHandler();
|
|
189
179
|
}
|
|
190
180
|
}
|
|
191
|
-
LookupGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LookupGroupComponent, deps: [{ token: i1.
|
|
192
|
-
LookupGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LookupGroupComponent, selector: "lib-lookup-group", viewQueries: [{ propertyName: "input", first: true, predicate: ["LookupGroupPagingViewElement"], descendants: true }, { propertyName: "CloseLookupGroupModal", first: true, predicate: ["CloseLookupGroupModal"], descendants: true }, { propertyName: "CloseEditLookupGroupModal", first: true, predicate: ["CloseEditLookupGroupModal"], descendants: true }, { propertyName: "CloseDeleteLookupGroupModal", first: true, predicate: ["CloseDeleteLookupGroupModal"], descendants: true }, { propertyName: "CloseConfirmationModal", first: true, predicate: ["CloseConfirmationModal"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!-- Page Content -->\r\n <div *ngIf=\"ShowPageContent\" class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"IsFilterLoaded\">\r\n <form [formGroup]=\"LookupGroupsForm\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"LookupGroupsForm\"></BBSF-TextBox>\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddLookupGroupModal(AddLookupGroupModal)\">\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 <!--begin::LookupGroups 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-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\r\n <tr *ngFor=\"let LookupGroup of LookupGroupsPagingResult\">\r\n\r\n <td>\r\n <span *ngIf=\"language=='en'\" class=\"text-dark\">{{LookupGroup.name.english}}</span>\r\n <span *ngIf=\"language=='ar'\" class=\"text-dark\">{{LookupGroup.name.arabic}}</span>\r\n </td>\r\n\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditLookupGroupModal(LookupGroup,EditLookupGroupModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteLookupGroupModal(LookupGroup,deleteLookupGroupModal)\">\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=\"LookupGroupsPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::LookupGroups list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setLookupGroupListResult($event)\" *ngIf=\"IsFilterLoaded\" [options]=\"LookupGroupsPaging\"\r\n [group]=\"LookupGroupsForm\" #LookupGroupPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- Add Modal -->\r\n <ng-template #AddLookupGroupModal 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(\"Add\")}} {{utilityService.getResourceValue(\"LookupGroup\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"AddLookupGroupForm\" (ngSubmit)=\"addLookupGroup()\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualName\" [group]=\"AddLookupGroupForm\"></BBSF-MultiLingualTextBox>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseLookupGroupModal id=\"CloseLookupGroupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n\r\n\r\n <!-- Edit Modal -->\r\n <ng-template #EditLookupGroupModal 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(\"Edit\")}} {{utilityService.getResourceValue(\"LookupGroup\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"EditLookupGroupForm\" (ngSubmit)=\"editLookupGroup()\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditMultiLingualName\" [group]=\"EditLookupGroupForm\"></BBSF-MultiLingualTextBox>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseEditLookupGroupModal id=\"CloseEditLookupGroupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <!-- Delete Modal -->\r\n <ng-template #deleteLookupGroupModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Delete\")}} {{utilityService.getResourceValue(\"LookupGroup\")}}</h1>\r\n </div>\r\n <div class=\"notice d-flex bg-light-danger rounded border-danger border border-dashed mb-10 p-6\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\">\r\n <span [inlineSVG]=\"'./src/assets/images/gen044.svg'\"></span>\r\n </span>\r\n\r\n <div class=\"d-flex flex-stack flex-grow-1\">\r\n <div class=\"fw-bold\">\r\n <div class=\"fs-6 text-gray-700\">\r\n {{utilityService.getResourceValue(\"Delete_Question\")}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseDeleteLookupGroupModal id=\"CloseDeleteLookupGroupModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3 \" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"deleteLookupGroup()\"\r\n class=\"btn btn-light-danger btn-sm \">\r\n {{utilityService.getResourceValue(\"Delete\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i6.ɵs, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i6.ɵc, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
|
|
193
|
-
__decorate([
|
|
194
|
-
BlockUI()
|
|
195
|
-
], LookupGroupComponent.prototype, "blockUI", void 0);
|
|
181
|
+
LookupGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LookupGroupComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i3.LookupGroupsService }, { token: i4.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
182
|
+
LookupGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LookupGroupComponent, selector: "lib-lookup-group", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["LookupGroupPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!-- 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\" (OnChange)=\"filterLookupGroupList($event)\" [group]=\"lookupGroupsForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddLookupGroupModal(AddLookupGroupModal)\">\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 <!--begin::LookupGroups 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-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\r\n <tr *ngFor=\"let LookupGroup of filteredLookupGroupsPagingResult\">\r\n\r\n <td>\r\n <span class=\"text-dark\">{{LookupGroup.lookupGroupName}}</span>\r\n </td>\r\n\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditLookupGroupModal(LookupGroup.idEncrypted,EditLookupGroupModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteLookupGroupModal(LookupGroup.idEncrypted)\">\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=\"filteredLookupGroupsPagingResult.length == 0\">\r\n <td colspan=\"2\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::LookupGroups list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setLookupGroupListResult($event)\" *ngIf=\"isFilterLoaded\" [options]=\"lookupGroupsPaging\"\r\n [group]=\"lookupGroupsForm\" #LookupGroupPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- Add Modal -->\r\n <ng-template #AddLookupGroupModal 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(\"Add\")}} {{utilityService.getResourceValue(\"LookupGroup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addLookupGroupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addLookupGroupForm\"></BBSF-MultiLingualTextBox>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseLookupGroupModal id=\"CloseLookupGroupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </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\r\n </div>\r\n </ng-template>\r\n\r\n\r\n\r\n <!-- Edit Modal -->\r\n <ng-template #EditLookupGroupModal 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(\"Edit\")}} {{utilityService.getResourceValue(\"LookupGroup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editLookupGroupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editLookupGroupForm\"></BBSF-MultiLingualTextBox>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseEditLookupGroupModal id=\"CloseEditLookupGroupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </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\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\"\r\n#ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n\r\n\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i6.ɵs, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i6.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.ɵc, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i6.ɵw, selector: "BBSF-ConfirmationModal", inputs: ["options"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i10.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
|
|
196
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LookupGroupComponent, decorators: [{
|
|
197
184
|
type: Component,
|
|
198
185
|
args: [{
|
|
199
186
|
selector: 'lib-lookup-group',
|
|
200
187
|
templateUrl: './lookup-group.component.html'
|
|
201
188
|
}]
|
|
202
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
189
|
+
}], ctorParameters: function () { return [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i3.LookupGroupsService }, { type: i4.NgbModal }, { type: i2.RequestHandlerService }]; }, propDecorators: { pagingElement: [{
|
|
203
190
|
type: ViewChild,
|
|
204
191
|
args: ['LookupGroupPagingViewElement', { static: false }]
|
|
205
|
-
}],
|
|
206
|
-
type: ViewChild,
|
|
207
|
-
args: ['CloseLookupGroupModal', { static: false }]
|
|
208
|
-
}], CloseEditLookupGroupModal: [{
|
|
209
|
-
type: ViewChild,
|
|
210
|
-
args: ['CloseEditLookupGroupModal', { static: false }]
|
|
211
|
-
}], CloseDeleteLookupGroupModal: [{
|
|
212
|
-
type: ViewChild,
|
|
213
|
-
args: ['CloseDeleteLookupGroupModal', { static: false }]
|
|
214
|
-
}], CloseConfirmationModal: [{
|
|
192
|
+
}], ConfirmationModalControl: [{
|
|
215
193
|
type: ViewChild,
|
|
216
|
-
args: ['
|
|
217
|
-
}]
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekosT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLG9CQUFvQjtJQWlEL0IsWUFBb0IsV0FBdUIsRUFBUyxlQUErQixFQUFTLGNBQTZCLEVBQVMsb0JBQXlDLEVBQVMsa0JBQXFDLEVBQVMsbUJBQXdDLEVBQVUsWUFBc0I7UUFBdFIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBUyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FB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QW9CO3NHQUFwQixvQkFBb0IseW9CQ2ZqQyxvbVJBaUxBO0FEdEhhO0lBQVYsT0FBTyxFQUFFO3FEQUFvQjs0RkE1Q25CLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO2lCQUM3QzswUkFnQitELEtBQUs7c0JBQWxFLFNBQVM7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9KLHFCQUFxQjtzQkFBM0UsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT0sseUJBQXlCO3NCQUFuRixTQUFTO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJSSwyQkFBMkI7c0JBQXZGLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVFILHNCQUFzQjtzQkFBN0UsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRzNDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRW5nbGlzaEFyYWJpY0RUTywgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEJsb2NrVUksIE5nQmxvY2tVSSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEdyb3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBVc2Vyc0lEUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Vc2VyTW9kZWxzL1VzZXJzSURSZXF1ZXN0TW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cEdyb3Vwc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgVXRpbGl0eVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9va3VwLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9va3VwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFN1YmhlYWRlclRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdMb29rdXBHcm91cHMnKTtcclxuICBcclxuXHJcbiAgU2hvd1Rvb2xiYXIgPSB0cnVlOyBTaG93YnJlYWRDcnVtYiA9IGZhbHNlO1xyXG5cclxuICBBcGlVcmwgPSBcIi9hcGkvYWRtaW4vTG9va3VwR3JvdXAvXCJcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBMb29rdXBHcm91cHNGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBMb29rdXBHcm91cHNQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgVGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIElzRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgUHJvZHVjdGlvbk1vZGU6IGJvb2xlYW47XHJcbiAgQFZpZXdDaGlsZCgnTG9va3VwR3JvdXBQYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dDogRWxlbWVudFJlZjtcclxuXHJcblxyXG4gICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gICBBZGRMb29rdXBHcm91cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgTXVsdGlMaW5ndWFsTmFtZTpNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG5cclxuICAgQFZpZXdDaGlsZCgnQ2xvc2VMb29rdXBHcm91cE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIENsb3NlTG9va3VwR3JvdXBNb2RhbDogRWxlbWVudFJlZjtcclxuXHJcblxyXG4gICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBFZGl0TG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRWRpdE11bHRpTGluZ3VhbE5hbWU6TXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBMb29rdXBHcm91cElkOiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgnQ2xvc2VFZGl0TG9va3VwR3JvdXBNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDbG9zZUVkaXRMb29rdXBHcm91cE1vZGFsOiBFbGVtZW50UmVmO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVMb29rdXBHcm91cExpc3Q6IGFueVtdID0gW11cclxuICBAVmlld0NoaWxkKCdDbG9zZURlbGV0ZUxvb2t1cEdyb3VwTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ2xvc2VEZWxldGVMb29rdXBHcm91cE1vZGFsOiBFbGVtZW50UmVmO1xyXG5cclxuXHJcblxyXG4gIC8vQ29uZmlybWF0aW9uICBNb2RlbCBDb250cm9sc1xyXG4gIElzT3BlbkNvbmZpcm1hdGlvbk1vZGFsOiBib29sZWFuO1xyXG4gIENvbmZpcm1hdGlvbk1vZGFsVHlwZTogbnVtYmVyID0gMDtcclxuICBDb25maXJtYXRpb25NZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBWaWV3Q2hpbGQoJ0Nsb3NlQ29uZmlybWF0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ2xvc2VDb25maXJtYXRpb25Nb2RhbDogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gRGVjb3JhdG9yIHdpcmVzIHVwIGJsb2NrVUkgaW5zdGFuY2VcclxuICBAQmxvY2tVSSgpIGJsb2NrVUk6IE5nQmxvY2tVSTtcclxuICBTaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbGFuZ3VhZ2U6c3RyaW5nPVwiXCJcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTpBdXRoU2VydmljZSxwcml2YXRlIHBhZ2VJbmZvU2VydmljZTpQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyB1dGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSxwcml2YXRlIGJic2ZUcmFuc2xhdGVTZXJ2aWNlOkJCU0ZUcmFuc2xhdGVTZXJ2aWNlLHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOkVudmlyb25tZW50U2VydmljZSxwcml2YXRlIExvb2t1cEdyb3Vwc1NlcnZpY2U6IExvb2t1cEdyb3Vwc1NlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbClcclxuICB7IFxyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLlNob3dQYWdlQ29udGVudD10cnVlO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEdyb3Vwc1wiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icz1bXHJcbiAgICAgICB7dGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIikgLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZX0sXHJcbiAgICAgICB7dGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZX1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KT0+e1xyXG4gICAgICB0aGlzLmxhbmd1YWdlID0gZXZlbnQubGFuZztcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBhd2FpdCB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xyXG4gICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKClcclxuICAgIHRoaXMuTG9hZExpc3QoKTtcclxuICB9XHJcblxyXG5cclxuICBSZWluaXRpYWxpemVQZXJtaXNzaW9uc1BhZ2luZygpIHtcclxuICAgIGxldCBlbGVtZW50ID0gdGhpcy5pbnB1dCBhcyBhbnk7XHJcbiAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gIH1cclxuXHJcbiAgVXBkYXRlUGVybWlzc2lvbnNQYWdpbmcoKSB7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMuaW5wdXQgYXMgYW55O1xyXG4gICAgZWxlbWVudC5VcGRhdGVQYWdpbmcoKTtcclxuICB9XHJcblxyXG4gIHNldExvb2t1cEdyb3VwTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5TaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG5cclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVycygpIHtcclxuICAgdGhpcy5Mb29rdXBHcm91cHNGb3JtLmNvbnRyb2xzW1wic2VhcmNoVGV4dEJveFwiXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIGxldCBlbGVtZW50ID0gdGhpcy5pbnB1dCBhcyBhbnk7XHJcbiAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gIH1cclxuXHJcbiAgTG9hZExpc3QoKSB7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgICB0aGlzLkxvb2t1cEdyb3Vwc1BhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuTG9va3VwR3JvdXBzUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIHRoaXMuQXBpVXJsICsgJ0dldExvb2t1cEdyb3Vwc0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5Mb29rdXBHcm91cHNQYWdpbmcuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJzZWFyY2hUZXh0Qm94XCJdXHJcbiAgICAgIHRoaXMuTG9va3VwR3JvdXBzUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5UZXh0SW5wdXRGaWx0ZXJdXHJcbiAgICAgIHRoaXMuTG9va3VwR3JvdXBzUGFnaW5nLlZhbGlkYXRpb25Ub2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKClcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuSXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9LCAxMCk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNob3dBZGRMb29rdXBHcm91cE1vZGFsKEFkZExvb2t1cEdyb3VwTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLkFkZExvb2t1cEdyb3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICBcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuICBhZGRMb29rdXBHcm91cCgpIHtcclxuICAgIGlmICh0aGlzLkFkZExvb2t1cEdyb3VwRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLkFkZExvb2t1cEdyb3VwRm9ybS52YWx1ZTtcclxuICAgICAgbGV0IEFkZExvb2t1cEdyb3VwTW9kZWw6TG9va3VwR3JvdXBNb2RlbD0gbmV3IExvb2t1cEdyb3VwTW9kZWwoKSA7XHJcbiAgICAgIEFkZExvb2t1cEdyb3VwTW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5OYW1lLkFyYWJpY1ZhbHVlO1xyXG4gICAgICBBZGRMb29rdXBHcm91cE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLk5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gICAgICB0aGlzLkxvb2t1cEdyb3Vwc1NlcnZpY2UuQWRkTG9va3VwR3JvdXAoQWRkTG9va3VwR3JvdXBNb2RlbCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmlucHV0IGFzIGFueTtcclxuICAgICAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gICAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgICBcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzaG93RWRpdExvb2t1cEdyb3VwTW9kYWwoTG9va3VwR3JvdXA6IGFueSxFZGl0TG9va3VwR3JvdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLkVkaXRMb29rdXBHcm91cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICBsZXQgTmFtZT1uZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgTmFtZS5BcmFiaWM9TG9va3VwR3JvdXAubmFtZS5hcmFiaWM7XHJcbiAgICBOYW1lLkVuZ2xpc2g9TG9va3VwR3JvdXAubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgIHRoaXMuRWRpdE11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRWRpdE11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiRWRpdE5hbWVcIjtcclxuICAgIHRoaXMuRWRpdE11bHRpTGluZ3VhbE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5FZGl0TXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuRWRpdE11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLkVkaXRNdWx0aUxpbmd1YWxOYW1lLlZhbHVlID0gTmFtZTtcclxuXHJcbiAgICB0aGlzLkxvb2t1cEdyb3VwSWQgPSBMb29rdXBHcm91cC5pZFxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRpdExvb2t1cEdyb3VwTW9kYWwpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG5cclxuICB9XHJcblxyXG4gIGVkaXRMb29rdXBHcm91cCgpIHtcclxuICAgIGlmICh0aGlzLkVkaXRMb29rdXBHcm91cEZvcm0uaW52YWxpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0TG9va3VwR3JvdXBGb3JtLnZhbHVlO1xyXG4gICAgICBsZXQgRWRpdExvb2t1cEdyb3VwTW9kZWwgPSBuZXcgTG9va3VwR3JvdXBNb2RlbCgpO1xyXG4gICAgICBFZGl0TG9va3VwR3JvdXBNb2RlbC5JZCA9IHRoaXMuTG9va3VwR3JvdXBJZDtcclxuICAgICAgRWRpdExvb2t1cEdyb3VwTW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdE5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gICAgICBFZGl0TG9va3VwR3JvdXBNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpY1ZhbHVlO1xyXG4gICAgICB0aGlzLkxvb2t1cEdyb3Vwc1NlcnZpY2UuRWRpdExvb2t1cEdyb3VwKEVkaXRMb29rdXBHcm91cE1vZGVsKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcclxuICAgICAgICBsZXQgZWxlbWVudCA9IHRoaXMuaW5wdXQgYXMgYW55O1xyXG4gICAgICAgIGVsZW1lbnQuVXBkYXRlUGFnaW5nKCk7XHJcbiAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNob3dEZWxldGVMb29rdXBHcm91cE1vZGFsKExvb2t1cEdyb3VwOiBhbnksIERlbGV0ZUxvb2t1cEdyb3VwTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwTGlzdCA9IFtdXHJcbiAgICB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwTGlzdC5wdXNoKExvb2t1cEdyb3VwKTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRGVsZXRlTG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwR3JvdXAoKSB7XHJcbiAgICBsZXQgIFVzZXJzSURNb2RlbDpVc2Vyc0lEUmVxdWVzdE1vZGVsPSBuZXcgVXNlcnNJRFJlcXVlc3RNb2RlbCgpIDtcclxuICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5kZWxldGVMb29rdXBHcm91cExpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kZWxldGVMb29rdXBHcm91cExpc3RbaW5kZXhdO1xyXG4gICAgICAgVXNlcnNJRE1vZGVsLlVzZXJzSURzLnB1c2goZWxlbWVudC5pZClcclxuICAgICAgIFxyXG4gICAgIH1cclxuICAgIHRoaXMuTG9va3VwR3JvdXBzU2VydmljZS5EZWxldGVMb29rdXBHcm91cChVc2Vyc0lETW9kZWwgKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcbiAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5pbnB1dCBhcyBhbnk7XHJcbiAgICAgIGVsZW1lbnQuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG4gIDwhLS0gUGFnZSBDb250ZW50IC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJTaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJJc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJMb29rdXBHcm91cHNGb3JtXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwic2VhcmNoVGV4dEJveFwiIFtncm91cF09XCJMb29rdXBHcm91cHNGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgIChjbGljayk9XCJzaG93QWRkTG9va3VwR3JvdXBNb2RhbChBZGRMb29rdXBHcm91cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgTG9va3VwR3JvdXAgb2YgTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxhbmd1YWdlPT0nZW4nXCIgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e0xvb2t1cEdyb3VwLm5hbWUuZW5nbGlzaH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxhbmd1YWdlPT0nYXInXCIgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e0xvb2t1cEdyb3VwLm5hbWUuYXJhYmljfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdExvb2t1cEdyb3VwTW9kYWwoTG9va3VwR3JvdXAsRWRpdExvb2t1cEdyb3VwTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZUxvb2t1cEdyb3VwTW9kYWwoTG9va3VwR3JvdXAsZGVsZXRlTG9va3VwR3JvdXBNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cIkxvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICA8IS0tZW5kOjpMb29rdXBHcm91cHMgbGlzdC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0TG9va3VwR3JvdXBMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cIklzRmlsdGVyTG9hZGVkXCIgW29wdGlvbnNdPVwiTG9va3VwR3JvdXBzUGFnaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cIkxvb2t1cEdyb3Vwc0Zvcm1cIiAjTG9va3VwR3JvdXBQYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS0gQWRkIE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjQWRkTG9va3VwR3JvdXBNb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEdyb3VwXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJBZGRMb29rdXBHcm91cEZvcm1cIiAobmdTdWJtaXQpPVwiYWRkTG9va3VwR3JvdXAoKVwiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJBZGRMb29rdXBHcm91cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNDbG9zZUxvb2t1cEdyb3VwTW9kYWwgaWQ9XCJDbG9zZUxvb2t1cEdyb3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjRWRpdExvb2t1cEdyb3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkVkaXRMb29rdXBHcm91cEZvcm1cIiAobmdTdWJtaXQpPVwiZWRpdExvb2t1cEdyb3VwKClcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIkVkaXRNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cIkVkaXRMb29rdXBHcm91cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNDbG9zZUVkaXRMb29rdXBHcm91cE1vZGFsIGlkPVwiQ2xvc2VFZGl0TG9va3VwR3JvdXBNb2RhbFwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX0gPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gIDwhLS0gRGVsZXRlICBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI2RlbGV0ZUxvb2t1cEdyb3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBHcm91cFwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpY2UgZC1mbGV4IGJnLWxpZ2h0LWRhbmdlciByb3VuZGVkIGJvcmRlci1kYW5nZXIgYm9yZGVyIGJvcmRlci1kYXNoZWQgbWItMTAgcC02XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0ydHggc3ZnLWljb24tZGFuZ2VyIG1lLTRcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvZ2VuMDQ0LnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy02IHRleHQtZ3JheS03MDBcIj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVfUXVlc3Rpb25cIil9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZURlbGV0ZUxvb2t1cEdyb3VwTW9kYWwgaWQ9XCJDbG9zZURlbGV0ZUxvb2t1cEdyb3VwTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gbWUtMyBcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlTG9va3VwR3JvdXAoKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQtZGFuZ2VyIGJ0bi1zbSBcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuIl19
|
|
194
|
+
args: ['ConfirmationModalControl', { static: false }]
|
|
195
|
+
}] } });
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtZ3JvdXAvbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaE0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFZaEYsTUFBTSxPQUFPLG9CQUFvQjtJQW9DL0IsWUFFWSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBd0MsRUFDeEMsWUFBc0IsRUFDdEIscUJBQTJDO1FBSjNDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBdkN4RCxtQkFBbUI7UUFD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QywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEVuZ2xpc2hBcmFiaWNEVE8sIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEdyb3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cEdyb3Vwc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9va3VwLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWdyb3VwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9va3VwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuXHJcblxyXG4gLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIEFwaVVybCA9IHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5BcGlVcmxcclxuXHJcbiAgIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEdyb3Vwc0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEdyb3Vwc1BhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICB0ZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm9kdWN0aW9uTW9kZTogYm9vbGVhbjtcclxuICBAVmlld0NoaWxkKCdMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDtcclxuXHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkTG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG5cclxuICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBlZGl0TG9va3VwR3JvdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgbG9va3VwR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVkTG9va3VwR3JvdXBJZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yXHJcbiAgICAoXHJcbiAgICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyAgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGxvb2t1cEdyb3Vwc1NlcnZpY2U6IExvb2t1cEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlXHJcbiAgICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBzXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIC8vaW5pdGlhbGl6ZSBwYWdlXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldExvb2t1cEdyb3VwTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdCA9IHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0O1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuICAgXHJcbiAvL0ZpbHRlciBmdW5jdGlvbnNcclxuICByZXNldEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc0Zvcm0uY29udHJvbHNbXCJzZWFyY2hUZXh0Qm94XCJdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgbGV0IGVsZW1lbnQgPSB0aGlzLnBhZ2luZ0VsZW1lbnQgYXMgYW55O1xyXG4gICAgZWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZy5BY3Rpb25Qb3N0VVJMID10aGlzLkFwaVVybCArICdHZXRMb29rdXBHcm91cHNCeUZpbHRlcic7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwc1BhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIl1cclxuICAgIHRoaXMubG9va3VwR3JvdXBzUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcblxyXG4gICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBHcm91cCBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dBZGRMb29rdXBHcm91cE1vZGFsKEFkZExvb2t1cEdyb3VwTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hZGRMb29rdXBHcm91cEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtXHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTG9va3VwR3JvdXBNb2RlbDtcclxuICAgIHRoaXMuYWRkTG9va3VwR3JvdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEdyb3VwRnVuY3Rpb247XHJcbiAgICB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBudWxsO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRBZGRMb29rdXBHcm91cE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmFkZExvb2t1cEdyb3VwRm9ybS52YWx1ZTtcclxuICAgIGxldCBBZGRNb2RlbDogTG9va3VwR3JvdXBNb2RlbCA9IG5ldyBMb29rdXBHcm91cE1vZGVsKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljVmFsdWU7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hWYWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZExvb2t1cEdyb3VwRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5hZGRMb29rdXBHcm91cChBZGRNb2RlbCk7XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExvb2t1cCBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93RWRpdExvb2t1cEdyb3VwTW9kYWwobG9va3VwR3JvdXBJRDogYW55LCBlZGl0TG9va3VwR3JvdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtXHJcbiAgICB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBHcm91cE1vZGVsO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBHcm91cEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwR3JvdXBGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcblxyXG5cclxuICAgIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5nZXRMb29rdXBHcm91cChsb29rdXBHcm91cElEKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBMb29rdXBHcm91cCA9IHJlc3VsdC5tb2RlbCBhcyBhbnk7XHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5BcmFiaWMgPSBMb29rdXBHcm91cC5uYW1lLmFyYWJpYztcclxuICAgICAgbmFtZS5FbmdsaXNoID0gTG9va3VwR3JvdXAubmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIkVkaXROYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLlZhbHVlID0gbmFtZTtcclxuXHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBJZCA9TG9va3VwR3JvdXAuaWRcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0TG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gIGdldEVkaXRMb29rdXBHcm91cE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRMb29rdXBHcm91cEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IExvb2t1cEdyb3VwTW9kZWwoKTtcclxuICAgIEVkaXRNb2RlbC5JZCA9IHRoaXMubG9va3VwR3JvdXBJZDtcclxuICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5FbmdsaXNoVmFsdWU7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5BcmFiaWNWYWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwR3JvdXBGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwR3JvdXBzU2VydmljZS5lZGl0TG9va3VwR3JvdXAoRWRpdE1vZGVsKVxyXG4gIH1cclxuICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICAgLy8vLy8vLy8vLy9TdGFydCBvZiBkZWxldGUgTG9va3VwR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cEdyb3VwTW9kYWwobG9va3VwR3JvdXBJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQgPSBsb29rdXBHcm91cElkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZExvb2t1cEdyb3VwSWQpO1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZUxvb2t1cEdyb3VwO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwR3JvdXAgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBHcm91cHNTZXJ2aWNlLmRlbGV0ZUxvb2t1cEdyb3VwKGlkKVxyXG4gIH1cclxuICAgLy8vLy8vLy8vLy9FbmQgb2YgZGVsZXRlIExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuICBcclxuICAvKipGdW5jdGlvbk5hbWU6ZmlsdGVyTG9va3VwR3JvdXBMaXN0Ki9cclxuICAvKipEZWNsYXJhdGlvbjpmdW5jdGlvbiB0byBmaWx0ZXIgTG9va3VwR3JvdXBMaXN0IGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEdyb3VwTGlzdChzZWFyY2hWYWx1ZSl7XHJcbiAgICBpZihzZWFyY2hWYWx1ZSlcclxuICAgIHRoaXMuZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHQ9IHRoaXMubG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0LmZpbHRlcihpdGVtID0+IGl0ZW0ubG9va3VwR3JvdXBOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEdyb3Vwc1BhZ2luZ1Jlc3VsdD0gdGhpcy5sb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgIChPbkNoYW5nZSk9XCJmaWx0ZXJMb29rdXBHcm91cExpc3QoJGV2ZW50KVwiIFtncm91cF09XCJsb29rdXBHcm91cHNGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgIChjbGljayk9XCJzaG93QWRkTG9va3VwR3JvdXBNb2RhbChBZGRMb29rdXBHcm91cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgTG9va3VwR3JvdXAgb2YgZmlsdGVyZWRMb29rdXBHcm91cHNQYWdpbmdSZXN1bHRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tMb29rdXBHcm91cC5sb29rdXBHcm91cE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0TG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZCxFZGl0TG9va3VwR3JvdXBNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwR3JvdXBNb2RhbChMb29rdXBHcm91cC5pZEVuY3J5cHRlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwR3JvdXBzUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgIDwhLS1lbmQ6Okxvb2t1cEdyb3VwcyBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBHcm91cExpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIiBbb3B0aW9uc109XCJsb29rdXBHcm91cHNQYWdpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwibG9va3VwR3JvdXBzRm9ybVwiICNMb29rdXBHcm91cFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBBZGQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNBZGRMb29rdXBHcm91cE1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImFkZExvb2t1cEdyb3VwRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBHcm91cE1vZGFsIGlkPVwiQ2xvc2VMb29rdXBHcm91cE1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjRWRpdExvb2t1cEdyb3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwR3JvdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBHcm91cEZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJlZGl0TG9va3VwR3JvdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VFZGl0TG9va3VwR3JvdXBNb2RhbCBpZD1cIkNsb3NlRWRpdExvb2t1cEdyb3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcblxyXG5cclxuIl19
|