@bnsights/bbsf-admin-portal 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/bnsights-bbsf-admin-portal-1.1.6.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +1 -1
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +146 -146
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +152 -152
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +1 -1
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +7 -7
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +12 -12
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +19 -19
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +12 -12
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +102 -102
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +7 -7
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +271 -271
- package/esm2022/lib/Pages/core/auth.module.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +3 -3
- package/esm2022/lib/Pages/departments/department/department.component.mjs +48 -48
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +32 -32
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +52 -52
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +100 -100
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +151 -151
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +72 -72
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +27 -27
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +1 -1
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +84 -84
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +56 -56
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +58 -58
- package/esm2022/lib/Pages/home/home.component.mjs +7 -7
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +129 -129
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +14 -14
- package/esm2022/lib/Pages/license/license/license.component.mjs +11 -11
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +41 -41
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +125 -125
- package/esm2022/lib/Pages/logs/log/log.component.mjs +11 -11
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +120 -120
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +34 -34
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +83 -83
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +35 -35
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +53 -53
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +50 -50
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +16 -16
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +135 -135
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +186 -186
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +122 -122
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +120 -120
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +29 -29
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +57 -57
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +79 -79
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +35 -35
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +27 -27
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +36 -36
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +74 -74
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +8 -8
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +89 -89
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +9 -9
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +222 -222
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +257 -257
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +25 -25
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +24 -24
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +6 -6
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +52 -52
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +16 -16
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +20 -20
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +69 -69
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +180 -180
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +3 -3
- package/esm2022/lib/Pages/users/users.component.mjs +190 -190
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +176 -176
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +364 -364
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +67 -67
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +227 -227
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +31 -31
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +56 -56
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +5187 -5187
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +0 -1
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +2 -2
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +1 -1
- package/package.json +3 -3
- package/esm2022/bnsights-test-test-admin-portal.mjs +0 -5
- package/fesm2022/bnsights-test-test-admin-portal.mjs +0 -27181
- package/fesm2022/bnsights-test-test-admin-portal.mjs.map +0 -1
package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs
CHANGED
|
@@ -52,13 +52,13 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
52
52
|
let ResultModel = this.EditTemplateForm.value;
|
|
53
53
|
let EditModel = new DocumentTemplateDTO();
|
|
54
54
|
EditModel.ID_GUID = this.TemplateId;
|
|
55
|
-
EditModel.Name.
|
|
56
|
-
EditModel.Name.
|
|
55
|
+
EditModel.Name.arabic = ResultModel.Name.Arabic;
|
|
56
|
+
EditModel.Name.english = ResultModel.Name.English;
|
|
57
57
|
EditModel.SysName = ResultModel.SysName;
|
|
58
58
|
EditModel.DocumentHeaderAndFooterTemplateID_GUID =
|
|
59
59
|
ResultModel.DocumentHeaderAndFooterTemplateID_GUID;
|
|
60
|
-
EditModel.Description.
|
|
61
|
-
EditModel.Description.
|
|
60
|
+
EditModel.Description.english = ResultModel.Description.English;
|
|
61
|
+
EditModel.Description.arabic = ResultModel.Description.Arabic;
|
|
62
62
|
EditModel.OrganizationID_GUID = ResultModel.OrganizationID_GUID;
|
|
63
63
|
EditModel.CategoryItemID_GUID = ResultModel.CategoryItemID_GUID;
|
|
64
64
|
paramArray.push(EditModel);
|
|
@@ -73,8 +73,8 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
73
73
|
let ExportDocumentTemplateModel = new DocumentExportDTO();
|
|
74
74
|
ExportDocumentTemplateModel.ID_GUID = this.TemplateId;
|
|
75
75
|
let result = [];
|
|
76
|
-
for (let index = 0; index < this.addKeyValueRepeaterOptions.
|
|
77
|
-
const element = this.addKeyValueRepeaterOptions.
|
|
76
|
+
for (let index = 0; index < this.addKeyValueRepeaterOptions.repeaterValue.length; index++) {
|
|
77
|
+
const element = this.addKeyValueRepeaterOptions.repeaterValue[index];
|
|
78
78
|
if (element.Key && element.Value) {
|
|
79
79
|
let item = new DocumentExportItemDTO();
|
|
80
80
|
item.Key = element.Key;
|
|
@@ -154,14 +154,14 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
154
154
|
.subscribe((result) => {
|
|
155
155
|
var Value = result;
|
|
156
156
|
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
157
|
-
this.GenerateCodeTextArea.
|
|
158
|
-
this.GenerateCodeTextArea.
|
|
157
|
+
this.GenerateCodeTextArea.name = 'GenerateCodeTextArea';
|
|
158
|
+
this.GenerateCodeTextArea.value = Value.val.toString();
|
|
159
159
|
this.ValueToCopy = Value.val.toString();
|
|
160
|
-
this.GenerateCodeTextArea.
|
|
161
|
-
this.GenerateCodeTextArea.
|
|
162
|
-
this.GenerateCodeTextArea.
|
|
163
|
-
this.GenerateCodeTextArea.
|
|
164
|
-
this.GenerateCodeTextArea.
|
|
160
|
+
this.GenerateCodeTextArea.isDisabled = true;
|
|
161
|
+
this.GenerateCodeTextArea.hideLabel = true;
|
|
162
|
+
this.GenerateCodeTextArea.rows = 20;
|
|
163
|
+
this.GenerateCodeTextArea.cols = 20;
|
|
164
|
+
this.GenerateCodeTextArea.maxLength = 1000000;
|
|
165
165
|
this.modalService.open(GenerateCodeModal);
|
|
166
166
|
});
|
|
167
167
|
}
|
|
@@ -172,14 +172,14 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
172
172
|
.subscribe((result) => {
|
|
173
173
|
var Value = result;
|
|
174
174
|
this.GenerateCodeTextArea = new TextAreaOptions();
|
|
175
|
-
this.GenerateCodeTextArea.
|
|
176
|
-
this.GenerateCodeTextArea.
|
|
175
|
+
this.GenerateCodeTextArea.name = 'GenerateCodeTextArea';
|
|
176
|
+
this.GenerateCodeTextArea.value = Value.val.toString();
|
|
177
177
|
this.ValueToCopy = Value.val.toString();
|
|
178
|
-
this.GenerateCodeTextArea.
|
|
179
|
-
this.GenerateCodeTextArea.
|
|
180
|
-
this.GenerateCodeTextArea.
|
|
181
|
-
this.GenerateCodeTextArea.
|
|
182
|
-
this.GenerateCodeTextArea.
|
|
178
|
+
this.GenerateCodeTextArea.isDisabled = true;
|
|
179
|
+
this.GenerateCodeTextArea.hideLabel = true;
|
|
180
|
+
this.GenerateCodeTextArea.rows = 20;
|
|
181
|
+
this.GenerateCodeTextArea.cols = 20;
|
|
182
|
+
this.GenerateCodeTextArea.maxLength = 1000000;
|
|
183
183
|
this.modalService.open(GenerateCodeModal);
|
|
184
184
|
});
|
|
185
185
|
}
|
|
@@ -201,65 +201,65 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
201
201
|
this.CategoryList = lists.lookUpItemsCategory;
|
|
202
202
|
this.EditTemplateForm = new FormGroup({});
|
|
203
203
|
this.EditTemplateFormOptions = new FormOptions();
|
|
204
|
-
this.EditTemplateFormOptions.
|
|
205
|
-
this.EditTemplateFormOptions.
|
|
204
|
+
this.EditTemplateFormOptions.formGroup = this.EditTemplateForm;
|
|
205
|
+
this.EditTemplateFormOptions.getModelFunction =
|
|
206
206
|
this.getEditTemplateModel;
|
|
207
|
-
this.EditTemplateFormOptions.
|
|
207
|
+
this.EditTemplateFormOptions.serviceSubmitFunction =
|
|
208
208
|
this.getEditTemplateFunction;
|
|
209
209
|
let Name = new EnglishArabicDTO();
|
|
210
|
-
Name.
|
|
211
|
-
Name.
|
|
210
|
+
Name.arabic = template.name.arabic;
|
|
211
|
+
Name.english = template.name.english;
|
|
212
212
|
this.EditName = new MultiLingualTextBoxOptions();
|
|
213
|
-
this.EditName.
|
|
214
|
-
this.EditName.
|
|
215
|
-
this.EditName.
|
|
216
|
-
this.EditName.
|
|
217
|
-
this.EditName.
|
|
218
|
-
this.EditName.
|
|
213
|
+
this.EditName.name = 'Name';
|
|
214
|
+
this.EditName.arabicLabelKey = 'NameInArabic';
|
|
215
|
+
this.EditName.englishLabelKey = 'NameInEnglish';
|
|
216
|
+
this.EditName.isRequired = true;
|
|
217
|
+
this.EditName.value = Name;
|
|
218
|
+
this.EditName.maxLength = 100;
|
|
219
219
|
this.EditSysName = new TextBoxOptions();
|
|
220
|
-
this.EditSysName.
|
|
221
|
-
this.EditSysName.
|
|
222
|
-
this.EditSysName.
|
|
223
|
-
this.EditSysName.
|
|
224
|
-
this.EditSysName.
|
|
220
|
+
this.EditSysName.name = 'SysName';
|
|
221
|
+
this.EditSysName.labelKey = 'SysName';
|
|
222
|
+
this.EditSysName.type = InputType.Text;
|
|
223
|
+
this.EditSysName.value = template.sysName;
|
|
224
|
+
this.EditSysName.maxLength = 100;
|
|
225
225
|
let description = new EnglishArabicDTO();
|
|
226
|
-
description.
|
|
227
|
-
description.
|
|
226
|
+
description.arabic = template.description.arabic;
|
|
227
|
+
description.english = template.description.english;
|
|
228
228
|
this.EditDescription = new MultiLingualTextAreaOptions();
|
|
229
|
-
this.EditDescription.
|
|
230
|
-
this.EditDescription.
|
|
231
|
-
this.EditDescription.
|
|
232
|
-
this.EditDescription.
|
|
233
|
-
this.EditDescription.
|
|
229
|
+
this.EditDescription.name = 'Description';
|
|
230
|
+
this.EditDescription.arabicLabelKey = 'DescriptionInArabic';
|
|
231
|
+
this.EditDescription.englishLabelKey = 'DescriptionInEnglish';
|
|
232
|
+
this.EditDescription.value = description;
|
|
233
|
+
this.EditDescription.maxLength = 250;
|
|
234
234
|
this.EditOrganization = new DropdownOptions();
|
|
235
|
-
this.EditOrganization.
|
|
236
|
-
this.EditOrganization.
|
|
237
|
-
this.EditOrganization.
|
|
238
|
-
this.EditOrganization.
|
|
239
|
-
this.EditOrganization.
|
|
240
|
-
this.EditOrganization.
|
|
241
|
-
this.EditOrganization.
|
|
242
|
-
this.EditOrganization.
|
|
235
|
+
this.EditOrganization.name = 'OrganizationID_GUID';
|
|
236
|
+
this.EditOrganization.labelKey = 'Organization';
|
|
237
|
+
this.EditOrganization.dataSource = this.OrganizationList;
|
|
238
|
+
this.EditOrganization.singleSelection = true;
|
|
239
|
+
this.EditOrganization.allowSearchFilter = true;
|
|
240
|
+
this.EditOrganization.placeholder = '';
|
|
241
|
+
this.EditOrganization.isRequired = true;
|
|
242
|
+
this.EditOrganization.selectedItems =
|
|
243
243
|
template.organizationID_GUID?.toLowerCase();
|
|
244
244
|
this.EditMasterLayout = new DropdownOptions();
|
|
245
|
-
this.EditMasterLayout.
|
|
246
|
-
this.EditMasterLayout.
|
|
247
|
-
this.EditMasterLayout.
|
|
248
|
-
this.EditMasterLayout.
|
|
249
|
-
this.EditMasterLayout.
|
|
250
|
-
this.EditMasterLayout.
|
|
251
|
-
this.EditMasterLayout.
|
|
252
|
-
this.EditMasterLayout.
|
|
245
|
+
this.EditMasterLayout.name = 'DocumentHeaderAndFooterTemplateID_GUID';
|
|
246
|
+
this.EditMasterLayout.labelKey = 'MasterLayout';
|
|
247
|
+
this.EditMasterLayout.dataSource = this.MasterLayoutList;
|
|
248
|
+
this.EditMasterLayout.singleSelection = true;
|
|
249
|
+
this.EditMasterLayout.allowSearchFilter = true;
|
|
250
|
+
this.EditMasterLayout.placeholder = '';
|
|
251
|
+
this.EditMasterLayout.isRequired = true;
|
|
252
|
+
this.EditMasterLayout.selectedItems =
|
|
253
253
|
template.documentHeaderAndFooterTemplateID_GUID?.toLowerCase();
|
|
254
254
|
this.EditCategory = new DropdownOptions();
|
|
255
|
-
this.EditCategory.
|
|
256
|
-
this.EditCategory.
|
|
257
|
-
this.EditCategory.
|
|
258
|
-
this.EditCategory.
|
|
259
|
-
this.EditCategory.
|
|
260
|
-
this.EditCategory.
|
|
261
|
-
this.EditCategory.
|
|
262
|
-
this.EditCategory.
|
|
255
|
+
this.EditCategory.name = 'CategoryItemID_GUID';
|
|
256
|
+
this.EditCategory.labelKey = 'Category';
|
|
257
|
+
this.EditCategory.dataSource = this.CategoryList;
|
|
258
|
+
this.EditCategory.singleSelection = true;
|
|
259
|
+
this.EditCategory.allowSearchFilter = true;
|
|
260
|
+
this.EditCategory.placeholder = '';
|
|
261
|
+
this.EditCategory.isRequired = true;
|
|
262
|
+
this.EditCategory.selectedItems =
|
|
263
263
|
template.categoryItemID_GUID?.toLowerCase();
|
|
264
264
|
this.modalService.open(EditTemplateModal);
|
|
265
265
|
this.utilityService.stopBlockUI();
|
|
@@ -270,49 +270,49 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
270
270
|
this.exportType = type;
|
|
271
271
|
this.TestExportDocumentForm = new FormGroup({});
|
|
272
272
|
this.TestExportDocumentFormOptions = new FormOptions();
|
|
273
|
-
this.TestExportDocumentFormOptions.
|
|
274
|
-
this.TestExportDocumentFormOptions.
|
|
273
|
+
this.TestExportDocumentFormOptions.formGroup = this.TestExportDocumentForm;
|
|
274
|
+
this.TestExportDocumentFormOptions.getModelFunction =
|
|
275
275
|
this.getTestExportDocumentModel;
|
|
276
|
-
this.TestExportDocumentFormOptions.
|
|
276
|
+
this.TestExportDocumentFormOptions.serviceSubmitFunction =
|
|
277
277
|
this.getTestExportDocumentFunction;
|
|
278
|
-
this.TestExportDocumentFormOptions.
|
|
278
|
+
this.TestExportDocumentFormOptions.onSuccessHandler =
|
|
279
279
|
this.onSuccessExportHandler;
|
|
280
|
-
this.TestExportDocumentFormOptions.
|
|
280
|
+
this.TestExportDocumentFormOptions.disableSuccessNotification = true;
|
|
281
281
|
let Key = new TextBoxOptions();
|
|
282
|
-
Key.
|
|
283
|
-
Key.
|
|
284
|
-
Key.
|
|
285
|
-
Key.
|
|
282
|
+
Key.name = 'Key';
|
|
283
|
+
Key.hideLabel = true;
|
|
284
|
+
Key.viewType = ControlLayout.Vertical;
|
|
285
|
+
Key.type = InputType.Text;
|
|
286
286
|
let Value = new TextBoxOptions();
|
|
287
|
-
Value.
|
|
288
|
-
Value.
|
|
289
|
-
Value.
|
|
290
|
-
Value.
|
|
287
|
+
Value.name = 'Value';
|
|
288
|
+
Value.hideLabel = true;
|
|
289
|
+
Value.viewType = ControlLayout.Vertical;
|
|
290
|
+
Value.type = InputType.Text;
|
|
291
291
|
let KeyRepeater = new RepeaterField();
|
|
292
|
-
KeyRepeater.
|
|
293
|
-
KeyRepeater.
|
|
294
|
-
KeyRepeater.
|
|
292
|
+
KeyRepeater.controlType = DataType.Text;
|
|
293
|
+
KeyRepeater.controlOptions = Key;
|
|
294
|
+
KeyRepeater.headerTitle = this.utilityService.getResourceValue('Key');
|
|
295
295
|
let ValueRepeater = new RepeaterField();
|
|
296
|
-
ValueRepeater.
|
|
297
|
-
ValueRepeater.
|
|
298
|
-
ValueRepeater.
|
|
296
|
+
ValueRepeater.controlType = DataType.Text;
|
|
297
|
+
ValueRepeater.controlOptions = Value;
|
|
298
|
+
ValueRepeater.headerTitle = this.utilityService.getResourceValue('Value');
|
|
299
299
|
this.addKeyValueRepeaterOptions = new RepeaterOptions();
|
|
300
|
-
this.addKeyValueRepeaterOptions.
|
|
301
|
-
this.addKeyValueRepeaterOptions.
|
|
302
|
-
this.addKeyValueRepeaterOptions.
|
|
300
|
+
this.addKeyValueRepeaterOptions.isRequired = false;
|
|
301
|
+
this.addKeyValueRepeaterOptions.name = 'values';
|
|
302
|
+
this.addKeyValueRepeaterOptions.deleteButtonExtraClasses =
|
|
303
303
|
'btn btn-danger btn-sm btn-icon';
|
|
304
|
-
this.addKeyValueRepeaterOptions.
|
|
305
|
-
this.addKeyValueRepeaterOptions.
|
|
304
|
+
this.addKeyValueRepeaterOptions.deleteButtonText = `<i class="fa fa-trash"></i>`;
|
|
305
|
+
this.addKeyValueRepeaterOptions.repeaterTableExtraClasses =
|
|
306
306
|
'table align-middle table-row-dashed fs-6 gy-9 dataTable no-footer validation-table-text';
|
|
307
|
-
this.addKeyValueRepeaterOptions.
|
|
307
|
+
this.addKeyValueRepeaterOptions.repeaterTableRowExtraClasses =
|
|
308
308
|
'text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0';
|
|
309
|
-
this.addKeyValueRepeaterOptions.
|
|
310
|
-
this.addKeyValueRepeaterOptions.
|
|
309
|
+
this.addKeyValueRepeaterOptions.actionLabelKey = 'Action';
|
|
310
|
+
this.addKeyValueRepeaterOptions.addButtonExtraClasses =
|
|
311
311
|
'btn btn-primary btn-block';
|
|
312
|
-
this.addKeyValueRepeaterOptions.
|
|
313
|
-
this.addKeyValueRepeaterOptions.
|
|
314
|
-
this.addKeyValueRepeaterOptions.
|
|
315
|
-
this.addKeyValueRepeaterOptions.
|
|
312
|
+
this.addKeyValueRepeaterOptions.addButtonText = `<i class="fa fa-plus"></i>${this.utilityService.getResourceValue('Add')}`;
|
|
313
|
+
this.addKeyValueRepeaterOptions.minRequiredItems = 1;
|
|
314
|
+
this.addKeyValueRepeaterOptions.repeaterValue = [];
|
|
315
|
+
this.addKeyValueRepeaterOptions.repeaterStructure = [
|
|
316
316
|
KeyRepeater,
|
|
317
317
|
ValueRepeater,
|
|
318
318
|
];
|
|
@@ -323,10 +323,10 @@ export class DocumentTemplateInfoComponent extends AppBaseComponent {
|
|
|
323
323
|
this.requestHandlerService.destroyHandler();
|
|
324
324
|
}
|
|
325
325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentTemplateInfoComponent, deps: [{ token: i0.Injector }, { token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.ClipboardService }, { token: i3.DocumentTemplateService }, { token: i4.ActivatedRoute }, { token: i5.PageInfoService }, { token: i6.NgbModal }, { token: i7.DatePipe }, { token: i1.RequestHandlerService }, { token: i1.WordDocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
326
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DocumentTemplateInfoComponent, selector: "lib-document-template-info", usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\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\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal 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\r\n 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(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal 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(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i10.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i10.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { kind: "component", type: i10.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["OnChange"] }, { kind: "component", type: i10.RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: ["group", "options"] }, { kind: "directive", type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DocumentTemplateInfoComponent, selector: "lib-document-template-info", usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\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\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal 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\r\n 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(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal 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(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i10.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i10.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i10.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i10.RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: ["group", "options"] }, { kind: "directive", type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
|
|
327
327
|
}
|
|
328
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DocumentTemplateInfoComponent, decorators: [{
|
|
329
329
|
type: Component,
|
|
330
330
|
args: [{ selector: 'lib-document-template-info', template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\" *ngIf=\"isDataLoaded\">\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\">\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showEditTemplateModal(EditTemplateModal)\">\r\n <i class=\"fa fa fa-edit\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal)\">\r\n <i class=\"fa fa-file-pdf\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} PDF</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-light-primary\" (click)=\"showTestExportDocumentModal(ExportDocumentModal,2)\">\r\n <i class=\"fa fa-file-word\" aria-hidden=\"true\"></i>\r\n <span>{{utilityService.getResourceValue(\"Export\")}} Word</span>\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-bars\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n <button type=\"button\" id=\"btnSetPass\" class=\"btn btn-sm me-3\r\n btn-primary\" *ngIf=\"!ProductionMode\" (click)=\"showGenerateUpdateCodeByIdModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key\"></i>{{utilityService.getResourceValue(\"GenerateUpdateCode\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n English:\r\n {{TemplateInfo.templateNameEN}}\r\n </a>\r\n\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'en']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div innerHTML=\"{{TemplateInfo.headerEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyEN}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerEN}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center\">\r\n <!--begin::Option-->\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <!--begin::Heading-->\r\n <div class=\"mb-7 d-flex justify-content-between w-100\">\r\n <!--begin::Title-->\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"text-primary mb-5\r\n fw-boldest fs-2\">\r\n Arabic:\r\n {{TemplateInfo.templateNameAR}}\r\n </a>\r\n <a [routerLink]=\"['/Admin/Documents/EditTemplate',TemplateId,'ar']\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <!--begin::Item-->\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3 ar\">\r\n <div innerHTML=\"{{TemplateInfo.headerAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.bodyAR}}\">\r\n </div>\r\n <div innerHTML=\"{{TemplateInfo.footerAR}}\">\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Select-->\r\n </div>\r\n <!--end::Option-->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- edit Modal -->\r\n<ng-template #EditTemplateModal 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\r\n 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(\"Edit\")}}\r\n {{utilityService.getResourceValue(\"Template\")}}</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"EditTemplateFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditTemplateForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextArea [options]=\"EditDescription\" [group]=\"EditTemplateForm\">\r\n </BBSF-MultiLingualTextArea>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"!ProductionMode\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSysName\" [group]=\"EditTemplateForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditOrganization\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditCategory\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList [options]=\"EditMasterLayout\" [group]=\"EditTemplateForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditTemplateModal id=\"CloseEditTemplateModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<!-- Export Document Modal -->\r\n<ng-template #ExportDocumentModal 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(\"Export\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"TestExportDocumentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-repeater-table [options]=\"addKeyValueRepeaterOptions\" [group]=\"TestExportDocumentForm\">\r\n </BBSF-repeater-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button #CloseSendEmailForm id=\"CloseSendEmailForm\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Export\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<!-- GenerateCode Modal -->\r\n<ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn\r\n btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <form [formGroup]=\"GenerateCodeForm\">\r\n\r\n <div class=\"Row\">\r\n <BBSF-TextArea [options]=\"GenerateCodeTextArea\" [group]=\"GenerateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n</ng-template>" }]
|
|
331
331
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.ClipboardService }, { type: i3.DocumentTemplateService }, { type: i4.ActivatedRoute }, { type: i5.PageInfoService }, { type: i6.NgbModal }, { type: i7.DatePipe }, { type: i1.RequestHandlerService }, { type: i1.WordDocumentService }] });
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdGVtcGxhdGUtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RvY3VtZW50cy9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtdGVtcGxhdGUtaW5mby9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUViLFFBQVEsRUFDUixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUUxQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQ1gsU0FBUSxnQkFBZ0I7SUFxQ3hCLFlBQ1UsUUFBa0IsRUFDbkIsY0FBOEIs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SyxDQUNOLEVBQUUsQ0FBQztRQUNKLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixHQUFHO1lBQ2xELFdBQVc7WUFDWCxhQUFhO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQStDRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQXpXVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix5RkNqRDFDLG9tV0F3UGM7OzJGRHZNRCw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBBcHBCYXNlQ29tcG9uZW50LFxyXG4gIENoZWNrQm94T3B0aW9ucyxcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIENvdW50cnksXHJcbiAgRGF0YVR5cGUsXHJcbiAgRHJvcGRvd25PcHRpb25zLFxyXG4gIEVuZ2xpc2hBcmFiaWNEVE8sXHJcbiAgRm9ybU9wdGlvbnMsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucyxcclxuICBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyxcclxuICBQaG9uZU9wdGlvbnMsXHJcbiAgUmVwZWF0ZXJGaWVsZCxcclxuICBSZXBlYXRlck9wdGlvbnMsXHJcbiAgVGV4dEFyZWFPcHRpb25zLFxyXG4gIFRleHRCb3hPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL1RlbXBsYXRlU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEVtYWlsVGVtcGxhdGVUZXN0ZXJNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbFRlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBTTVNUZW1wbGF0ZVRlc3Rlck1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1NNU1RlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURUTyB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZURUTyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gIFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICBXb3JkRG9jdW1lbnRTZXJ2aWNlLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50VGVtcGxhdGVEVE8gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudFRlbXBsYXRlRFRPJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudEV4cG9ydERUTyxcclxuICBEb2N1bWVudEV4cG9ydEl0ZW1EVE8sXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Eb2N1bWVudHNNb2RlbHMvRG9jdW1lbnRFeHBvcnREVE8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtdGVtcGxhdGUtaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRUZW1wbGF0ZUluZm9Db21wb25lbnRcclxuICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIFRlbXBsYXRlSWQ6IHN0cmluZztcclxuICBUZW1wbGF0ZUlkRW5jOiBzdHJpbmcgPSAnJztcclxuICBUZW1wbGF0ZUluZm86IGFueTtcclxuICBUZW1wbGF0ZTogYW55O1xyXG4gIGlzRGF0YUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNhdmVBcyA9IHNhdmVBcztcclxuICBleHBvcnRUeXBlOiBudW1iZXIgPSAxO1xyXG4gIC8vUmVxdWlyZWQgbGlzdHNcclxuICBDYXRlZ29yeUxpc3QgPSBbXTtcclxuICBPcmdhbml6YXRpb25MaXN0ID0gW107XHJcbiAgTWFzdGVyTGF5b3V0TGlzdCA9IFtdO1xyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBHZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgSXNPcGVuR2VuZXJhdGVDb2RlTW9kYWw6IGJvb2xlYW47XHJcbiAgR2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICBWYWx1ZVRvQ29weTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIEVkaXRUZW1wbGF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0VGVtcGxhdGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgRWRpdE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIEVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBFZGl0RGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucztcclxuICBFZGl0T3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdENhdGVnb3J5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdE1hc3RlckxheW91dDogRHJvcGRvd25PcHRpb25zO1xyXG5cclxuICAvL1Rlc3QgRXhwb3J0IE1vZGVsIENvbnRyb2xzXHJcbiAgVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIFRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnM6IFJlcGVhdGVyT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRlbXBsYXRlU2VydmljZTogRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHVibGljIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdvcmREb2N1bWVudFNlcnZpY2U6IFdvcmREb2N1bWVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL0luaXRpYWxpemUgcGFnZSBpbmZvXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldFRlbXBsYXRlSW5mbyh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGxldCBSZXN1bHQ6IGFueSA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLlRlbXBsYXRlSW5mbyA9IFJlc3VsdC52YWw7XHJcbiAgICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmxvY2FsaXplZFRlbXBsYXRlTmFtZTtcclxuICAgICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdIb21lJyksXHJcbiAgICAgICAgICAgIHBhdGg6ICcvQWRtaW4vSG9tZScsXHJcbiAgICAgICAgICAgIGlzU2VwYXJhdG9yOiBmYWxzZSxcclxuICAgICAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdUZW1wbGF0ZXMnKSxcclxuICAgICAgICAgICAgcGF0aDogJy9BZG1pbi9Eb2N1bWVudHMvVGVtcGxhdGVzJyxcclxuICAgICAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0dlbmVyYXRlIENvZGVcclxuICBzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2VuZXJhdGVDb2RlQnlJZCh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLk5hbWUgPSAnR2VuZXJhdGVDb2RlVGV4dEFyZWEnO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuVmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLlZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5NYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZVVwZGF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuICAgIHRoaXMuR2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdlbmVyYXRlVXBkYXRlQ29kZUJ5SWQodGhpcy5UZW1wbGF0ZUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5OYW1lID0gJ0dlbmVyYXRlQ29kZVRleHRBcmVhJztcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLlZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5WYWx1ZVRvQ29weSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuUm93cyA9IDIwO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuTWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEdlbmVyYXRlQ29kZU1vZGFsKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKCkge1xyXG4gICAgdGhpcy5fY2xpcGJvYXJkU2VydmljZS5jb3B5KHRoaXMuVmFsdWVUb0NvcHkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG4gIC8vRWRpdCBUZW1wbGF0ZVxyXG4gIC8vRWRpdCBUZW1wbGF0ZVxyXG4gIHNob3dFZGl0VGVtcGxhdGVNb2RhbChFZGl0VGVtcGxhdGVNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZXRFZGl0VGVtcGxhdGVEYXRhKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICAgIGxldCBsaXN0cyA9IHJlc3VsdE9iai5saXN0cztcclxuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkxpc3QgPSBsaXN0cy5vcmdhbml6YXRpb247XHJcbiAgICAgICAgdGhpcy5NYXN0ZXJMYXlvdXRMaXN0ID0gbGlzdHMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZTtcclxuICAgICAgICB0aGlzLkNhdGVnb3J5TGlzdCA9IGxpc3RzLmxvb2tVcEl0ZW1zQ2F0ZWdvcnk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuRWRpdFRlbXBsYXRlRm9ybTtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPVxyXG4gICAgICAgICAgdGhpcy5nZXRFZGl0VGVtcGxhdGVNb2RlbDtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9XHJcbiAgICAgICAgICB0aGlzLmdldEVkaXRUZW1wbGF0ZUZ1bmN0aW9uO1xyXG4gICAgICAgIGxldCBOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICBOYW1lLkFyYWJpYyA9IHRlbXBsYXRlLm5hbWUuYXJhYmljO1xyXG4gICAgICAgIE5hbWUuRW5nbGlzaCA9IHRlbXBsYXRlLm5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUuTmFtZSA9ICdOYW1lJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLkFyYWJpY0xhYmVsS2V5ID0gJ05hbWVJbkFyYWJpYyc7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5FbmdsaXNoTGFiZWxLZXkgPSAnTmFtZUluRW5nbGlzaCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXROYW1lLlZhbHVlID0gTmFtZTtcclxuICAgICAgICB0aGlzLkVkaXROYW1lLk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuTmFtZSA9ICdTeXNOYW1lJztcclxuICAgICAgICB0aGlzLkVkaXRTeXNOYW1lLkxhYmVsS2V5ID0gJ1N5c05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuVmFsdWUgPSB0ZW1wbGF0ZS5zeXNOYW1lO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgIGRlc2NyaXB0aW9uLkFyYWJpYyA9IHRlbXBsYXRlLmRlc2NyaXB0aW9uLmFyYWJpYztcclxuICAgICAgICBkZXNjcmlwdGlvbi5FbmdsaXNoID0gdGVtcGxhdGUuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uTmFtZSA9ICdEZXNjcmlwdGlvbic7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSAnRGVzY3JpcHRpb25JbkFyYWJpYyc7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uRW5nbGlzaExhYmVsS2V5ID0gJ0Rlc2NyaXB0aW9uSW5FbmdsaXNoJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi5WYWx1ZSA9IGRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuRWRpdERlc2NyaXB0aW9uLk1heExlbmd0aCA9IDI1MDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5OYW1lID0gJ09yZ2FuaXphdGlvbklEX0dVSUQnO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5MYWJlbEtleSA9ICdPcmdhbml6YXRpb24nO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5EYXRhU291cmNlID0gdGhpcy5Pcmdhbml6YXRpb25MaXN0O1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLlBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5TZWxlY3RlZEl0ZW1zID1cclxuICAgICAgICAgIHRlbXBsYXRlLm9yZ2FuaXphdGlvbklEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuTmFtZSA9ICdEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LkxhYmVsS2V5ID0gJ01hc3RlckxheW91dCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LkRhdGFTb3VyY2UgPSB0aGlzLk1hc3RlckxheW91dExpc3Q7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuUGxhY2Vob2xkZXIgPSAnJztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LlNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5Lk5hbWUgPSAnQ2F0ZWdvcnlJdGVtSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkuTGFiZWxLZXkgPSAnQ2F0ZWdvcnknO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LkRhdGFTb3VyY2UgPSB0aGlzLkNhdGVnb3J5TGlzdDtcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LlNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUuY2F0ZWdvcnlJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihFZGl0VGVtcGxhdGVNb2RhbCk7XHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0RWRpdFRlbXBsYXRlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuRWRpdFRlbXBsYXRlRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IERvY3VtZW50VGVtcGxhdGVEVE8oKTtcclxuICAgIEVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5UZW1wbGF0ZUlkO1xyXG4gICAgRWRpdE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWM7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoO1xyXG4gICAgRWRpdE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lO1xyXG4gICAgRWRpdE1vZGVsLkRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVJRF9HVUlEID1cclxuICAgICAgUmVzdWx0TW9kZWwuRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQ7XHJcbiAgICBFZGl0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkVuZ2xpc2g7XHJcbiAgICBFZGl0TW9kZWwuRGVzY3JpcHRpb24uQXJhYmljID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uQXJhYmljO1xyXG4gICAgRWRpdE1vZGVsLk9yZ2FuaXphdGlvbklEX0dVSUQgPSBSZXN1bHRNb2RlbC5Pcmdhbml6YXRpb25JRF9HVUlEO1xyXG4gICAgRWRpdE1vZGVsLkNhdGVnb3J5SXRlbUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5DYXRlZ29yeUl0ZW1JRF9HVUlEO1xyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0RWRpdFRlbXBsYXRlRnVuY3Rpb24gPSAoRWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5lZGl0RG9jdW1lbnRUZW1wbGF0ZShFZGl0TW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIC8vVGVzdCBTZW5kIEVtYWlsXHJcbiAgc2hvd1Rlc3RFeHBvcnREb2N1bWVudE1vZGFsKFRlc3RFeHBvcnREb2N1bWVudE1vZGFsLCB0eXBlID0gMSkge1xyXG4gICAgdGhpcy5leHBvcnRUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm07XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPVxyXG4gICAgICB0aGlzLmdldFRlc3RFeHBvcnREb2N1bWVudE1vZGVsO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPVxyXG4gICAgICB0aGlzLmdldFRlc3RFeHBvcnREb2N1bWVudEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID1cclxuICAgICAgdGhpcy5vblN1Y2Nlc3NFeHBvcnRIYW5kbGVyO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgbGV0IEtleSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgS2V5Lk5hbWUgPSAnS2V5JztcclxuICAgIEtleS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgS2V5LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgIEtleS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgbGV0IFZhbHVlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBWYWx1ZS5OYW1lID0gJ1ZhbHVlJztcclxuICAgIFZhbHVlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBWYWx1ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICBWYWx1ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgbGV0IEtleVJlcGVhdGVyID0gbmV3IFJlcGVhdGVyRmllbGQoKTtcclxuICAgIEtleVJlcGVhdGVyLkNvbnRyb2xUeXBlID0gRGF0YVR5cGUuVGV4dDtcclxuICAgIEtleVJlcGVhdGVyLkNvbnRyb2xPcHRpb25zID0gS2V5O1xyXG4gICAgS2V5UmVwZWF0ZXIuSGVhZGVyVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0tleScpO1xyXG5cclxuICAgIGxldCBWYWx1ZVJlcGVhdGVyID0gbmV3IFJlcGVhdGVyRmllbGQoKTtcclxuICAgIFZhbHVlUmVwZWF0ZXIuQ29udHJvbFR5cGUgPSBEYXRhVHlwZS5UZXh0O1xyXG4gICAgVmFsdWVSZXBlYXRlci5Db250cm9sT3B0aW9ucyA9IFZhbHVlO1xyXG4gICAgVmFsdWVSZXBlYXRlci5IZWFkZXJUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVmFsdWUnKTtcclxuXHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zID0gbmV3IFJlcGVhdGVyT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLk5hbWUgPSAndmFsdWVzJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuRGVsZXRlQnV0dG9uRXh0cmFDbGFzc2VzID1cclxuICAgICAgJ2J0biBidG4tZGFuZ2VyIGJ0bi1zbSBidG4taWNvbic7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkRlbGV0ZUJ1dHRvblRleHQgPSBgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiPjwvaT5gO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclRhYmxlRXh0cmFDbGFzc2VzID1cclxuICAgICAgJ3RhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktOSBkYXRhVGFibGUgbm8tZm9vdGVyIHZhbGlkYXRpb24tdGFibGUtdGV4dCc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyVGFibGVSb3dFeHRyYUNsYXNzZXMgPVxyXG4gICAgICAndGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTAnO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5BY3Rpb25MYWJlbEtleSA9ICdBY3Rpb24nO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5BZGRCdXR0b25FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLkFkZEJ1dHRvblRleHQgPSBgPGkgY2xhc3M9XCJmYSBmYS1wbHVzXCI+PC9pPiR7dGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFxyXG4gICAgICAnQWRkJ1xyXG4gICAgKX1gO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5NaW5SZXF1aXJlZEl0ZW1zID0gMTtcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJWYWx1ZSA9IFtdO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5SZXBlYXRlclN0cnVjdHVyZSA9IFtcclxuICAgICAgS2V5UmVwZWF0ZXIsXHJcbiAgICAgIFZhbHVlUmVwZWF0ZXIsXHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVGVzdEV4cG9ydERvY3VtZW50TW9kYWwpO1xyXG4gIH1cclxuICBnZXRUZXN0RXhwb3J0RG9jdW1lbnRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEV4cG9ydERvY3VtZW50VGVtcGxhdGVNb2RlbCA9IG5ldyBEb2N1bWVudEV4cG9ydERUTygpO1xyXG4gICAgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsLklEX0dVSUQgPSB0aGlzLlRlbXBsYXRlSWQ7XHJcbiAgICBsZXQgcmVzdWx0OiBEb2N1bWVudEV4cG9ydEl0ZW1EVE9bXSA9IFtdO1xyXG4gICAgZm9yIChcclxuICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgaW5kZXggPCB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLlJlcGVhdGVyVmFsdWUubGVuZ3RoO1xyXG4gICAgICBpbmRleCsrXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuUmVwZWF0ZXJWYWx1ZVtpbmRleF07XHJcbiAgICAgIGlmIChlbGVtZW50LktleSAmJiBlbGVtZW50LlZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW06IERvY3VtZW50RXhwb3J0SXRlbURUTyA9IG5ldyBEb2N1bWVudEV4cG9ydEl0ZW1EVE8oKTtcclxuICAgICAgICBpdGVtLktleSA9IGVsZW1lbnQuS2V5O1xyXG4gICAgICAgIGl0ZW0uVmFsdWUgPSBlbGVtZW50LlZhbHVlO1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwuSXRlbXMgPSByZXN1bHQ7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldFRlc3RFeHBvcnREb2N1bWVudEZ1bmN0aW9uID0gKFxyXG4gICAgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGlmICh0aGlzLmV4cG9ydFR5cGUgPT0gMilcclxuICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmV4cG9ydFdvcmQoRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5leHBvcnRQREYoRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICB9O1xyXG5cclxuICBvblN1Y2Nlc3NFeHBvcnRIYW5kbGVyID0gYXN5bmMgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgbGV0IGxhdGVzdF9kYXRlID0gdGhpcy5kYXRlcGlwZS50cmFuc2Zvcm0obm93LCAnZGQtTU0teXl5eSBISC5tbScpO1xyXG4gICAgaWYgKHRoaXMuZXhwb3J0VHlwZSA9PSAyKSB7XHJcbiAgICAgIGxldCBmaWxlTmFtZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmxvY2FsaXplZFRlbXBsYXRlTmFtZSArICdfJyArIGxhdGVzdF9kYXRlICsgJy5kb2MnO1xyXG4gICAgICB2YXIgZmlsZUJ1ZmZlckxpYiA9IGF3YWl0IHRoaXMud29yZERvY3VtZW50U2VydmljZS5nZW5lcmF0ZVdvcmRCeXRlRmlsZShyZXN1bHQpXHJcbiAgICAgIHRoaXMuZG93bmxvYWRXb3JkKGZpbGVCdWZmZXJMaWIgYXMgYW55LCBcIkxpYlwiICsgZmlsZU5hbWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbGVOYW1lID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lICsgJ18nICsgbGF0ZXN0X2RhdGUgKyAnLnBkZic7XHJcbiAgICB0aGlzLmRvd25sb2FkUERGKHJlc3VsdCBhcyBhbnksIGZpbGVOYW1lKTtcclxuICB9O1xyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiICpuZ0lmPVwiaXNEYXRhTG9hZGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnlcIiAoY2xpY2spPVwic2hvd0VkaXRUZW1wbGF0ZU1vZGFsKEVkaXRUZW1wbGF0ZU1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeVwiIChjbGljayk9XCJzaG93VGVzdEV4cG9ydERvY3VtZW50TW9kYWwoRXhwb3J0RG9jdW1lbnRNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS1wZGZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8c3Bhbj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFeHBvcnRcIil9fSBQREY8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbChFeHBvcnREb2N1bWVudE1vZGFsLDIpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZpbGUtd29yZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19IFdvcmQ8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFyc1wiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tcHJpbWFyeVwiICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZVVwZGF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleVwiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZVVwZGF0ZUNvZGVcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTYgbWItMTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICA8IS0tYmVnaW46Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtMyBiZy1saWdodFxyXG4gICAgICAgICAgICAgIHB5LTEwIHB4LTEwIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgPCEtLWJlZ2luOjpIZWFkaW5nLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlRpdGxlLS0+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdlbiddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IG1iLTVcclxuICAgICAgICAgICAgICAgICAgZnctYm9sZGVzdCBmcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIEVuZ2xpc2g6XHJcbiAgICAgICAgICAgICAgICAgIHt7VGVtcGxhdGVJbmZvLnRlbXBsYXRlTmFtZUVOfX1cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdlbiddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbVxyXG4gICAgICAgICAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeSBidG4taWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46Okl0ZW0tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmhlYWRlckVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmJvZHlFTn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpbm5lckhUTUw9XCJ7e1RlbXBsYXRlSW5mby5mb290ZXJFTn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8IS0tZW5kOjpTZWxlY3QtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS1lbmQ6Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC02IG1iLTEwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGgtMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8IS0tYmVnaW46Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtMyBiZy1saWdodFxyXG4gICAgICAgICAgICAgIHB5LTEwIHB4LTEwIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgPCEtLWJlZ2luOjpIZWFkaW5nLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlRpdGxlLS0+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdhciddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IG1iLTVcclxuICAgICAgICAgICAgICAgICAgZnctYm9sZGVzdCBmcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIEFyYWJpYzpcclxuICAgICAgICAgICAgICAgICAge3tUZW1wbGF0ZUluZm8udGVtcGxhdGVOYW1lQVJ9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vRG9jdW1lbnRzL0VkaXRUZW1wbGF0ZScsVGVtcGxhdGVJZCwnYXInXVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIiBjbGFzcz1cImJ0biBidG4tc21cclxuICAgICAgICAgICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnkgYnRuLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wZW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46Okl0ZW0tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTMgYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmhlYWRlckFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmJvZHlBUn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpbm5lckhUTUw9XCJ7e1RlbXBsYXRlSW5mby5mb290ZXJBUn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwhLS1lbmQ6OlNlbGVjdC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLWVuZDo6T3B0aW9uLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIGVkaXQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjRWRpdFRlbXBsYXRlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0blxyXG4gICAgICBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fVxyXG4gICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlRlbXBsYXRlXCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJFZGl0VGVtcGxhdGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJFZGl0TmFtZVwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwiRWRpdERlc2NyaXB0aW9uXCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiRWRpdFN5c05hbWVcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIkVkaXRPcmdhbml6YXRpb25cIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdENhdGVnb3J5XCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIkVkaXRNYXN0ZXJMYXlvdXRcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZUVkaXRUZW1wbGF0ZU1vZGFsIGlkPVwiQ2xvc2VFZGl0VGVtcGxhdGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuPCEtLSBFeHBvcnQgRG9jdW1lbnQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjRXhwb3J0RG9jdW1lbnRNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1yZXBlYXRlci10YWJsZSBbb3B0aW9uc109XCJhZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9uc1wiIFtncm91cF09XCJUZXN0RXhwb3J0RG9jdW1lbnRGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtcmVwZWF0ZXItdGFibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZVNlbmRFbWFpbEZvcm0gaWQ9XCJDbG9zZVNlbmRFbWFpbEZvcm1cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPCEtLSBHZW5lcmF0ZUNvZGUgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjR2VuZXJhdGVDb2RlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0blxyXG4gICAgICBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJHZW5lcmF0ZUNvZGVGb3JtXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiUm93XCI+XHJcbiAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIiBbZ3JvdXBdPVwiR2VuZXJhdGVDb2RlRm9ybVwiICNHZW5lcmF0ZUNvZGVJbnB1dD5cclxuICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwiY29weUlucHV0TWVzc2FnZSgpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDb3B5VG9DbGlwYm9hcmRcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdGVtcGxhdGUtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RvY3VtZW50cy9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvZG9jdW1lbnQtdGVtcGxhdGUtaW5mby9kb2N1bWVudC10ZW1wbGF0ZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUViLFFBQVEsRUFDUixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUUxQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU0vRCxNQUFNLE9BQU8sNkJBQ1gsU0FBUSxnQkFBZ0I7SUFxQ3hCLFlBQ1UsUUFBa0IsRUFDbkIsY0FBOEIs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SyxDQUNOLEVBQUUsQ0FBQztRQUNKLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixHQUFHO1lBQ2xELFdBQVc7WUFDWCxhQUFhO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQStDRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQXpXVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix5RkNqRDFDLG9tV0F3UGM7OzJGRHZNRCw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBBcHBCYXNlQ29tcG9uZW50LFxyXG4gIENoZWNrQm94T3B0aW9ucyxcclxuICBDb250cm9sTGF5b3V0LFxyXG4gIENvdW50cnksXHJcbiAgRGF0YVR5cGUsXHJcbiAgRHJvcGRvd25PcHRpb25zLFxyXG4gIEVuZ2xpc2hBcmFiaWNEVE8sXHJcbiAgRm9ybU9wdGlvbnMsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucyxcclxuICBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyxcclxuICBQaG9uZU9wdGlvbnMsXHJcbiAgUmVwZWF0ZXJGaWVsZCxcclxuICBSZXBlYXRlck9wdGlvbnMsXHJcbiAgVGV4dEFyZWFPcHRpb25zLFxyXG4gIFRleHRCb3hPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL1RlbXBsYXRlU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IEVtYWlsVGVtcGxhdGVUZXN0ZXJNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbFRlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBTTVNUZW1wbGF0ZVRlc3Rlck1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Ob3RpZmljYXRpb25zTW9kZWxzL1NNU1RlbXBsYXRlVGVzdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURUTyB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9UZW1wbGF0ZURUTyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gIFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICBXb3JkRG9jdW1lbnRTZXJ2aWNlLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50VGVtcGxhdGVEVE8gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudFRlbXBsYXRlRFRPJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuICBEb2N1bWVudEV4cG9ydERUTyxcclxuICBEb2N1bWVudEV4cG9ydEl0ZW1EVE8sXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Eb2N1bWVudHNNb2RlbHMvRG9jdW1lbnRFeHBvcnREVE8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnQtdGVtcGxhdGUtaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXRlbXBsYXRlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRUZW1wbGF0ZUluZm9Db21wb25lbnRcclxuICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIFRlbXBsYXRlSWQ6IHN0cmluZztcclxuICBUZW1wbGF0ZUlkRW5jOiBzdHJpbmcgPSAnJztcclxuICBUZW1wbGF0ZUluZm86IGFueTtcclxuICBUZW1wbGF0ZTogYW55O1xyXG4gIGlzRGF0YUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNhdmVBcyA9IHNhdmVBcztcclxuICBleHBvcnRUeXBlOiBudW1iZXIgPSAxO1xyXG4gIC8vUmVxdWlyZWQgbGlzdHNcclxuICBDYXRlZ29yeUxpc3QgPSBbXTtcclxuICBPcmdhbml6YXRpb25MaXN0ID0gW107XHJcbiAgTWFzdGVyTGF5b3V0TGlzdCA9IFtdO1xyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBHZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgSXNPcGVuR2VuZXJhdGVDb2RlTW9kYWw6IGJvb2xlYW47XHJcbiAgR2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICBWYWx1ZVRvQ29weTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vRWRpdCBNb2RlbCBDb250cm9sc1xyXG4gIEVkaXRUZW1wbGF0ZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFZGl0VGVtcGxhdGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgRWRpdE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIEVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBFZGl0RGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucztcclxuICBFZGl0T3JnYW5pemF0aW9uOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdENhdGVnb3J5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgRWRpdE1hc3RlckxheW91dDogRHJvcGRvd25PcHRpb25zO1xyXG5cclxuICAvL1Rlc3QgRXhwb3J0IE1vZGVsIENvbnRyb2xzXHJcbiAgVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIFRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnM6IFJlcGVhdGVyT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRlbXBsYXRlU2VydmljZTogRG9jdW1lbnRUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHVibGljIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdvcmREb2N1bWVudFNlcnZpY2U6IFdvcmREb2N1bWVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuVGVtcGxhdGVJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL0luaXRpYWxpemUgcGFnZSBpbmZvXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldFRlbXBsYXRlSW5mbyh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGxldCBSZXN1bHQ6IGFueSA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLlRlbXBsYXRlSW5mbyA9IFJlc3VsdC52YWw7XHJcbiAgICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmxvY2FsaXplZFRlbXBsYXRlTmFtZTtcclxuICAgICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdIb21lJyksXHJcbiAgICAgICAgICAgIHBhdGg6ICcvQWRtaW4vSG9tZScsXHJcbiAgICAgICAgICAgIGlzU2VwYXJhdG9yOiBmYWxzZSxcclxuICAgICAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdUZW1wbGF0ZXMnKSxcclxuICAgICAgICAgICAgcGF0aDogJy9BZG1pbi9Eb2N1bWVudHMvVGVtcGxhdGVzJyxcclxuICAgICAgICAgICAgaXNTZXBhcmF0b3I6IGZhbHNlLFxyXG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0dlbmVyYXRlIENvZGVcclxuICBzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2VuZXJhdGVDb2RlQnlJZCh0aGlzLlRlbXBsYXRlSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLm5hbWUgPSAnR2VuZXJhdGVDb2RlVGV4dEFyZWEnO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEudmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLlZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLmhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5yb3dzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5jb2xzID0gMjA7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5tYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZVVwZGF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuICAgIHRoaXMuR2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdlbmVyYXRlVXBkYXRlQ29kZUJ5SWQodGhpcy5UZW1wbGF0ZUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5uYW1lID0gJ0dlbmVyYXRlQ29kZVRleHRBcmVhJztcclxuICAgICAgICB0aGlzLkdlbmVyYXRlQ29kZVRleHRBcmVhLnZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5WYWx1ZVRvQ29weSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5HZW5lcmF0ZUNvZGVUZXh0QXJlYS5oaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEucm93cyA9IDIwO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEuY29scyA9IDIwO1xyXG4gICAgICAgIHRoaXMuR2VuZXJhdGVDb2RlVGV4dEFyZWEubWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEdlbmVyYXRlQ29kZU1vZGFsKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKCkge1xyXG4gICAgdGhpcy5fY2xpcGJvYXJkU2VydmljZS5jb3B5KHRoaXMuVmFsdWVUb0NvcHkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG4gIC8vRWRpdCBUZW1wbGF0ZVxyXG4gIC8vRWRpdCBUZW1wbGF0ZVxyXG4gIHNob3dFZGl0VGVtcGxhdGVNb2RhbChFZGl0VGVtcGxhdGVNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZXRFZGl0VGVtcGxhdGVEYXRhKHRoaXMuVGVtcGxhdGVJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICAgIGxldCBsaXN0cyA9IHJlc3VsdE9iai5saXN0cztcclxuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkxpc3QgPSBsaXN0cy5vcmdhbml6YXRpb247XHJcbiAgICAgICAgdGhpcy5NYXN0ZXJMYXlvdXRMaXN0ID0gbGlzdHMuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZTtcclxuICAgICAgICB0aGlzLkNhdGVnb3J5TGlzdCA9IGxpc3RzLmxvb2tVcEl0ZW1zQ2F0ZWdvcnk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICAgIHRoaXMuRWRpdFRlbXBsYXRlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuRWRpdFRlbXBsYXRlRm9ybTtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPVxyXG4gICAgICAgICAgdGhpcy5nZXRFZGl0VGVtcGxhdGVNb2RlbDtcclxuICAgICAgICB0aGlzLkVkaXRUZW1wbGF0ZUZvcm1PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9XHJcbiAgICAgICAgICB0aGlzLmdldEVkaXRUZW1wbGF0ZUZ1bmN0aW9uO1xyXG4gICAgICAgIGxldCBOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICBOYW1lLmFyYWJpYyA9IHRlbXBsYXRlLm5hbWUuYXJhYmljO1xyXG4gICAgICAgIE5hbWUuZW5nbGlzaCA9IHRlbXBsYXRlLm5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE5hbWUubmFtZSA9ICdOYW1lJztcclxuICAgICAgICB0aGlzLkVkaXROYW1lLmFyYWJpY0xhYmVsS2V5ID0gJ05hbWVJbkFyYWJpYyc7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5lbmdsaXNoTGFiZWxLZXkgPSAnTmFtZUluRW5nbGlzaCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXROYW1lLnZhbHVlID0gTmFtZTtcclxuICAgICAgICB0aGlzLkVkaXROYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0U3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUubmFtZSA9ICdTeXNOYW1lJztcclxuICAgICAgICB0aGlzLkVkaXRTeXNOYW1lLmxhYmVsS2V5ID0gJ1N5c05hbWUnO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUudmFsdWUgPSB0ZW1wbGF0ZS5zeXNOYW1lO1xyXG4gICAgICAgIHRoaXMuRWRpdFN5c05hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgIGRlc2NyaXB0aW9uLmFyYWJpYyA9IHRlbXBsYXRlLmRlc2NyaXB0aW9uLmFyYWJpYztcclxuICAgICAgICBkZXNjcmlwdGlvbi5lbmdsaXNoID0gdGVtcGxhdGUuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24ubmFtZSA9ICdEZXNjcmlwdGlvbic7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uYXJhYmljTGFiZWxLZXkgPSAnRGVzY3JpcHRpb25JbkFyYWJpYyc7XHJcbiAgICAgICAgdGhpcy5FZGl0RGVzY3JpcHRpb24uZW5nbGlzaExhYmVsS2V5ID0gJ0Rlc2NyaXB0aW9uSW5FbmdsaXNoJztcclxuICAgICAgICB0aGlzLkVkaXREZXNjcmlwdGlvbi52YWx1ZSA9IGRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuRWRpdERlc2NyaXB0aW9uLm1heExlbmd0aCA9IDI1MDtcclxuXHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5uYW1lID0gJ09yZ2FuaXphdGlvbklEX0dVSUQnO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5sYWJlbEtleSA9ICdPcmdhbml6YXRpb24nO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5kYXRhU291cmNlID0gdGhpcy5Pcmdhbml6YXRpb25MaXN0O1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLnBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICAgICAgdGhpcy5FZGl0T3JnYW5pemF0aW9uLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdE9yZ2FuaXphdGlvbi5zZWxlY3RlZEl0ZW1zID1cclxuICAgICAgICAgIHRlbXBsYXRlLm9yZ2FuaXphdGlvbklEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdE1hc3RlckxheW91dCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQubmFtZSA9ICdEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LmxhYmVsS2V5ID0gJ01hc3RlckxheW91dCc7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LmRhdGFTb3VyY2UgPSB0aGlzLk1hc3RlckxheW91dExpc3Q7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQucGxhY2Vob2xkZXIgPSAnJztcclxuICAgICAgICB0aGlzLkVkaXRNYXN0ZXJMYXlvdXQuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5FZGl0TWFzdGVyTGF5b3V0LnNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUuZG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5Lm5hbWUgPSAnQ2F0ZWdvcnlJdGVtSURfR1VJRCc7XHJcbiAgICAgICAgdGhpcy5FZGl0Q2F0ZWdvcnkubGFiZWxLZXkgPSAnQ2F0ZWdvcnknO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LmRhdGFTb3VyY2UgPSB0aGlzLkNhdGVnb3J5TGlzdDtcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLkVkaXRDYXRlZ29yeS5wbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuRWRpdENhdGVnb3J5LnNlbGVjdGVkSXRlbXMgPVxyXG4gICAgICAgICAgdGVtcGxhdGUuY2F0ZWdvcnlJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihFZGl0VGVtcGxhdGVNb2RhbCk7XHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0RWRpdFRlbXBsYXRlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuRWRpdFRlbXBsYXRlRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IERvY3VtZW50VGVtcGxhdGVEVE8oKTtcclxuICAgIEVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5UZW1wbGF0ZUlkO1xyXG4gICAgRWRpdE1vZGVsLk5hbWUuYXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWM7XHJcbiAgICBFZGl0TW9kZWwuTmFtZS5lbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoO1xyXG4gICAgRWRpdE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lO1xyXG4gICAgRWRpdE1vZGVsLkRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVJRF9HVUlEID1cclxuICAgICAgUmVzdWx0TW9kZWwuRG9jdW1lbnRIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZUlEX0dVSUQ7XHJcbiAgICBFZGl0TW9kZWwuRGVzY3JpcHRpb24uZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkVuZ2xpc2g7XHJcbiAgICBFZGl0TW9kZWwuRGVzY3JpcHRpb24uYXJhYmljID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uQXJhYmljO1xyXG4gICAgRWRpdE1vZGVsLk9yZ2FuaXphdGlvbklEX0dVSUQgPSBSZXN1bHRNb2RlbC5Pcmdhbml6YXRpb25JRF9HVUlEO1xyXG4gICAgRWRpdE1vZGVsLkNhdGVnb3J5SXRlbUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5DYXRlZ29yeUl0ZW1JRF9HVUlEO1xyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0RWRpdFRlbXBsYXRlRnVuY3Rpb24gPSAoRWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5lZGl0RG9jdW1lbnRUZW1wbGF0ZShFZGl0TW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIC8vVGVzdCBTZW5kIEVtYWlsXHJcbiAgc2hvd1Rlc3RFeHBvcnREb2N1bWVudE1vZGFsKFRlc3RFeHBvcnREb2N1bWVudE1vZGFsLCB0eXBlID0gMSkge1xyXG4gICAgdGhpcy5leHBvcnRUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuVGVzdEV4cG9ydERvY3VtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm07XHJcbiAgICB0aGlzLlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPVxyXG4gICAgICB0aGlzLmdldFRlc3RFeHBvcnREb2N1bWVudE1vZGVsO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPVxyXG4gICAgICB0aGlzLmdldFRlc3RFeHBvcnREb2N1bWVudEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID1cclxuICAgICAgdGhpcy5vblN1Y2Nlc3NFeHBvcnRIYW5kbGVyO1xyXG4gICAgdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtT3B0aW9ucy5kaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgbGV0IEtleSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgS2V5Lm5hbWUgPSAnS2V5JztcclxuICAgIEtleS5oaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgS2V5LnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgIEtleS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgbGV0IFZhbHVlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBWYWx1ZS5uYW1lID0gJ1ZhbHVlJztcclxuICAgIFZhbHVlLmhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBWYWx1ZS52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICBWYWx1ZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgbGV0IEtleVJlcGVhdGVyID0gbmV3IFJlcGVhdGVyRmllbGQoKTtcclxuICAgIEtleVJlcGVhdGVyLmNvbnRyb2xUeXBlID0gRGF0YVR5cGUuVGV4dDtcclxuICAgIEtleVJlcGVhdGVyLmNvbnRyb2xPcHRpb25zID0gS2V5O1xyXG4gICAgS2V5UmVwZWF0ZXIuaGVhZGVyVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0tleScpO1xyXG5cclxuICAgIGxldCBWYWx1ZVJlcGVhdGVyID0gbmV3IFJlcGVhdGVyRmllbGQoKTtcclxuICAgIFZhbHVlUmVwZWF0ZXIuY29udHJvbFR5cGUgPSBEYXRhVHlwZS5UZXh0O1xyXG4gICAgVmFsdWVSZXBlYXRlci5jb250cm9sT3B0aW9ucyA9IFZhbHVlO1xyXG4gICAgVmFsdWVSZXBlYXRlci5oZWFkZXJUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVmFsdWUnKTtcclxuXHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zID0gbmV3IFJlcGVhdGVyT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5pc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLm5hbWUgPSAndmFsdWVzJztcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMuZGVsZXRlQnV0dG9uRXh0cmFDbGFzc2VzID1cclxuICAgICAgJ2J0biBidG4tZGFuZ2VyIGJ0bi1zbSBidG4taWNvbic7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLmRlbGV0ZUJ1dHRvblRleHQgPSBgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiPjwvaT5gO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5yZXBlYXRlclRhYmxlRXh0cmFDbGFzc2VzID1cclxuICAgICAgJ3RhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktOSBkYXRhVGFibGUgbm8tZm9vdGVyIHZhbGlkYXRpb24tdGFibGUtdGV4dCc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLnJlcGVhdGVyVGFibGVSb3dFeHRyYUNsYXNzZXMgPVxyXG4gICAgICAndGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTAnO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5hY3Rpb25MYWJlbEtleSA9ICdBY3Rpb24nO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5hZGRCdXR0b25FeHRyYUNsYXNzZXMgPVxyXG4gICAgICAnYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayc7XHJcbiAgICB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLmFkZEJ1dHRvblRleHQgPSBgPGkgY2xhc3M9XCJmYSBmYS1wbHVzXCI+PC9pPiR7dGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFxyXG4gICAgICAnQWRkJ1xyXG4gICAgKX1gO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5taW5SZXF1aXJlZEl0ZW1zID0gMTtcclxuICAgIHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMucmVwZWF0ZXJWYWx1ZSA9IFtdO1xyXG4gICAgdGhpcy5hZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9ucy5yZXBlYXRlclN0cnVjdHVyZSA9IFtcclxuICAgICAgS2V5UmVwZWF0ZXIsXHJcbiAgICAgIFZhbHVlUmVwZWF0ZXIsXHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVGVzdEV4cG9ydERvY3VtZW50TW9kYWwpO1xyXG4gIH1cclxuICBnZXRUZXN0RXhwb3J0RG9jdW1lbnRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5UZXN0RXhwb3J0RG9jdW1lbnRGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEV4cG9ydERvY3VtZW50VGVtcGxhdGVNb2RlbCA9IG5ldyBEb2N1bWVudEV4cG9ydERUTygpO1xyXG4gICAgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsLklEX0dVSUQgPSB0aGlzLlRlbXBsYXRlSWQ7XHJcbiAgICBsZXQgcmVzdWx0OiBEb2N1bWVudEV4cG9ydEl0ZW1EVE9bXSA9IFtdO1xyXG4gICAgZm9yIChcclxuICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgaW5kZXggPCB0aGlzLmFkZEtleVZhbHVlUmVwZWF0ZXJPcHRpb25zLnJlcGVhdGVyVmFsdWUubGVuZ3RoO1xyXG4gICAgICBpbmRleCsrXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYWRkS2V5VmFsdWVSZXBlYXRlck9wdGlvbnMucmVwZWF0ZXJWYWx1ZVtpbmRleF07XHJcbiAgICAgIGlmIChlbGVtZW50LktleSAmJiBlbGVtZW50LlZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW06IERvY3VtZW50RXhwb3J0SXRlbURUTyA9IG5ldyBEb2N1bWVudEV4cG9ydEl0ZW1EVE8oKTtcclxuICAgICAgICBpdGVtLktleSA9IGVsZW1lbnQuS2V5O1xyXG4gICAgICAgIGl0ZW0uVmFsdWUgPSBlbGVtZW50LlZhbHVlO1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBFeHBvcnREb2N1bWVudFRlbXBsYXRlTW9kZWwuSXRlbXMgPSByZXN1bHQ7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldFRlc3RFeHBvcnREb2N1bWVudEZ1bmN0aW9uID0gKFxyXG4gICAgRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGlmICh0aGlzLmV4cG9ydFR5cGUgPT0gMilcclxuICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmV4cG9ydFdvcmQoRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5leHBvcnRQREYoRXhwb3J0RG9jdW1lbnRUZW1wbGF0ZU1vZGVsKTtcclxuICB9O1xyXG5cclxuICBvblN1Y2Nlc3NFeHBvcnRIYW5kbGVyID0gYXN5bmMgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgbGV0IGxhdGVzdF9kYXRlID0gdGhpcy5kYXRlcGlwZS50cmFuc2Zvcm0obm93LCAnZGQtTU0teXl5eSBISC5tbScpO1xyXG4gICAgaWYgKHRoaXMuZXhwb3J0VHlwZSA9PSAyKSB7XHJcbiAgICAgIGxldCBmaWxlTmFtZSA9IHRoaXMuVGVtcGxhdGVJbmZvLmxvY2FsaXplZFRlbXBsYXRlTmFtZSArICdfJyArIGxhdGVzdF9kYXRlICsgJy5kb2MnO1xyXG4gICAgICB2YXIgZmlsZUJ1ZmZlckxpYiA9IGF3YWl0IHRoaXMud29yZERvY3VtZW50U2VydmljZS5nZW5lcmF0ZVdvcmRCeXRlRmlsZShyZXN1bHQpXHJcbiAgICAgIHRoaXMuZG93bmxvYWRXb3JkKGZpbGVCdWZmZXJMaWIgYXMgYW55LCBcIkxpYlwiICsgZmlsZU5hbWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbGVOYW1lID0gdGhpcy5UZW1wbGF0ZUluZm8ubG9jYWxpemVkVGVtcGxhdGVOYW1lICsgJ18nICsgbGF0ZXN0X2RhdGUgKyAnLnBkZic7XHJcbiAgICB0aGlzLmRvd25sb2FkUERGKHJlc3VsdCBhcyBhbnksIGZpbGVOYW1lKTtcclxuICB9O1xyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiICpuZ0lmPVwiaXNEYXRhTG9hZGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImJ0blNldFBhc3NcIiBjbGFzcz1cImJ0biBidG4tc20gbWUtM1xyXG4gICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnlcIiAoY2xpY2spPVwic2hvd0VkaXRUZW1wbGF0ZU1vZGFsKEVkaXRUZW1wbGF0ZU1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPHNwYW4+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeVwiIChjbGljayk9XCJzaG93VGVzdEV4cG9ydERvY3VtZW50TW9kYWwoRXhwb3J0RG9jdW1lbnRNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS1wZGZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8c3Bhbj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFeHBvcnRcIil9fSBQREY8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1saWdodC1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dUZXN0RXhwb3J0RG9jdW1lbnRNb2RhbChFeHBvcnREb2N1bWVudE1vZGFsLDIpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZpbGUtd29yZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19IFdvcmQ8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidG5TZXRQYXNzXCIgY2xhc3M9XCJidG4gYnRuLXNtIG1lLTNcclxuICAgICAgICAgIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFyc1wiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUNvZGVcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYnRuU2V0UGFzc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBtZS0zXHJcbiAgICAgICAgICBidG4tcHJpbWFyeVwiICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZVVwZGF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleVwiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZVVwZGF0ZUNvZGVcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTYgbWItMTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICA8IS0tYmVnaW46Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtMyBiZy1saWdodFxyXG4gICAgICAgICAgICAgIHB5LTEwIHB4LTEwIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgPCEtLWJlZ2luOjpIZWFkaW5nLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlRpdGxlLS0+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdlbiddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IG1iLTVcclxuICAgICAgICAgICAgICAgICAgZnctYm9sZGVzdCBmcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIEVuZ2xpc2g6XHJcbiAgICAgICAgICAgICAgICAgIHt7VGVtcGxhdGVJbmZvLnRlbXBsYXRlTmFtZUVOfX1cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdlbiddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbVxyXG4gICAgICAgICAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeSBidG4taWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBlblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46Okl0ZW0tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmhlYWRlckVOfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmJvZHlFTn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpbm5lckhUTUw9XCJ7e1RlbXBsYXRlSW5mby5mb290ZXJFTn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8IS0tZW5kOjpTZWxlY3QtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS1lbmQ6Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC02IG1iLTEwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGgtMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8IS0tYmVnaW46Ok9wdGlvbi0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtMyBiZy1saWdodFxyXG4gICAgICAgICAgICAgIHB5LTEwIHB4LTEwIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgPCEtLWJlZ2luOjpIZWFkaW5nLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46OlRpdGxlLS0+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Eb2N1bWVudHMvRWRpdFRlbXBsYXRlJyxUZW1wbGF0ZUlkLCdhciddXCIgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IG1iLTVcclxuICAgICAgICAgICAgICAgICAgZnctYm9sZGVzdCBmcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIEFyYWJpYzpcclxuICAgICAgICAgICAgICAgICAge3tUZW1wbGF0ZUluZm8udGVtcGxhdGVOYW1lQVJ9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vRG9jdW1lbnRzL0VkaXRUZW1wbGF0ZScsVGVtcGxhdGVJZCwnYXInXVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIiBjbGFzcz1cImJ0biBidG4tc21cclxuICAgICAgICAgICAgICAgICAgYnRuLWxpZ2h0LXByaW1hcnkgYnRuLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wZW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tYmVnaW46Okl0ZW0tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTMgYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmhlYWRlckFSfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlubmVySFRNTD1cInt7VGVtcGxhdGVJbmZvLmJvZHlBUn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpbm5lckhUTUw9XCJ7e1RlbXBsYXRlSW5mby5mb290ZXJBUn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwhLS1lbmQ6OlNlbGVjdC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLWVuZDo6T3B0aW9uLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIGVkaXQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjRWRpdFRlbXBsYXRlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0blxyXG4gICAgICBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fVxyXG4gICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlRlbXBsYXRlXCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJFZGl0VGVtcGxhdGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJFZGl0TmFtZVwiIFtncm91cF09XCJFZGl0VGVtcGxhdGVGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwiRWRpdERlc2NyaXB0aW9uXCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiRWRpdFN5c05hbWVcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIkVkaXRPcmdhbml6YXRpb25cIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiRWRpdENhdGVnb3J5XCIgW2dyb3VwXT1cIkVkaXRUZW1wbGF0ZUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIkVkaXRNYXN0ZXJMYXlvdXRcIiBbZ3JvdXBdPVwiRWRpdFRlbXBsYXRlRm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZUVkaXRUZW1wbGF0ZU1vZGFsIGlkPVwiQ2xvc2VFZGl0VGVtcGxhdGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuPCEtLSBFeHBvcnQgRG9jdW1lbnQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjRXhwb3J0RG9jdW1lbnRNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIlRlc3RFeHBvcnREb2N1bWVudEZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1yZXBlYXRlci10YWJsZSBbb3B0aW9uc109XCJhZGRLZXlWYWx1ZVJlcGVhdGVyT3B0aW9uc1wiIFtncm91cF09XCJUZXN0RXhwb3J0RG9jdW1lbnRGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtcmVwZWF0ZXItdGFibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZVNlbmRFbWFpbEZvcm0gaWQ9XCJDbG9zZVNlbmRFbWFpbEZvcm1cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkV4cG9ydFwiKX19PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPCEtLSBHZW5lcmF0ZUNvZGUgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjR2VuZXJhdGVDb2RlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0blxyXG4gICAgICBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJHZW5lcmF0ZUNvZGVGb3JtXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiUm93XCI+XHJcbiAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIiBbZ3JvdXBdPVwiR2VuZXJhdGVDb2RlRm9ybVwiICNHZW5lcmF0ZUNvZGVJbnB1dD5cclxuICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwiY29weUlucHV0TWVzc2FnZSgpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDb3B5VG9DbGlwYm9hcmRcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|