vcomply-workflow-engine 6.0.52 → 6.0.54
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/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +2 -2
- package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -2
- package/esm2022/lib/constants/api.constants.mjs +8 -0
- package/esm2022/lib/constants/assets.constants.mjs +57 -0
- package/esm2022/lib/constants/link-responsibility.constants.mjs +2 -2
- package/esm2022/lib/constants/mock.mjs +152 -0
- package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +2 -2
- package/esm2022/lib/more-option/more-option.component.mjs +6 -49
- package/esm2022/lib/report-a-case/components/assignee/assignee.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-assignees/case-assignees.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-details/case-details.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-owners/case-owners.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-priority/case-priority.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/due-date/due-date.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/field-holder/field-holder.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/linked assessment/linked-assessment.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/rc-details/rc-details.component.mjs +2 -2
- package/esm2022/lib/report-a-case/components/report-date/report-date.component.mjs +2 -2
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +3 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +183 -1
- package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
- package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/policy-template/constants/template.constant.mjs +2 -2
- package/esm2022/lib/sharedComponents/program-list/constant.mjs +16 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +20 -0
- package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +183 -0
- package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +47 -0
- package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
- package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
- package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -2
- package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
- package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +19 -0
- package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +2 -2
- package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +2 -2
- package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +2 -2
- package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +2 -2
- package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +2 -2
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +264 -139
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +5 -31
- package/esm2022/lib/workflow-engine.module.mjs +13 -6
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +2 -2
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +2 -2
- package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +2 -2
- package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +2 -2
- package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +2 -2
- package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +2 -2
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +84 -241
- package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +2 -2
- package/esm2022/lib/workflow-services/programs.service.mjs +28 -112
- package/esm2022/lib/workflow-services/responsibility.service.mjs +9 -9
- package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +2 -2
- package/fesm2022/vcomply-workflow-engine.mjs +3512 -3101
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/constants/api.constants.d.ts +7 -0
- package/lib/constants/mock.d.ts +15 -0
- package/lib/interfaces/frequency.interface.d.ts +37 -0
- package/lib/interfaces/responsibilty.interface.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency.service.d.ts +30 -0
- package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
- package/lib/sharedComponents/program-list/constant.d.ts +9 -0
- package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
- package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
- package/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
- package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +46 -0
- package/lib/sharedComponents/program-list/program-list.module.d.ts +14 -0
- package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
- package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
- package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
- package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +32 -4
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
- package/lib/workflow-engine.module.d.ts +42 -40
- package/lib/workflow-program/workflow-program.component.d.ts +6 -4
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/lib/workflow-services/programs.service.d.ts +13 -53
- package/package.json +1 -1
- package/esm2022/lib/constants/assessts.constants.mjs +0 -57
- /package/lib/constants/{assessts.constants.d.ts → assets.constants.d.ts} +0 -0
|
@@ -8,7 +8,7 @@ import { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';
|
|
|
8
8
|
import { FloatingBarModule } from '../floating-bar/floating-bar.module';
|
|
9
9
|
import { PipesModule } from '../../pipes/pipes.module';
|
|
10
10
|
import { FormgroupModule } from '../../formgroup/formgroup.module';
|
|
11
|
-
import { ASSETS } from '../../constants/
|
|
11
|
+
import { ASSETS } from '../../constants/assets.constants';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
|
|
14
14
|
import * as i2 from "@angular/common";
|
|
@@ -262,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
262
262
|
}], isDisabledSelected: [{
|
|
263
263
|
type: Input
|
|
264
264
|
}] } });
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7O0FBaUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBeUJsQyxZQUFvQixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQXZCcEMsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNmLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUMvQixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBRXZCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDN0MsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBa005QixlQUFVLEdBQUcsTUFBTSxDQUFDO0lBak00QixDQUFDO0lBRWpELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDckQsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQzVELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVMsRUFBRSxJQUFTO1FBQzdCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7YUFBTTtZQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUN0QyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksQ0FDbEMsQ0FBQztZQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3RDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDbkQsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDaEQsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQy9DLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFTO1FBQ2pCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUMvRCxDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQzdCLENBQUM7YUFDSDtTQUNGO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUN2QixJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWtCO1FBQ2hDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ2hDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFDRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNoRCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDdkQsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFnQjtRQUNuQixJQUFJLFlBQVksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQzNFO2FBQU07WUFDTCxZQUFZLEdBQUcsV0FBVyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFhLEVBQUUsSUFBUztRQUNsQyxJQUFJLElBQUksRUFBRTtZQUNSLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDL0I7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUN0QyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FDcEMsQ0FBQztnQkFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDckMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUM1QyxDQUFDLEdBQXlCLEVBQUUsRUFBRSxDQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2pELENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUM3QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3ZDLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWU7UUFDNUIsT0FBTyxRQUFRLEVBQUUsTUFBTTtZQUNyQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQWU7UUFDdkIsT0FBTyxRQUFRLEVBQUUsTUFBTTtZQUNyQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBR0QsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0E5TlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsa3FCQ3BDcEMsdWxhQWdWQSxxMDVFRHRUSSxZQUFZLCtQQUNaLFdBQVcsOG1CQUNYLGFBQWEsOEJBQ2Isa0JBQWtCLDhCQUNsQixhQUFhLHFNQUNiLGlCQUFpQix5akJBQ2pCLFdBQVcsNEpBQ1gsZUFBZTs7NEZBR04sdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FHcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsZUFBZTtxQkFDaEI7c0dBR1EsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVNb2R1bGUgfSBmcm9tICcuLi8uLi91aS1raXQvY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi9mbG9hdGluZy1iYXIvZmxvYXRpbmctYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtZ3JvdXBNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXNzdHMuY29uc3RhbnRzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ncm91cC11c2Vycy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLXVzZXJzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBQb3BvdmVyTW9kdWxlLFxuICAgIENsaWNrT3V0c2lkZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEZsb2F0aW5nQmFyTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIEZvcm1ncm91cE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBVc2Vyc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGdyb3Vwc0VuYWJsZWQ6IGFueTtcbiAgQElucHV0KCkgdXNlcnNMaXN0ID0gW107XG4gIEBJbnB1dCgpIGdyb3Vwc0xpc3Q6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkVXNlcnMgPSBbXTtcbiAgQElucHV0KCkgdXNlcklkS2V5ID0gJyc7XG4gIEBJbnB1dCgpIGdyb3VwSWRLZXkgPSAnJztcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xuICBAT3V0cHV0KCkgc2F2ZVNlbGVjdGVkTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlVXNlcnNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBzZWxlY3RlZEdyb3VwczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgYXNzaWduZWVHcm91cHNMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlZElkOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBmcm9tUmVzcG9uc2liaWxpdHk6IGFueTtcbiAgQElucHV0KCkgcmV2aWV3ZXJJZHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIG92ZXJzZWVySWRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhc3NpZ25vcklkOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgc2VhcmNoID0gJyc7XG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgc2VsZWN0ZWRHcm91cElkczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRncm91cExpc3Q6IGFueVtdID0gW107XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZFVzZXJzLm1hcCgoZWxlOiBhbnkpID0+IHtcbiAgICAgIGlmIChlbGVbdGhpcy51c2VySWRLZXldKSB7XG4gICAgICAgIHJldHVybiBlbGVbdGhpcy51c2VySWRLZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHM/Lm1hcCgoZWxlOiBhbnkpID0+IHtcbiAgICAgIGlmIChlbGVbdGhpcy5ncm91cElkS2V5XSkge1xuICAgICAgICByZXR1cm4gZWxlW3RoaXMuZ3JvdXBJZEtleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgc2VsZWN0VXNlcih1c2VyOiBhbnksIG1vZGU6IGFueSkge1xuICAgIGlmIChtb2RlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2godXNlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gdXNlclxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zZXRMaXN0KCk7XG4gIH1cbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMudXNlcklkS2V5XVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuc2V0TGlzdCgpO1xuICB9XG5cbiAgZGVsZXRlR3JvdXBFdmVudChldmVudDogYW55KSB7XG4gICAgY29uc3QgZ3JvdXBpbmRleCA9IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5maW5kSW5kZXgoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50Wydncm91cF9pZCddXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc3BsaWNlKGdyb3VwaW5kZXgsIDEpO1xuICAgIHRoaXMuc2V0Z3JvdXBMaXN0KCk7XG4gIH1cblxuICBzZWxlY3RBbGwobW9kZTogYW55KSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIGxldCBsaXN0ID0gWy4uLnRoaXMudXNlcnNMaXN0XTtcbiAgICAgIGlmICghdGhpcy5pc0Rpc2FibGVkU2VsZWN0ZWQpIHtcbiAgICAgICAgbGlzdCA9IGxpc3QuZmlsdGVyKFxuICAgICAgICAgICh1c2VyOiBhbnkpID0+ICF0aGlzLmRpc2FibGVkSWQuaW5jbHVkZXModXNlclt0aGlzLnVzZXJJZEtleV0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcbiAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLnVzZXJJZEtleV0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0Rpc2FibGVkU2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRJZHMuZmlsdGVyKChpZDogbnVtYmVyKSA9PlxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRJZC5pbmNsdWRlcyhpZClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXRMaXN0KCk7XG4gIH1cblxuICBzZWxlY3RBbGxHcm91cHMobW9kZTogYW55KSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIGNvbnN0IGdyb3VwbGlzdCA9IFsuLi50aGlzLmFzc2lnbmVlR3JvdXBzTGlzdF07XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSBbXTtcbiAgICAgIGdyb3VwbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcy5wdXNoKGVsZW1lbnRbdGhpcy5ncm91cElkS2V5XSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSBncm91cGxpc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnNldGdyb3VwTGlzdCgpO1xuICB9XG5cbiAgdmFsaWRhdGlvbkNoZWNrKGlzQ2hlY2tlZDogYm9vbGVhbikge1xuICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnWW91IGNhbiBzZWxlY3QgYSBtYXhpbXVtIG9mIDE5IHVzZXJzLicsICdhbGVydCcpO1xuICAgIH1cbiAgfVxuXG4gIHNldExpc3QoKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgY29uc3QgdXNlckxpc3QgPSBjbG9uZURlZXAodGhpcy51c2Vyc0xpc3QpO1xuICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xuICAgIHVzZXJMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy51c2VySWRLZXldKSkge1xuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gZGF0YTtcbiAgfVxuICBzZXRncm91cExpc3QoKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgY29uc3QgZ3JvdXBzbGlzdCA9IGNsb25lRGVlcCh0aGlzLmFzc2lnbmVlR3JvdXBzTGlzdCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRHcm91cElkcyA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkR3JvdXBJZHMpO1xuICAgIGdyb3Vwc2xpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRHcm91cElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuZ3JvdXBJZEtleV0pKSB7XG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gZGF0YTtcbiAgfVxuXG4gIGNoZWNrU2VsZWN0QWxsKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnVzZXJzTGlzdC5ldmVyeSgodXNlcjogYW55KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VyW3RoaXMudXNlcklkS2V5XSlcbiAgICApO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgY2hlY2tzZWxlY3RBbGxncm91cHMoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuYXNzaWduZWVHcm91cHNMaXN0LmV2ZXJ5KChncm91cDogYW55KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGdyb3VwW3RoaXMuZ3JvdXBJZEtleV0pXG4gICAgKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHNhdmUoc2VsZWN0ZWRJZHM6IGFueSkge1xuICAgIGxldCBzZWxlY3RlZERhdGE7XG4gICAgaWYgKHRoaXMuYXNzaWduZWVHcm91cHNMaXN0Lmxlbmd0aCkge1xuICAgICAgc2VsZWN0ZWREYXRhID0geyB1c2VyczogdGhpcy5zZWxlY3RlZElkcywgZ3JvdXBzOiB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0ZWREYXRhID0gc2VsZWN0ZWRJZHM7XG4gICAgfVxuICAgIHRoaXMuc2F2ZVNlbGVjdGVkTGlzdC5lbWl0KHNlbGVjdGVkRGF0YSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlVXNlcnNMaXN0LmVtaXQoKTtcbiAgfVxuXG4gIHNlbGVjdEdyb3VwKGdyb3VwSWRzOiBhbnksIG1vZGU6IGFueSkge1xuICAgIGlmIChtb2RlKSB7XG4gICAgICBncm91cElkcy5mb3JFYWNoKCh1c2VySWQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXModXNlcklkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaCh1c2VySWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXBJZHMuZm9yRWFjaCgodXNlcklkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IHVzZXJJZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZXRMaXN0KCk7XG4gIH1cblxuICBzZWxlY3RHcm91cEVsZW1lbnQoZGF0YTogYW55LCBtb2RlOiBhbnkpIHtcbiAgICBpZiAobW9kZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZGdyb3VwTGlzdC5wdXNoKGRhdGEpO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzLnB1c2goZGF0YVt0aGlzLmdyb3VwSWRLZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkZ3JvdXBMaXN0LmZpbmRJbmRleChcbiAgICAgICAgKGVsZTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+XG4gICAgICAgICAgZWxlW3RoaXMuZ3JvdXBJZEtleV0gPT09IGRhdGFbdGhpcy5ncm91cElkS2V5XVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRncm91cExpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGNvbnN0IGlkSW5kZXggPSB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuZmluZEluZGV4KFxuICAgICAgICAoZWxlKSA9PiBlbGUgPT09IGRhdGFbdGhpcy5ncm91cElkS2V5XVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMuc2V0Z3JvdXBMaXN0KCk7XG4gIH1cblxuICBjaGVja0dyb3VwTGlzdChncm91cElkczogYW55W10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZ3JvdXBJZHM/Lmxlbmd0aCBcbiAgICAgID8gZ3JvdXBJZHMuZXZlcnkoaWQgPT4gdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhpZCkpXG4gICAgICA6IGZhbHNlO1xuICB9XG4gIFxuICBoaWRlR3JvdXAoZ3JvdXBJZHM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGdyb3VwSWRzPy5sZW5ndGhcbiAgICAgID8gdGhpcy51c2Vyc0xpc3QuZXZlcnkodXNlciA9PiAhZ3JvdXBJZHMuaW5jbHVkZXModXNlclt0aGlzLnVzZXJJZEtleV0pKVxuICAgICAgOiBmYWxzZTtcbiAgfSAgXG5cbiAgY3VycmVudFRhYiA9ICdVU0VSJztcbiAgc3dpdGNoVGFiKHRhYjogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiO1xuICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGQtcmlzay1ncm91cC11c2VyLWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFVzZXIocyk8L2Rpdj5cbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJhZGQtcmlzay1ncm91cC11c2VyLWxpc3QtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICA8L2J1dHRvbj4gLS0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LWJvZHlcIj5cbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LW10LTEgdngtbWItMlwiXG4gICAgICAqbmdJZj1cImdyb3Vwc0VuYWJsZWRcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignVVNFUicpXCJcbiAgICAgICAgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTYwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnVVNFUidcIlxuICAgICAgPlxuICAgICAgICBVU0VSU1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgIHNlYXJjaD8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiVVNFUlwiXG4gICAgICAgICAgICAgID8gKHVzZXJzTGlzdCB8IHNlYXJjaCA6IHNlYXJjaCk/Lmxlbmd0aFxuICAgICAgICAgICAgICA6IHVzZXJzTGlzdD8ubGVuZ3RoXG4gICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ0dST1VQJylcIlxuICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCdcIlxuICAgICAgPlxuICAgICAgICBVU0VSIEdST1VQU1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgIHNlYXJjaD8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiR1JPVVBcIlxuICAgICAgICAgICAgICA/IChhc3NpZ25lZUdyb3Vwc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2gpPy5sZW5ndGhcbiAgICAgICAgICAgICAgOiBhc3NpZ25lZUdyb3Vwc0xpc3Q/Lmxlbmd0aFxuICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7XG4gICAgICAgICAgY3VycmVudFRhYiA9PT0gJ1VTRVInID8gJ1NlYXJjaCBVc2VyKHMpJyA6ICdTZWFyY2ggVXNlciBHcm91cChzKSdcbiAgICAgICAgfX0gXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cHNFbmFibGVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIHVzZXJsaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIGdyb3VwbGlzdFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS10b3BcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKHVzZXJsaXN0Py5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICAgICAgKHVzZXJsaXN0Py5sZW5ndGggPiAwICYmIGdyb3VwbGlzdD8ubGVuZ3RoID4gMCkpICYmXG4gICAgICAgICAgICAgIHNlYXJjaD8udHJpbSgpPy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChvcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnICYmIHVzZXJzTGlzdD8ubGVuZ3RoIDwgMTkpIHx8XG4gICAgICAgICAgICAgICAgb3BlbmVkRnJvbSAhPT0gJ1JJU0tfVFJFQVRNRU5UJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJjaGVja1NlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgIHt7IGNoZWNrU2VsZWN0QWxsKCkgPyBcIkRlc2VsZWN0IEFsbFwiIDogXCJTZWxlY3QgQWxsXCIgfX1cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgICAgW2NsYXNzLndpdGhvdXQtZ3JvdXBdPVwiIWdyb3Vwc0VuYWJsZWRcIlxuICAgICAgICAgICAgW2NsYXNzLndpdGgtbm8tZGF0YV09XCJcbiAgICAgICAgICAgICAgdXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiBncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImdyb3VwLXVzZXItbGlzdFwiICpuZ0lmPVwiZ3JvdXBsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3VwbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFoaWRlR3JvdXAoZ3JvdXAudXNlcklkcylcIj5cbiAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tHcm91cExpc3QoZ3JvdXAudXNlcklkcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0R3JvdXAoZ3JvdXAudXNlcklkcywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICsgZ3JvdXAudXNlcklkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFjaGVja0dyb3VwTGlzdChncm91cC51c2VySWRzKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICsgZ3JvdXAudXNlcklkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrR3JvdXBMaXN0KGdyb3VwLnVzZXJJZHMpXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cC5ncm91cE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICB9fTxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gZ3JvdXAudXNlcklkcz8ubGVuZ3RoICsgXCIgVVNFUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLnVzZXJJZHM/Lmxlbmd0aCArIFwiIFVTRVJcIlxuICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJncm91cC11c2VyLWxpc3RcIiAqbmdJZj1cInVzZXJsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJsaXN0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgfCB0b29sdGlwTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgIDogZnJvbVJlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICAgIDogb3ZlcnNlZXJJZHNcbiAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbm9ySWRcbiAgICAgICAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICAgICAgICAgICAgOiAnbXlfbWVtYmVyX2lkJ1xuICAgICAgICAgICAgICAgICAgICAgIDogKG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcIlxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0VXNlcih1c2VyW3VzZXJJZEtleV0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSkpIHx8XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDE5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyB1c2VyLmVtcGxveWVlX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgdXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiBncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gVXNlcnMgRm91bmQnXCJcbiAgICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT09ICdVU0VSJyAmJiBncm91cHNFbmFibGVkICYmICFsb2FkZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2Vyc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2ggYXMgdXNlcmxpc3RcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYm9keS10b3BcIlxuICAgICAgICAgICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA+IDAgJiYgc2VhcmNoPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJiB1c2Vyc0xpc3Q/Lmxlbmd0aCA8IDE5KSB8fFxuICAgICAgICAgICAgICBvcGVuZWRGcm9tICE9PSAnUklTS19UUkVBVE1FTlQnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAge3sgY2hlY2tTZWxlY3RBbGwoKSA/IFwiRGVzZWxlY3QgQWxsXCIgOiBcIlNlbGVjdCBBbGxcIiB9fVxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgIFtjbGFzcy53aXRoLW5vLWRhdGFdPVwidXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImdyb3VwLXVzZXItbGlzdFwiICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2VybGlzdFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgIHwgdG9vbHRpcE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgOiBmcm9tUmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICA6IG92ZXJzZWVySWRzXG4gICAgICAgICAgICAgICAgICAgIDogYXNzaWdub3JJZFxuICAgICAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICAgICAgICAgIDogJ215X21lbWJlcl9pZCdcbiAgICAgICAgICAgICAgICAgICAgOiAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkSWRzPy5pbmNsdWRlcyh1c2VyW3VzZXJJZEtleV0pKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJZD8uaW5jbHVkZXModXNlclt1c2VySWRLZXldKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcIlxuICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdFVzZXIodXNlclt1c2VySWRLZXldLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDE5ICYmXG4gICAgICAgICAgICAgICAgICAgICFzZWxlY3RlZElkcz8uaW5jbHVkZXModXNlclt1c2VySWRLZXldKSkgfHxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgdXNlci5lbXBsb3llZV9uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIFVzZXJzIEZvdW5kJ1wiXG4gICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCcgJiYgZ3JvdXBzRW5hYmxlZCAmJiAhbG9hZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaWduZWVHcm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIGdyb3VwbGlzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJib2R5LXRvcFwiXG4gICAgICAgICAgKm5nSWY9XCJncm91cGxpc3Q/Lmxlbmd0aCA+IDAgJiYgc2VhcmNoPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJjaGVja3NlbGVjdEFsbGdyb3VwcygpXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEFsbEdyb3VwcygkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICB7eyBjaGVja3NlbGVjdEFsbGdyb3VwcygpID8gXCJEZXNlbGVjdCBBbGxcIiA6IFwiU2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgIFtjbGFzcy53aXRoLW5vLWRhdGFdPVwiZ3JvdXBsaXN0Py5sZW5ndGggPT09IDAgJiYgIWxvYWRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJncm91cC11c2VyLWxpc3RcIiAqbmdJZj1cImdyb3VwbGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cGxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJzZWxlY3RlZEdyb3VwSWRzPy5pbmNsdWRlcyhncm91cFtncm91cElkS2V5XSlcIlxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0R3JvdXBFbGVtZW50KGdyb3VwLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICBncm91cC5tZW1iZXJfaWRzPy5sZW5ndGggPiAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAhY2hlY2tHcm91cExpc3QoZ3JvdXA/Lm1lbWJlcl9pZHMpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uQ2hlY2soXG4gICAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAubWVtYmVyX2lkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFjaGVja0dyb3VwTGlzdChncm91cD8ubWVtYmVyX2lkcylcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZ3JvdXA/Lmdyb3VwX25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cD8uZ3JvdXBfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGdyb3VwW1wibWVtYmVyX2NvdW50XCJdIH19XG4gICAgICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lm1lbWJlcl9jb3VudCA+IDEgPyBcIlVTRVJTXCIgOiBcIlVTRVJcIiB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgKm5nSWY9XCJncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIEdyb3VwcyBGb3VuZCdcIlxuICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRVc2Vyc1wiXG4gICAgICBbc2VsZWN0ZWRHcm91cHNdPVwic2VsZWN0ZWRHcm91cHNcIlxuICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXG4gICAgICBbZWxlbWVudElkXT1cInVzZXJJZEtleVwiXG4gICAgICBbc2luZ3VsYXJUZXh0XT1cIidVc2VyIHNlbGVjdGVkJ1wiXG4gICAgICBbcGx1cmFsVGV4dF09XCInVXNlcnMgc2VsZWN0ZWQnXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoc2VsZWN0ZWRJZHMpXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiXG4gICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAoZGVsZXRlR3JvdXBFdmVudCk9XCJkZWxldGVHcm91cEV2ZW50KCRldmVudClcIlxuICAgICAgW2dyb3Vwc0VuYWJsZWRdPVwiZ3JvdXBzRW5hYmxlZFwiXG4gICAgICBbbm9uUmVtb3ZhYmxlVXNlcnNMaXN0XT1cImlzRGlzYWJsZWRTZWxlY3RlZCA/IGRpc2FibGVkSWQgOiBbXVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCJcbiAgICAgICAgZ3JvdXBzTGlzdD8ubGVuZ3RoICsgdXNlcnNMaXN0Py5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgKHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJiBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAwKVxuICAgICAgXCJcbiAgICA+XG4gICAgPC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7O0FBaUIxRCxNQUFNLE9BQU8sdUJBQXVCO0lBeUJsQyxZQUFvQixRQUF5QjtR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bEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVNb2R1bGUgfSBmcm9tICcuLi8uLi91aS1raXQvY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi9mbG9hdGluZy1iYXIvZmxvYXRpbmctYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtZ3JvdXBNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZ3JvdXAtdXNlcnMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQubGVzcycsICcuLi8uLi9mb3Jtcy5sZXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBDbGlja091dHNpZGVNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBGbG9hdGluZ0Jhck1vZHVsZSxcbiAgICBQaXBlc01vZHVsZSxcbiAgICBGb3JtZ3JvdXBNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwVXNlcnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBncm91cHNFbmFibGVkOiBhbnk7XG4gIEBJbnB1dCgpIHVzZXJzTGlzdCA9IFtdO1xuICBASW5wdXQoKSBncm91cHNMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZFVzZXJzID0gW107XG4gIEBJbnB1dCgpIHVzZXJJZEtleSA9ICcnO1xuICBASW5wdXQoKSBncm91cElkS2V5ID0gJyc7XG4gIEBJbnB1dCgpIG9wZW5lZEZyb20gPSAnJztcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZExpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZVVzZXJzTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgc2VsZWN0ZWRHcm91cHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGFzc2lnbmVlR3JvdXBzTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZGlzYWJsZWRJZDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgZnJvbVJlc3BvbnNpYmlsaXR5OiBhbnk7XG4gIEBJbnB1dCgpIHJldmlld2VySWRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBvdmVyc2VlcklkczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgYXNzaWdub3JJZDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIHNlYXJjaCA9ICcnO1xuICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIHNlbGVjdGVkR3JvdXBJZHM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkZ3JvdXBMaXN0OiBhbnlbXSA9IFtdO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZVt0aGlzLnVzZXJJZEtleV0pIHtcbiAgICAgICAgcmV0dXJuIGVsZVt0aGlzLnVzZXJJZEtleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcz8ubWFwKChlbGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZVt0aGlzLmdyb3VwSWRLZXldKSB7XG4gICAgICAgIHJldHVybiBlbGVbdGhpcy5ncm91cElkS2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBzZWxlY3RVc2VyKHVzZXI6IGFueSwgbW9kZTogYW55KSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaCh1c2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSB1c2VyXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleChcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZXZlbnRbdGhpcy51c2VySWRLZXldXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5zZXRMaXN0KCk7XG4gIH1cblxuICBkZWxldGVHcm91cEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBncm91cGluZGV4ID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbmRJbmRleChcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZXZlbnRbJ2dyb3VwX2lkJ11cbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcy5zcGxpY2UoZ3JvdXBpbmRleCwgMSk7XG4gICAgdGhpcy5zZXRncm91cExpc3QoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbChtb2RlOiBhbnkpIHtcbiAgICBpZiAobW9kZSkge1xuICAgICAgbGV0IGxpc3QgPSBbLi4udGhpcy51c2Vyc0xpc3RdO1xuICAgICAgaWYgKCF0aGlzLmlzRGlzYWJsZWRTZWxlY3RlZCkge1xuICAgICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoXG4gICAgICAgICAgKHVzZXI6IGFueSkgPT4gIXRoaXMuZGlzYWJsZWRJZC5pbmNsdWRlcyh1c2VyW3RoaXMudXNlcklkS2V5XSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xuICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMudXNlcklkS2V5XSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLmlzRGlzYWJsZWRTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gdGhpcy5zZWxlY3RlZElkcy5maWx0ZXIoKGlkOiBudW1iZXIpID0+XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZElkLmluY2x1ZGVzKGlkKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbEdyb3Vwcyhtb2RlOiBhbnkpIHtcbiAgICBpZiAobW9kZSkge1xuICAgICAgY29uc3QgZ3JvdXBsaXN0ID0gWy4uLnRoaXMuYXNzaWduZWVHcm91cHNMaXN0XTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IFtdO1xuICAgICAgZ3JvdXBsaXN0LmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzLnB1c2goZWxlbWVudFt0aGlzLmdyb3VwSWRLZXldKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IGdyb3VwbGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gW107XG4gICAgfVxuICAgIHRoaXMuc2V0Z3JvdXBMaXN0KCk7XG4gIH1cblxuICB2YWxpZGF0aW9uQ2hlY2soaXNDaGVja2VkOiBib29sZWFuKSB7XG4gICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdZb3UgY2FuIHNlbGVjdCBhIG1heGltdW0gb2YgMTkgdXNlcnMuJywgJ2FsZXJ0Jyk7XG4gICAgfVxuICB9XG5cbiAgc2V0TGlzdCgpIHtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcbiAgICBjb25zdCB1c2VyTGlzdCA9IGNsb25lRGVlcCh0aGlzLnVzZXJzTGlzdCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZElkcyk7XG4gICAgdXNlckxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLnVzZXJJZEtleV0pKSB7XG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBkYXRhO1xuICB9XG4gIHNldGdyb3VwTGlzdCgpIHtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcbiAgICBjb25zdCBncm91cHNsaXN0ID0gY2xvbmVEZWVwKHRoaXMuYXNzaWduZWVHcm91cHNMaXN0KTtcbiAgICBjb25zdCBzZWxlY3RlZEdyb3VwSWRzID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRHcm91cElkcyk7XG4gICAgZ3JvdXBzbGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGVsZW1lbnRbdGhpcy5ncm91cElkS2V5XSkpIHtcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSBkYXRhO1xuICB9XG5cbiAgY2hlY2tTZWxlY3RBbGwoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMudXNlcnNMaXN0LmV2ZXJ5KCh1c2VyOiBhbnkpID0+XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKHVzZXJbdGhpcy51c2VySWRLZXldKVxuICAgICk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBjaGVja3NlbGVjdEFsbGdyb3VwcygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5hc3NpZ25lZUdyb3Vwc0xpc3QuZXZlcnkoKGdyb3VwOiBhbnkpID0+XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXBbdGhpcy5ncm91cElkS2V5XSlcbiAgICApO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc2F2ZShzZWxlY3RlZElkczogYW55KSB7XG4gICAgbGV0IHNlbGVjdGVkRGF0YTtcbiAgICBpZiAodGhpcy5hc3NpZ25lZUdyb3Vwc0xpc3QubGVuZ3RoKSB7XG4gICAgICBzZWxlY3RlZERhdGEgPSB7IHVzZXJzOiB0aGlzLnNlbGVjdGVkSWRzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cElkcyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RlZERhdGEgPSBzZWxlY3RlZElkcztcbiAgICB9XG4gICAgdGhpcy5zYXZlU2VsZWN0ZWRMaXN0LmVtaXQoc2VsZWN0ZWREYXRhKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VVc2Vyc0xpc3QuZW1pdCgpO1xuICB9XG5cbiAgc2VsZWN0R3JvdXAoZ3JvdXBJZHM6IGFueSwgbW9kZTogYW55KSB7XG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIGdyb3VwSWRzLmZvckVhY2goKHVzZXJJZDogYW55KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VySWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKHVzZXJJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cElkcy5mb3JFYWNoKCh1c2VySWQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gdXNlcklkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3QoKTtcbiAgfVxuXG4gIHNlbGVjdEdyb3VwRWxlbWVudChkYXRhOiBhbnksIG1vZGU6IGFueSkge1xuICAgIGlmIChtb2RlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkZ3JvdXBMaXN0LnB1c2goZGF0YSk7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMucHVzaChkYXRhW3RoaXMuZ3JvdXBJZEtleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRncm91cExpc3QuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiB7IFt4OiBzdHJpbmddOiBhbnkgfSkgPT5cbiAgICAgICAgICBlbGVbdGhpcy5ncm91cElkS2V5XSA9PT0gZGF0YVt0aGlzLmdyb3VwSWRLZXldXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZGdyb3VwTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY29uc3QgaWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRHcm91cElkcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gZGF0YVt0aGlzLmdyb3VwSWRLZXldXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzLnNwbGljZShpZEluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zZXRncm91cExpc3QoKTtcbiAgfVxuXG4gIGNoZWNrR3JvdXBMaXN0KGdyb3VwSWRzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBncm91cElkcz8ubGVuZ3RoXG4gICAgICA/IGdyb3VwSWRzLmV2ZXJ5KGlkID0+IHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoaWQpKVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIGhpZGVHcm91cChncm91cElkczogYW55W10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZ3JvdXBJZHM/Lmxlbmd0aFxuICAgICAgPyB0aGlzLnVzZXJzTGlzdC5ldmVyeSh1c2VyID0+ICFncm91cElkcy5pbmNsdWRlcyh1c2VyW3RoaXMudXNlcklkS2V5XSkpXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgY3VycmVudFRhYiA9ICdVU0VSJztcbiAgc3dpdGNoVGFiKHRhYjogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiO1xuICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGQtcmlzay1ncm91cC11c2VyLWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFVzZXIocyk8L2Rpdj5cbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJhZGQtcmlzay1ncm91cC11c2VyLWxpc3QtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICA8L2J1dHRvbj4gLS0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LWJvZHlcIj5cbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYWRkLXJpc2stZ3JvdXAtdXNlci1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LW10LTEgdngtbWItMlwiXG4gICAgICAqbmdJZj1cImdyb3Vwc0VuYWJsZWRcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInN3aXRjaFRhYignVVNFUicpXCJcbiAgICAgICAgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTYwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSAnVVNFUidcIlxuICAgICAgPlxuICAgICAgICBVU0VSU1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgIHNlYXJjaD8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiVVNFUlwiXG4gICAgICAgICAgICAgID8gKHVzZXJzTGlzdCB8IHNlYXJjaCA6IHNlYXJjaCk/Lmxlbmd0aFxuICAgICAgICAgICAgICA6IHVzZXJzTGlzdD8ubGVuZ3RoXG4gICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hUYWIoJ0dST1VQJylcIlxuICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wYi0yIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCdcIlxuICAgICAgPlxuICAgICAgICBVU0VSIEdST1VQU1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbWwtMiB2eC1saC00XCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgIHNlYXJjaD8ubGVuZ3RoICYmIGN1cnJlbnRUYWIgPT09IFwiR1JPVVBcIlxuICAgICAgICAgICAgICA/IChhc3NpZ25lZUdyb3Vwc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2gpPy5sZW5ndGhcbiAgICAgICAgICAgICAgOiBhc3NpZ25lZUdyb3Vwc0xpc3Q/Lmxlbmd0aFxuICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7XG4gICAgICAgICAgY3VycmVudFRhYiA9PT0gJ1VTRVInID8gJ1NlYXJjaCBVc2VyKHMpJyA6ICdTZWFyY2ggVXNlciBHcm91cChzKSdcbiAgICAgICAgfX0gXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cHNFbmFibGVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIHVzZXJsaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIGdyb3VwbGlzdFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS10b3BcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKHVzZXJsaXN0Py5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICAgICAgKHVzZXJsaXN0Py5sZW5ndGggPiAwICYmIGdyb3VwbGlzdD8ubGVuZ3RoID4gMCkpICYmXG4gICAgICAgICAgICAgIHNlYXJjaD8udHJpbSgpPy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChvcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnICYmIHVzZXJzTGlzdD8ubGVuZ3RoIDwgMTkpIHx8XG4gICAgICAgICAgICAgICAgb3BlbmVkRnJvbSAhPT0gJ1JJU0tfVFJFQVRNRU5UJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJjaGVja1NlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgIHt7IGNoZWNrU2VsZWN0QWxsKCkgPyBcIkRlc2VsZWN0IEFsbFwiIDogXCJTZWxlY3QgQWxsXCIgfX1cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgICAgW2NsYXNzLndpdGhvdXQtZ3JvdXBdPVwiIWdyb3Vwc0VuYWJsZWRcIlxuICAgICAgICAgICAgW2NsYXNzLndpdGgtbm8tZGF0YV09XCJcbiAgICAgICAgICAgICAgdXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiBncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImdyb3VwLXVzZXItbGlzdFwiICpuZ0lmPVwiZ3JvdXBsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3VwbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFoaWRlR3JvdXAoZ3JvdXAudXNlcklkcylcIj5cbiAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tHcm91cExpc3QoZ3JvdXAudXNlcklkcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0R3JvdXAoZ3JvdXAudXNlcklkcywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICsgZ3JvdXAudXNlcklkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFjaGVja0dyb3VwTGlzdChncm91cC51c2VySWRzKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoICsgZ3JvdXAudXNlcklkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrR3JvdXBMaXN0KGdyb3VwLnVzZXJJZHMpXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cC5ncm91cE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICB9fTxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cC51c2VySWRzPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gZ3JvdXAudXNlcklkcz8ubGVuZ3RoICsgXCIgVVNFUlNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLnVzZXJJZHM/Lmxlbmd0aCArIFwiIFVTRVJcIlxuICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJncm91cC11c2VyLWxpc3RcIiAqbmdJZj1cInVzZXJsaXN0Py5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJsaXN0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgfCB0b29sdGlwTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgIDogZnJvbVJlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICAgIDogb3ZlcnNlZXJJZHNcbiAgICAgICAgICAgICAgICAgICAgICA6IGFzc2lnbm9ySWRcbiAgICAgICAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICAgICAgICAgICAgOiAnbXlfbWVtYmVyX2lkJ1xuICAgICAgICAgICAgICAgICAgICAgIDogKG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcIlxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0VXNlcih1c2VyW3VzZXJJZEtleV0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSkpIHx8XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDE5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyB1c2VyLmVtcGxveWVlX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgdXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiBncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gVXNlcnMgRm91bmQnXCJcbiAgICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT09ICdVU0VSJyAmJiBncm91cHNFbmFibGVkICYmICFsb2FkZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2Vyc0xpc3QgfCBzZWFyY2ggOiBzZWFyY2ggYXMgdXNlcmxpc3RcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYm9keS10b3BcIlxuICAgICAgICAgICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA+IDAgJiYgc2VhcmNoPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJiB1c2Vyc0xpc3Q/Lmxlbmd0aCA8IDE5KSB8fFxuICAgICAgICAgICAgICBvcGVuZWRGcm9tICE9PSAnUklTS19UUkVBVE1FTlQnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAge3sgY2hlY2tTZWxlY3RBbGwoKSA/IFwiRGVzZWxlY3QgQWxsXCIgOiBcIlNlbGVjdCBBbGxcIiB9fVxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgIFtjbGFzcy53aXRoLW5vLWRhdGFdPVwidXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImdyb3VwLXVzZXItbGlzdFwiICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2VybGlzdFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgIHVzZXJcbiAgICAgICAgICAgICAgICAgIHwgdG9vbHRpcE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgOiBmcm9tUmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgOiByZXZpZXdlcklkc1xuICAgICAgICAgICAgICAgICAgICA6IG92ZXJzZWVySWRzXG4gICAgICAgICAgICAgICAgICAgIDogYXNzaWdub3JJZFxuICAgICAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICAgICAgICAgIDogJ215X21lbWJlcl9pZCdcbiAgICAgICAgICAgICAgICAgICAgOiAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRVc2Vycz8ubGVuZ3RoID09PSAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkSWRzPy5pbmNsdWRlcyh1c2VyW3VzZXJJZEtleV0pKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJZD8uaW5jbHVkZXModXNlclt1c2VySWRLZXldKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcIlxuICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdFVzZXIodXNlclt1c2VySWRLZXldLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICAob3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFVzZXJzPy5sZW5ndGggPT09IDE5ICYmXG4gICAgICAgICAgICAgICAgICAgICFzZWxlY3RlZElkcz8uaW5jbHVkZXModXNlclt1c2VySWRLZXldKSkgfHxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkSWQ/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25DaGVjayhcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRJZHM/LmluY2x1ZGVzKHVzZXJbdXNlcklkS2V5XSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgdXNlci5lbXBsb3llZV9uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICpuZ0lmPVwidXNlcmxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIFVzZXJzIEZvdW5kJ1wiXG4gICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT09ICdHUk9VUCcgJiYgZ3JvdXBzRW5hYmxlZCAmJiAhbG9hZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaWduZWVHcm91cHNMaXN0IHwgc2VhcmNoIDogc2VhcmNoIGFzIGdyb3VwbGlzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJib2R5LXRvcFwiXG4gICAgICAgICAgKm5nSWY9XCJncm91cGxpc3Q/Lmxlbmd0aCA+IDAgJiYgc2VhcmNoPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJjaGVja3NlbGVjdEFsbGdyb3VwcygpXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEFsbEdyb3VwcygkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICB7eyBjaGVja3NlbGVjdEFsbGdyb3VwcygpID8gXCJEZXNlbGVjdCBBbGxcIiA6IFwiU2VsZWN0IEFsbFwiIH19XG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpc3QtYmxvY2tcIlxuICAgICAgICAgIFtjbGFzcy53aXRoLW5vLWRhdGFdPVwiZ3JvdXBsaXN0Py5sZW5ndGggPT09IDAgJiYgIWxvYWRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJncm91cC11c2VyLWxpc3RcIiAqbmdJZj1cImdyb3VwbGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cGxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJzZWxlY3RlZEdyb3VwSWRzPy5pbmNsdWRlcyhncm91cFtncm91cElkS2V5XSlcIlxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0R3JvdXBFbGVtZW50KGdyb3VwLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICBncm91cC5tZW1iZXJfaWRzPy5sZW5ndGggPiAxOSAmJlxuICAgICAgICAgICAgICAgICAgICAhY2hlY2tHcm91cExpc3QoZ3JvdXA/Lm1lbWJlcl9pZHMpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uQ2hlY2soXG4gICAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAubWVtYmVyX2lkcz8ubGVuZ3RoID4gMTkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFjaGVja0dyb3VwTGlzdChncm91cD8ubWVtYmVyX2lkcylcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZ3JvdXA/Lmdyb3VwX25hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyBncm91cD8uZ3JvdXBfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGdyb3VwW1wibWVtYmVyX2NvdW50XCJdIH19XG4gICAgICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lm1lbWJlcl9jb3VudCA+IDEgPyBcIlVTRVJTXCIgOiBcIlVTRVJcIiB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgKm5nSWY9XCJncm91cGxpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhbG9hZGVyXCJcbiAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIEdyb3VwcyBGb3VuZCdcIlxuICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRVc2Vyc1wiXG4gICAgICBbc2VsZWN0ZWRHcm91cHNdPVwic2VsZWN0ZWRHcm91cHNcIlxuICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXG4gICAgICBbZWxlbWVudElkXT1cInVzZXJJZEtleVwiXG4gICAgICBbc2luZ3VsYXJUZXh0XT1cIidVc2VyIHNlbGVjdGVkJ1wiXG4gICAgICBbcGx1cmFsVGV4dF09XCInVXNlcnMgc2VsZWN0ZWQnXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoc2VsZWN0ZWRJZHMpXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiXG4gICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAoZGVsZXRlR3JvdXBFdmVudCk9XCJkZWxldGVHcm91cEV2ZW50KCRldmVudClcIlxuICAgICAgW2dyb3Vwc0VuYWJsZWRdPVwiZ3JvdXBzRW5hYmxlZFwiXG4gICAgICBbbm9uUmVtb3ZhYmxlVXNlcnNMaXN0XT1cImlzRGlzYWJsZWRTZWxlY3RlZCA/IGRpc2FibGVkSWQgOiBbXVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCJcbiAgICAgICAgZ3JvdXBzTGlzdD8ubGVuZ3RoICsgdXNlcnNMaXN0Py5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgKHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJiBzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoID09PSAwKVxuICAgICAgXCJcbiAgICA+XG4gICAgPC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,7 @@ import { HttpParams } from '@angular/common/http';
|
|
|
2
2
|
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { ASSETS } from '../../../constants/
|
|
5
|
+
import { ASSETS } from '../../../constants/assets.constants';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../restapi.service";
|
|
8
8
|
import * as i2 from "../../../ui-kit/snack-bar/snack-bar.service";
|
|
@@ -468,4 +468,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
468
468
|
type: ViewChild,
|
|
469
469
|
args: ['searchProgram']
|
|
470
470
|
}] } });
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9ncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS9saW5rLXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9saW5rLXByb2dyYW0vbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU8vRCxNQUFNLE9BQU8sb0JBQW9CO0lBeUQvQixJQUE4QixrQkFBa0IsQ0FBQyxPQUFZO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7WUFDM0QsT0FBTyxFQUFFLEVBQUU7WUFDWCxVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQztJQUNKLENBQUM7SUF3Q0QsU0FBUztJQUVULFlBQ1UsY0FBOEIsRUFDOUIsUUFBeUI7UUFEekIsbUJBQWMsR0FBZCxj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QUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFPRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFHRSxZQUFZO3NCQUFwQixLQUFLO2dCQUN3QixrQkFBa0I7c0JBQS9DLEtBQUs7dUJBQUMsaUJBQWlCO2dCQU9mLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNzQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi9yZXN0YXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWxlY3RlZElkcywgU2VsZWN0ZWRWYWx1ZXMgfSBmcm9tICcuLi9wcm9ncmFtLWludGVncmF0aW9uLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgcHJvZ3JhbUxpc3QgfSBmcm9tICcuL3Byb2dyYW0tbGlzdC1tb2RlbCc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXNzdHMuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmMtbGluay1wcm9ncmFtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstcHJvZ3JhbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmstcHJvZ3JhbS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rUHJvZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIHN1YkNhdGVnb3JpZXNMaXN0ID0ge1xuICAgIGZyb206IDEsXG4gICAgdG86IDAsXG4gICAgY3VycmVudFBhZ2U6IDEsXG4gICAgdG90YWxQYWdlOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBkYXRhOiBbXSxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdGllc0xpc3QgPSB7XG4gICAgZnJvbTogMSxcbiAgICB0bzogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICB0b3RhbFBhZ2U6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGRhdGE6IFtdLFxuICB9O1xuXG4gIHNlYXJjaFRleHQgPSB7XG4gICAgcHJvZ3JhbTogJycsXG4gICAgY2F0ZWdvcnk6ICcnLFxuICAgIHJlc3BvbnNpYmlsaXR5OiAnJyxcbiAgfTtcblxuICBzZWxlY3RlZFZhbHVlczogU2VsZWN0ZWRWYWx1ZXMgPSB7XG4gICAgcHJvZ3JhbToge30sXG4gICAgY2F0ZWdvcmllczogW10sXG4gICAgcmVzcG9uc2liaWxpdGllczogW10sXG4gIH07XG4gIHNlbGVjdGVkSWRzOiBTZWxlY3RlZElkcyA9IHtcbiAgICBjYXRlZ29yaWVzOiBbXSxcbiAgICByZXNwb25zaWJpbGl0aWVzOiBbXSxcbiAgfTtcblxuICBzdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG4gIGN1cnJlbnRDYXRlZ29yeTogYW55ID0ge307XG5cbiAgQElucHV0KCkgcG9saWN5OiBhbnkgPSB7fTtcbiAgQElucHV0KCkgY3VycmVudFRhYiE6IGFueTtcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSBjaGFuZ2VUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkUHJvZ3JhbURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY3VycmVudEJ1c2luZXNzQ3ljbGUhOiBhbnk7XG4gIGxvYWRlciA9IGZhbHNlO1xuICBwcm9ncmFtU29ydEJ5OiAnZGVzYycgfCAnYXNjJyA9ICdkZXNjJztcbiAgY3VycmVudExpc3Q6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycgPSAncHJvZ3JhbXMnO1xuICB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHJlZnJlc2hMaW5rZWRQb2xpY2llcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy9wcm9ncmFtXG4gIHN1Ykxpc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgcHJvZ3JhbXNMaXN0OiBhbnk7XG4gIEBJbnB1dCgnc2VsZWN0ZWRQcm9ncmFtJykgc2V0IGdldFNlbGVjdGVkUHJvZ3JhbShwcm9ncmFtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9ncmFtKSkgPz8ge1xuICAgICAgcHJvZ3JhbToge30sXG4gICAgICBjYXRlZ29yaWVzOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXRpZXM6IFtdLFxuICAgIH07XG4gIH1cbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZExpbmtQcm9ncmFtID0ge1xuICAgIF9pZDogJycsXG4gIH07XG4gIEBJbnB1dCgpIGhpZGVQcm9ncmFtc0xpc3QhOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFByb2dyYW0nKSBzZWFyY2hQcm9ncmFtITogYW55O1xuXG4gIHByZXZpb3VzU2VsZWN0ZWRWYWx1ZXM6IGFueSA9IHtcbiAgICBwcm9ncmFtOiB7fSxcbiAgICBjYXRlZ29yaWVzOiBbXSxcbiAgfTtcbiAgcHJvZ3JhbURhdGE6IHByb2dyYW1MaXN0ID0ge1xuICAgIGRhdGE6IFtdLFxuICAgIGZyb206IDAsXG4gICAgdG86IDAsXG4gICAgdG90YWxQYWdlczogMCxcbiAgICB0b3RhbFJlY29yZHM6IDAsXG4gICAgY3VycmVudFBhZ2U6IDEsXG4gICAgQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ6IDAsXG4gICAgQWxsT3RoZXJzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBBbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudDogMCxcbiAgICBBbGxTdGFuZGFyZFByb2dyYW1zQ291bnQ6IDAsXG4gICAgU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ6IDAsXG4gICAgU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudDogMCxcbiAgfTtcbiAgcHJvZ3JhbVR5cGVPYmplY3QgPSB7XG4gICAgcmVndWxhdGlvbnM6IDEsXG4gICAgc3RhbmRhcmRzOiAyLFxuICAgIGludGVybmFsX2NvbnRyb2xzOiAzLFxuICAgIG90aGVyczogMCxcbiAgfTtcblxuICBkaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGFjdGl2ZVRhYjogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsX2NvbnRyb2xzJyB8ICdvdGhlcnMnID1cbiAgICAncmVndWxhdGlvbnMnO1xuXG4gIC8vcHJvZ3JhbVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzdEFwaVNlcnZpY2U6IFJlc3RBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmdldFByb2dyYW1zKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZSA9IHRoaXMucmVzdEFwaVNlcnZpY2UuZ2V0QnVzaW5lc3NDeWNsZSgpO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAvLyBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtb2RlJywgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdCcpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoXG4gICAgICAncHJvZ3JhbVR5cGUnLFxuICAgICAgdGhpcy5wcm9ncmFtVHlwZU9iamVjdFt0aGlzLmFjdGl2ZVRhYl1cbiAgICApO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2VOYW1lJywgJ3BvbGljeVdvcmtyb29tJyk7XG4gICAgaWYgKGRhdGE/LnNlYXJjaCB8fCB0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoVGV4dCcsIHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5vJywgdGhpcy5wcm9ncmFtRGF0YS5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgYWN0aW9uOiAnY29tcGxpYW5jZUdldCcsXG4gICAgICBwYXJhbXMsXG4gICAgfTtcbiAgICB0aGlzLnJlc3RBcGlTZXJ2aWNlXG4gICAgICAuYXBpRGVsZWdhdGUocmVxdWVzdCwgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5kYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5mcm9tID0gcmVzLmZyb207XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS50byA9IHJlcy50bztcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLnRvdGFsUGFnZXMgPSByZXMudG90YWxQYWdlcztcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLnRvdGFsUmVjb3JkcyA9IHJlcy50b3RhbFJlY29yZHM7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5BbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudCA9XG4gICAgICAgICAgICByZXMuQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5BbGxPdGhlcnNQcm9ncmFtc0NvdW50ID0gcmVzLkFsbE90aGVyc1Byb2dyYW1zQ291bnQ7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5BbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudCA9XG4gICAgICAgICAgICByZXMuQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnQ7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5BbGxTdGFuZGFyZFByb2dyYW1zQ291bnQgPVxuICAgICAgICAgICAgcmVzLkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllcyhkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhcmVudElkJywgdGhpcy5zZWxlY3RlZFZhbHVlcy5wcm9ncmFtPy5faWQpO1xuXG4gICAgaWYgKGRhdGE/LnNlYXJjaCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncScsIHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBhY3Rpb246ICdwcm9ncmFtRW5kcG9pbnQnLFxuICAgICAgcGFyYW1zLFxuICAgIH07XG4gICAgdGhpcy5yZXN0QXBpU2VydmljZVxuICAgICAgLmFwaURlbGVnYXRlKHJlcXVlc3QsICcvc3ViQ2F0ZWdvcmllcycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5mcm9tID0gcmVzLml0ZW1zX2Zyb20gPz8gMTtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvID0gcmVzLml0ZW1zX3RvID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2UgPSByZXMudG90YWxfcGFnZXMgPz8gMDtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUmVjb3JkcyA9IHJlcy50b3RhbF9pdGVtcyA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuZGF0YSA9IHJlcy5kYXRhID8/IFtdO1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cbiAgY2hhbmdlVGFiUHJvZ3JhbShcbiAgICB0eXBlOiAncmVndWxhdGlvbnMnIHwgJ3N0YW5kYXJkcycgfCAnaW50ZXJuYWxfY29udHJvbHMnIHwgJ290aGVycydcbiAgKSB7XG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0eXBlO1xuICAgIHRoaXMucHJvZ3JhbURhdGEuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtID0gJyc7XG4gICAgdGhpcy5zZWFyY2hQcm9ncmFtLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmdldFByb2dyYW1zKCk7XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0aWVzKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG5cbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGFjdGlvbjogJ3Byb2dyYW1FbmRwb2ludCcsXG4gICAgICBwYXlsb2FkT2JqZWN0OiB7XG4gICAgICAgIGNhdGVnb3J5SWRzOiB0aGlzLnNlbGVjdGVkSWRzPy5jYXRlZ29yaWVzLFxuICAgICAgICBwYWdlTm86IHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3Q/LmN1cnJlbnRQYWdlLFxuICAgICAgICBzZWFyY2hUZXh0OiBkYXRhPy5zZWFyY2ggPyB0aGlzLnNlYXJjaFRleHQ/LnJlc3BvbnNpYmlsaXR5IDogJycsXG4gICAgICAgIHBhZ2VOYW1lOiAncG9saWN5V29ya3Jvb20nLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVNlcnZpY2VcbiAgICAgIC5hcGlEZWxlZ2F0ZShyZXF1ZXN0LCAnL2NhdGVnb3J5UmVzcG9uc2liaWxpdGllcycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb20gPSByZXMuaXRlbXNfZnJvbSA/PyAxO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG8gPSByZXMuaXRlbXNfdG8gPz8gMDtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZSA9IHJlcy50b3RhbF9wYWdlcyA/PyAxO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBjaGFuZ2VQYWdlKGV2ZW50OiBhbnksIHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb2dyYW1zJzpcbiAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldFByb2dyYW1zKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2UgPSBldmVudDtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UgPSBldmVudDtcbiAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBzZWFyY2hCeShldmVudDogYW55LCB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtID0gZXZlbnQ7XG4gICAgICAgICAgdGhpcy5nZXRQcm9ncmFtcyh7IHNlYXJjaDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5ICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5ID0gZXZlbnQ7XG4gICAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKHsgc2VhcmNoOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQucmVzcG9uc2liaWxpdHkgIT0gZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQucmVzcG9uc2liaWxpdHkgPSBldmVudDtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UHJvZ3JhbShldmVudDogYW55LCBkYXRhOiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHJvZ3JhbSA9IGRhdGE7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDYXRlZ29yeShldmVudDogYW55LCBjYXRlZ29yeTogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeS5jYXRlZ29yeV9pZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeS5jYXRlZ29yeV9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY29uc3QgY2F0ZWdvcnlJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09IGNhdGVnb3J5LmNhdGVnb3J5X2lkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUluZGV4LCAxKTtcbiAgICB9XG4gIH1cbiAgc2VsZWN0UmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMucHVzaChkYXRhLlJlcG9ydElkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5wdXNoKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZGF0YS5SZXBvcnRJZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY29uc3QgcmVwb3J0SW5kZXggPSB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5SZXBvcnRJZCA9PSBkYXRhLlJlcG9ydElkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShyZXBvcnRJbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIGdvQmFjayhmcm9tPzogJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgaWYgKGZyb20pIHtcbiAgICAgIHN3aXRjaCAoZnJvbSkge1xuICAgICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ3Byb2dyYW1zJztcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdjYXRlZ29yaWVzJztcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycsIGl0ZW06IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnByb2dyYW0gPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICBjb25zdCBjYXRlZ29yeUluZGV4ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBpdGVtLmNhdGVnb3J5X2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjYXRlZ29yeUluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYXRlZ29yeUlkSW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5jYXRlZ29yeV9pZFxuICAgICAgICApO1xuICAgICAgICBpZiAoY2F0ZWdvcnlJZEluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUlkSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGNvbnN0IHJlc3BJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuUmVwb3J0SWQgPT0gaXRlbS5SZXBvcnRJZFxuICAgICAgICApO1xuICAgICAgICBpZiAocmVzcEluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShyZXNwSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uUmVwb3J0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzYXZlQ2hhbmdlcyhcbiAgICB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnIHwgJ3Byb2dyYW1zT25seSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICB0aGlzLnN1Ym1pdHByb2dyYW1JbnRlZ3JhdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Byb2dyYW1zT25seSc6XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgc2F2ZUNoYW5nZXNGcm9tUHJvZ3JhbShldmVudDogYm9vbGVhbikge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdHByb2dyYW1JbnRlZ3JhdGlvbigpIHtcbiAgICAvLyB0aGlzLnN1Ym1pc3Npb25Mb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21vZGUnLCAncHJvZ3JhbVBvbGljeVVwZGF0ZS91cGRhdGUnKTtcblxuICAgIGNvbnN0IGNhdGVnb3J5QXJyYXkgPSB0aGlzLnNlbGVjdGVkSWRzPy5jYXRlZ29yaWVzO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHBvbGljeUlkOiB0aGlzLnBvbGljeT8ucG9saWN5X2lkID8/IDAsXG4gICAgICByZXBvcnRfaWRzOiB0aGlzLnNlbGVjdGVkSWRzPy5yZXNwb25zaWJpbGl0aWVzID8/IDAsXG4gICAgICBjYXRlZ29yeV9pZDogWy4uLm5ldyBTZXQoY2F0ZWdvcnlBcnJheSldLFxuICAgICAgcGFyZW50SWQ6IHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkLFxuICAgIH07XG4gICAgbGV0IHJlbW92ZSA9IHt9O1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaW5rUHJvZ3JhbT8uX2lkICYmXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5faWQgIT09IHRoaXMuc2VsZWN0ZWRMaW5rUHJvZ3JhbT8uX2lkXG4gICAgKSB7XG4gICAgICByZW1vdmUgPSB7XG4gICAgICAgIHBvbGljeUlkczogW3RoaXMucG9saWN5Py5wb2xpY3lfaWQgPz8gMF0sXG4gICAgICAgIHByb2dyYW1JZDogdGhpcy5zZWxlY3RlZExpbmtQcm9ncmFtPy5faWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50QnVzaW5lc3NDeWNsZSA9IHtcbiAgICAgIHN0YXJ0X2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnN0YXJ0X2RhdGUsXG4gICAgICBlbmRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uZW5kX2RhdGUsXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgIHNlbGVjdGVkX2N5Y2xlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zZWxlY3RlZF9jeWNsZSxcbiAgICB9O1xuICAgIGxldCBsaW5rUHJvZ3JhbSA9IHtcbiAgICAgIGFkZGVkOiBPYmplY3Qua2V5cyhwYXlsb2FkKS5sZW5ndGggPyBbcGF5bG9hZF0gOiBbXSxcbiAgICAgIHJlbW92ZWQ6IE9iamVjdC5rZXlzKHJlbW92ZSkubGVuZ3RoID8gW3JlbW92ZV0gOiBbXSxcbiAgICB9O1xuICAgIGxldCBzZWxlY3RlZFByb2dyYW0gPSB7XG4gICAgICBzZWxlY3RlZFZhbHVlczogdGhpcy5zZWxlY3RlZFZhbHVlcyxcbiAgICAgIGxpbmtQcm9ncmFtOiBsaW5rUHJvZ3JhbSxcbiAgICAgIGJ1c2luZXNzQ3ljbGU6IGN1cnJlbnRCdXNpbmVzc0N5Y2xlLFxuICAgIH07XG4gICAgdGhpcy51cGRhdGVkUHJvZ3JhbURldGFpbHMuZW1pdChcbiAgICAgIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRQcm9ncmFtKSlcbiAgICApO1xuICAgIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYWN0aW9uOiAnL2NvbXBsaWFuY2VfcG9zdCcsXG4gICAgICBwYXJhbXMsXG4gICAgICBkYXRhOiBwYXlsb2FkLFxuICAgICAgYnVzaW5lc3NDeWNsZTogY3VycmVudEJ1c2luZXNzQ3ljbGUsXG4gICAgfTtcbiAgICAvLyB0aGlzLnJlc3RBcGlTZXJ2aWNlLmFwaURlbGVnYXRlKHJlcXVlc3QpLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgLy8gICAgIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuICAgIC8vICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1RoZSBwcm9ncmFtIGhhcyBiZWVuIGxpbmtlZCB3aXRoIHRoaXMgUG9saWN5LicsICdzdWNjZXNzJyk7XG4gICAgLy8gICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgICAgIGlmKHRoaXMuY3VycmVudFRhYiAhPSAnbGlua2VkX3Byb2dyYW1zJyl7XG4gICAgLy8gICAgICAgICB0aGlzLnJlZnJlc2hMaW5rZWRQb2xpY2llcy5lbWl0KCk7XG4gICAgLy8gICAgICAgICAvLyB0aGlzLmNoYW5nZVRhYi5lbWl0KCk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIC8vICAgICB9LCAxMDAwKTtcblxuICAgIC8vICAgfSxcbiAgICAvLyAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAvLyAgICAgdGhpcy5zdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG4gICAgLy8gICAgIHRoaXMuc25hY2tiYXIuc2hvdyhcIk9vcHMgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHdlIHdlcmUgdW5hYmxlIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLiBMZXQncyBnaXZlIGl0IGFub3RoZXIgdHJ5IHNoYWxsIHdlID9cIik7XG4gICAgLy8gICB9LFxuICAgIC8vIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGluay1wb2xpY3lcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdwcm9ncmFtcydcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tbGlzdGluZy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBQcm9ncmFtPC9kaXY+XG4gICAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xMiB2eC1mdy01MDAgdngtbGFibGUtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOTFkOzwvaT4gQmFjazwvYnV0dG9uPiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZC1yb3cgdngtZC1mbGV4IHZ4LW1iLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3JlZ3VsYXRpb25zJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ3JlZ3VsYXRpb25zJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtbGgtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlJFR1VMQVRJT05TPC9sYWJlbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50IH19XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudCA9PSAxXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJQcm9ncmFtc1wiXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ8L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWVuZCB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyIHZ4LXR4dC13aGl0ZSB2eC1mdy01MDAgdngtZC1pbmxpbmUtYmxvY2sgdngtdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICA+e3sgcHJvZ3JhbURhdGE/LkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50IH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnc3RhbmRhcmRzJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ3N0YW5kYXJkcycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5TVEFOREFSRFM8L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudCB9fVxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50ID09IDFcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50IH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxfY29udHJvbHMnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnaW50ZXJuYWxfY29udHJvbHMnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC1saC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+SU5URVJOQUwgQ09OVFJPTFM8L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50ID4gMFwiXG4gICAgICAgICAgICAgICAgICA+e3sgcHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQgfX1cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50ID09IDFcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpbHRlci1jYXJkIHZ4LWJnLXdoaXRlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTMgdngtdy0xMDBcIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnb3RoZXJzJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtbGgtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPk9USEVSUzwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQgfX1cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQgPT0gMVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiUHJvZ3JhbXNcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5BbGxPdGhlcnNQcm9ncmFtc0NvdW50IH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3JlZ3VsYXRpb25zJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdyZWd1bGF0aW9ucycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UkVHVUxBVElPTlM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudD4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnc3RhbmRhcmRzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdzdGFuZGFyZHMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNUQU5EQVJEUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudD4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxfY29udHJvbHMnXCIgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ2ludGVybmFsX2NvbnRyb2xzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5JTlRFUk5BTCBDT05UUk9MUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50PiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdvdGhlcnMnXCIgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ290aGVycycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudD4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsT3RoZXJzUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXNlYXJjaCB2eC1tYi0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2dyYW1zXCJcbiAgICAgICAgICAjc2VhcmNoUHJvZ3JhbVxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlLCAncHJvZ3JhbXMnKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx2dWktcGFnaW5hdGlvblxuICAgICAgICAqbmdJZj1cIiFsb2FkZXIgJiYgcHJvZ3JhbURhdGEudG90YWxQYWdlcyA+IDFcIlxuICAgICAgICBbZnJvbV09XCJwcm9ncmFtRGF0YS5mcm9tXCJcbiAgICAgICAgW3RvXT1cInByb2dyYW1EYXRhLnRvXCJcbiAgICAgICAgW3RvdGFsXT1cInByb2dyYW1EYXRhLnRvdGFsUmVjb3Jkc1wiXG4gICAgICAgIFtzaG93UGFnZURldGFpbF09XCJ0cnVlXCJcbiAgICAgICAgW3RvdGFsUGFnZV09XCJwcm9ncmFtRGF0YS50b3RhbFBhZ2VzXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cInByb2dyYW1EYXRhLmN1cnJlbnRQYWdlXCJcbiAgICAgICAgW3BhZ2VJblNpbmdsZVZpZXddPVwiNVwiXG4gICAgICAgIChwYWdlQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlKCRldmVudCwgJ3Byb2dyYW1zJylcIlxuICAgICAgPlxuICAgICAgPC92dWktcGFnaW5hdGlvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctcGFydCB2eC1tYi00XCJcbiAgICAgICAgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCIhbG9hZGVyICYmIHByb2dyYW1EYXRhLnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgID5cbiAgICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uZGF0YT8ubGVuZ3RoID09IDAgJiYgIWxvYWRlclwiXG4gICAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgICA+PC9hcHAtbm8tZGF0YT5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctaXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCA9PSBwcm9ncmFtPy5jYXRlZ29yeV9pZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb2dyYW0gb2YgcHJvZ3JhbURhdGEuZGF0YTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvdyBtYWluLWxpc3RcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkID09IHByb2dyYW0/LmNhdGVnb3J5X2lkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInByb2dyYW0/LnByb2dyYW1SZXBvcnRFeGlzdHMgPT0gMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJvZ3JhbSh0cnVlLCBwcm9ncmFtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itbm9cIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImkgKyBwcm9ncmFtRGF0YS5mcm9tXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGkgKyBwcm9ncmFtRGF0YS5mcm9tIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgICBbbmFtZV09XCIncG9saWN5TmFtZSdcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkID09IHByb2dyYW0/LmNhdGVnb3J5X2lkXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNlbGVjdFByb2dyYW0oJGV2ZW50LnRhcmdldC5jaGVja2VkLCBwcm9ncmFtKVwiXG4gICAgICAgICAgICAgID48L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBuYW1lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtd2l0aC1jb3VudFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7IHByb2dyYW0/Lm5hbWUgfCB0b29sdGlwVmFsaWRhdGlvbiB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBwcm9ncmFtPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wLTNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ3Byb2dyYW1zJywgJycpXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcCB2eC1wbC0yIHZ4LXByLTIgdngtdHh0LWJsdWUgdngtZnMtMTIgdngtbGgtNiB2eC1tci0xXCIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiPjxpIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoJ3Byb2dyYW1zJywnJylcIj4mI3hlOWFlOzwvaT57e3NlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lfX08L2Rpdj4gLS0+XG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidngtZnMtMTIgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPlBvbGljeSBzZWxlY3RlZDwvZGl2PiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItcmlnaHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNhbmNlbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tLTAgdngtbXItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC1yZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIENBTkNFTFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoJ3Byb2dyYW1zJylcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCIgY2xhc3M9XCJ3aGl0ZS1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tLTAgdngtbXItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC1ibHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBMSU5LIENBVEVHT1JJRVMgQU5EIFJFU1BPTlNJQklMSVRJRVM8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdwcm9ncmFtcycpXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC13aGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgTGluayA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWNvbmZpcm1hdGlvblwiXG4gICAgICAqbmdJZj1cImRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLXRvcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1ibG9ja1wiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTMwOzwvaT48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICBZb3UgaGF2ZSBvcHRlZCB0byBsaW5rIGFsbCB0aGUgcmVzcG9uc2liaWxpdGllcyB1bmRlciB0aGUgc2VsZWN0ZWRcbiAgICAgICAgICBwcm9ncmFtIFwie3sgc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWUgfX1cIiBhbmQgaXQncyBzdWItY2F0ZWdvcmllcy5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tYm90dG9tXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+QXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHByb2NlZWQ/PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm8tYnRuXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzRnJvbVByb2dyYW0oZmFsc2UpXCI+XG4gICAgICAgICAgICBOT1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ5ZXMtYnRuXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzRnJvbVByb2dyYW0odHJ1ZSlcIj5cbiAgICAgICAgICAgIFlFU1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ2NhdGVnb3JpZXMnXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygnY2F0ZWdvcmllcycpXCJcbiAgICAgICAgICBjbGFzcz1cImJhY2stYnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJsZS10eHQgdngtcC0wIHZ4LW1yLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZDs8L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBTZWxlY3QgcHJvZ3JhbSBjYXRlZ29yaWVzIHRvIGxpbmsgd2l0aCB0aGlzIHBvbGljeVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyXCI+JiN4ZTkwYjs8L2k+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBwcm9ncmFtIGNhdGVnb3JpZXNcIlxuICAgICAgICAgICNzZWFyY2hDYXRlZ29yeVxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY2F0ZWdvcmllcycpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZ1aS1wYWdpbmF0aW9uXG4gICAgICAgICpuZ0lmPVwiIWxvYWRlciAmJiBzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2UgPiAxXCJcbiAgICAgICAgW2Zyb21dPVwic3ViQ2F0ZWdvcmllc0xpc3QuZnJvbVwiXG4gICAgICAgIFt0b109XCJzdWJDYXRlZ29yaWVzTGlzdC50b1wiXG4gICAgICAgIFt0b3RhbF09XCJzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFJlY29yZHNcIlxuICAgICAgICBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXG4gICAgICAgIFt0b3RhbFBhZ2VdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cInN1YkNhdGVnb3JpZXNMaXN0LmN1cnJlbnRQYWdlXCJcbiAgICAgICAgW3BhZ2VJblNpbmdsZVZpZXddPVwiNVwiXG4gICAgICAgIChwYWdlQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlKCRldmVudCwgJ3Byb2dyYW1zJylcIlxuICAgICAgPlxuICAgICAgPC92dWktcGFnaW5hdGlvbj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpbmstcG9saWN5LXRhYmxlIHZ4LW1iLTRcIlxuICAgICAgICBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIiFsb2FkZXIgJiYgc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlID4gMVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyICYmIHN1YkNhdGVnb3JpZXNMaXN0LmRhdGE/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAjXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENBVEVHT1JJRVNcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgPCEtLSB3aGVuIGNoZWNrYm94IHdhcyBjaGVja2VkIHRoZW4gYWN0aXZlIGNsYXNzIHdhcyB0cnVlIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yeS5jYXRlZ29yeV9pZClcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHN1YkNhdGVnb3JpZXNMaXN0LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itbm9cIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIHN1YkNhdGVnb3JpZXNMaXN0LmZyb21cIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgaSArIHN1YkNhdGVnb3JpZXNMaXN0LmZyb20gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yeS5jYXRlZ29yeV9pZClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudC50YXJnZXQuY2hlY2tlZCwgY2F0ZWdvcnkpXCJcbiAgICAgICAgICAgICAgICA+PC92dWktY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNhdGVnb3J5Py5pdGVtX25hbWUgfCB0b29sdGlwVmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeT8uaXRlbV9uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICAgKm5nSWY9XCIhbG9hZGVyICYmIHN1YkNhdGVnb3JpZXNMaXN0LmRhdGE/Lmxlbmd0aCA9PSAwXCJcbiAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdjYXRlZ29yaWVzJywgc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXNbMF0pXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdPy5pdGVtX25hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgPnt7IHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdPy5pdGVtX25hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJvZ3JhbUNvdW50LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpLmxlbmd0aFwiXG4gICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbSBjYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIDogXCJQcm9ncmFtIGNhdGVnb3JpZXMgc2VsZWN0ZWRcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1Db3VudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZENhdGVnb3J5IG9mIHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzLWJ0biB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLCBzZWxlY3RlZENhdGVnb3J5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHNlbGVjdGVkQ2F0ZWdvcnk/Lml0ZW1fbmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcCB2eC1wbC0yIHZ4LXByLTIgdngtdHh0LWJsdWUgdngtZnMtMTIgdngtbGgtNiB2eC1tci0xXCIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLmxlbmd0aD4wXCI+PGkgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcmllcycsc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXNbMF0pXCIgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTlhZTs8L2k+IHt7c2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXNbMF0/Lml0ZW1fbmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLmxlbmd0aD4xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnQgdngtZnMtMTIgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1tbC0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIiB2Y1BvcG92ZXIgKGNsaWNrKT1cInByb2dyYW1Db3VudC5wb3BvdmVyKClcIiBwb3NpdGlvbj1cImxlZnRcIj4re3tzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMiB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCI+e3soc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpPy5sZW5ndGg9PTEpPydDYXRlZ29yeSBzZWxlY3RlZCc6J0NhdGVnb3JpZXMgc2VsZWN0ZWQnfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjcHJvZ3JhbUNvdW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzZWxlY3RlZENhdGVnb3J5IG9mIHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzLWJ0biB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tci0yXCIgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcmllcycsc2VsZWN0ZWRDYXRlZ29yeSlcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7c2VsZWN0ZWRDYXRlZ29yeT8uaXRlbV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygnY2F0ZWdvcmllcycpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXJlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ0FOQ0VMXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdjYXRlZ29yaWVzJylcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC13aGl0ZSB2eC1tbC01XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBZGQgPGkgY2xhc3M9XCJpY29ucyB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAncmVzcG9uc2liaWxpdGllcydcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpbmstcG9saWN5LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKCdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgICAgIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmxlLXR4dCB2eC1wLTAgdngtbXItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFkOzwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIFNlbGVjdCBSZXNwb25zaWJpbGl0aWVzIHRvIGxpbmsgd2l0aCB0aGlzIHBvbGljeVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJwYWdlLXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgUmVzcG9uc2liaWxpdGllcyB0byBsaW5rIHdpdGggdGhpcyBwb2xpY3kgPC9kaXY+IC0tPlxuXG4gICAgICA8IS0tIDxidXR0b24gIChjbGljayk9XCJnb0JhY2soJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOTFkOzwvaT4gQkFDSzwvYnV0dG9uPiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXNlYXJjaCB2eC1tYi0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXRpZXNcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlLCAncmVzcG9uc2liaWxpdGllcycpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZ1aS1wYWdpbmF0aW9uXG4gICAgICAgICpuZ0lmPVwiIWxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2UgPiAxXCJcbiAgICAgICAgW2Zyb21dPVwicmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbVwiXG4gICAgICAgIFt0b109XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b1wiXG4gICAgICAgIFt0b3RhbF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFJlY29yZHNcIlxuICAgICAgICBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXG4gICAgICAgIFt0b3RhbFBhZ2VdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmN1cnJlbnRQYWdlXCJcbiAgICAgICAgW3BhZ2VJblNpbmdsZVZpZXddPVwiNVwiXG4gICAgICAgIChwYWdlQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlKCRldmVudCwgJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgICA+XG4gICAgICA8L3Z1aS1wYWdpbmF0aW9uPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktdGFibGUgdngtbWItNFwiXG4gICAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiIWxvYWRlciAmJiBzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2UgPiAxXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0xpc3QuZGF0YT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICNcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgUkVTUE9OU0lCTElUSUVTXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgIDwhLS0gd2hlbiBjaGVja2JveCB3YXMgY2hlY2tlZCB0aGVuIGFjdGl2ZSBjbGFzcyB3YXMgdHJ1ZSAtLT5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5SZXBvcnRJZClcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itbm9cIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgaSArIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb20gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eS5SZXBvcnRJZFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0UmVzcG9uc2liaWxpdHkoJGV2ZW50LnRhcmdldC5jaGVja2VkLCByZXNwb25zaWJpbGl0eSlcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvdnVpLWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py5jb250cm9sX2lkICsgcmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICB8IHRvb2x0aXBWYWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIj57e1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8uY29udHJvbF9pZFxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICB7eyByZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidbQ0lELTIwMjEwMDA1XSBBLjguMS4zIEFjY2VwdGFibGUgVXNlIG9mIEFzc2V0cydcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbXItMVwiPltDSUQtMjAyMTAwMDVdPC9zcGFuPiBBLjguMS4zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0YWJsZSBVc2Ugb2YgQXNzZXRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAqbmdJZj1cIiFsb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0xpc3QuZGF0YT8ubGVuZ3RoID09IDBcIlxuICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zIHZ4LW10LTFcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgcmVtb3ZlKCdyZXNwb25zaWJpbGl0aWVzJywgc2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0pXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllc1swXT8uUmVwb3J0TmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgc2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0/LlJlcG9ydE5hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcG9uc2liaWxpdGllc1BvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IHNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzPy5zbGljZSgxKS5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyZXNwb25zaWJpbGl0aWVzUG9wb3Zlcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRyZXMgb2Ygc2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXM/LnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MtYnRuIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdyZXNwb25zaWJpbGl0aWVzJywgc2VsZWN0ZWRyZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgc2VsZWN0ZWRyZXM/LlJlcG9ydE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLXJpZ2h0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKCdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgICAgICAgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBDQU5DRUxcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwic2F2ZUNoYW5nZXMoJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzPy5sZW5ndGhcIlxuICAgICAgICAgICAgY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXdoaXRlIHZ4LW1sLTVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFERCA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlciB8fCBzdWJtaXNzaW9uTG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbjwvZGl2PlxuIl19
|
|
471
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9ncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS9saW5rLXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9saW5rLXByb2dyYW0vbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8sb0JBQW9CO0lBeUQvQixJQUE4QixrQkFBa0IsQ0FBQyxPQUFZO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7WUFDM0QsT0FBTyxFQUFFLEVBQUU7WUFDWCxVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQztJQUNKLENBQUM7SUF3Q0QsU0FBUztJQUVULFlBQ1UsY0FBOEIsRUFDOUIsUUFBeUI7UUFEekIsbUJBQWMsR0FBZCxj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QUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFPRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFHRSxZQUFZO3NCQUFwQixLQUFLO2dCQUN3QixrQkFBa0I7c0JBQS9DLEtBQUs7dUJBQUMsaUJBQWlCO2dCQU9mLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNzQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi9yZXN0YXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWxlY3RlZElkcywgU2VsZWN0ZWRWYWx1ZXMgfSBmcm9tICcuLi9wcm9ncmFtLWludGVncmF0aW9uLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgcHJvZ3JhbUxpc3QgfSBmcm9tICcuL3Byb2dyYW0tbGlzdC1tb2RlbCc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZjLWxpbmstcHJvZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rLXByb2dyYW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLXByb2dyYW0uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua1Byb2dyYW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBzdWJDYXRlZ29yaWVzTGlzdCA9IHtcbiAgICBmcm9tOiAxLFxuICAgIHRvOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIHRvdGFsUGFnZTogMCxcbiAgICB0b3RhbFJlY29yZHM6IDAsXG4gICAgZGF0YTogW10sXG4gIH07XG4gIHJlc3BvbnNpYmlsaXRpZXNMaXN0ID0ge1xuICAgIGZyb206IDEsXG4gICAgdG86IDAsXG4gICAgY3VycmVudFBhZ2U6IDEsXG4gICAgdG90YWxQYWdlOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBkYXRhOiBbXSxcbiAgfTtcblxuICBzZWFyY2hUZXh0ID0ge1xuICAgIHByb2dyYW06ICcnLFxuICAgIGNhdGVnb3J5OiAnJyxcbiAgICByZXNwb25zaWJpbGl0eTogJycsXG4gIH07XG5cbiAgc2VsZWN0ZWRWYWx1ZXM6IFNlbGVjdGVkVmFsdWVzID0ge1xuICAgIHByb2dyYW06IHt9LFxuICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgIHJlc3BvbnNpYmlsaXRpZXM6IFtdLFxuICB9O1xuICBzZWxlY3RlZElkczogU2VsZWN0ZWRJZHMgPSB7XG4gICAgY2F0ZWdvcmllczogW10sXG4gICAgcmVzcG9uc2liaWxpdGllczogW10sXG4gIH07XG5cbiAgc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuICBjdXJyZW50Q2F0ZWdvcnk6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHBvbGljeTogYW55ID0ge307XG4gIEBJbnB1dCgpIGN1cnJlbnRUYWIhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgY2hhbmdlVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdXBkYXRlZFByb2dyYW1EZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlITogYW55O1xuICBsb2FkZXIgPSBmYWxzZTtcbiAgcHJvZ3JhbVNvcnRCeTogJ2Rlc2MnIHwgJ2FzYycgPSAnZGVzYyc7XG4gIGN1cnJlbnRMaXN0OiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnID0gJ3Byb2dyYW1zJztcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSByZWZyZXNoTGlua2VkUG9saWNpZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vcHJvZ3JhbVxuICBzdWJMaXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByb2dyYW1zTGlzdDogYW55O1xuICBASW5wdXQoJ3NlbGVjdGVkUHJvZ3JhbScpIHNldCBnZXRTZWxlY3RlZFByb2dyYW0ocHJvZ3JhbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHJvZ3JhbSkpID8/IHtcbiAgICAgIHByb2dyYW06IHt9LFxuICAgICAgY2F0ZWdvcmllczogW10sXG4gICAgICByZXNwb25zaWJpbGl0aWVzOiBbXSxcbiAgICB9O1xuICB9XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRMaW5rUHJvZ3JhbSA9IHtcbiAgICBfaWQ6ICcnLFxuICB9O1xuICBASW5wdXQoKSBoaWRlUHJvZ3JhbXNMaXN0ITogYW55O1xuICBAVmlld0NoaWxkKCdzZWFyY2hQcm9ncmFtJykgc2VhcmNoUHJvZ3JhbSE6IGFueTtcblxuICBwcmV2aW91c1NlbGVjdGVkVmFsdWVzOiBhbnkgPSB7XG4gICAgcHJvZ3JhbToge30sXG4gICAgY2F0ZWdvcmllczogW10sXG4gIH07XG4gIHByb2dyYW1EYXRhOiBwcm9ncmFtTGlzdCA9IHtcbiAgICBkYXRhOiBbXSxcbiAgICBmcm9tOiAwLFxuICAgIHRvOiAwLFxuICAgIHRvdGFsUGFnZXM6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIEFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50OiAwLFxuICAgIEFsbE90aGVyc1Byb2dyYW1zQ291bnQ6IDAsXG4gICAgQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnQ6IDAsXG4gICAgQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ6IDAsXG4gICAgU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ6IDAsXG4gICAgU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ6IDAsXG4gIH07XG4gIHByb2dyYW1UeXBlT2JqZWN0ID0ge1xuICAgIHJlZ3VsYXRpb25zOiAxLFxuICAgIHN0YW5kYXJkczogMixcbiAgICBpbnRlcm5hbF9jb250cm9sczogMyxcbiAgICBvdGhlcnM6IDAsXG4gIH07XG5cbiAgZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2UgPSBmYWxzZTtcblxuICBhY3RpdmVUYWI6ICdyZWd1bGF0aW9ucycgfCAnc3RhbmRhcmRzJyB8ICdpbnRlcm5hbF9jb250cm9scycgfCAnb3RoZXJzJyA9XG4gICAgJ3JlZ3VsYXRpb25zJztcblxuICAvL3Byb2dyYW1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlc3RBcGlTZXJ2aWNlOiBSZXN0QXBpU2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5nZXRQcm9ncmFtcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGUgPSB0aGlzLnJlc3RBcGlTZXJ2aWNlLmdldEJ1c2luZXNzQ3ljbGUoKTtcbiAgfVxuXG4gIGdldFByb2dyYW1zKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgLy8gcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbW9kZScsICdjb21wbGlhbmNlQ2F0ZWdvcnkvcHJvZ3JhbUxpc3QnKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKFxuICAgICAgJ3Byb2dyYW1UeXBlJyxcbiAgICAgIHRoaXMucHJvZ3JhbVR5cGVPYmplY3RbdGhpcy5hY3RpdmVUYWJdXG4gICAgKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlTmFtZScsICdwb2xpY3lXb3Jrcm9vbScpO1xuICAgIGlmIChkYXRhPy5zZWFyY2ggfHwgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0pIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NlYXJjaFRleHQnLCB0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2VObycsIHRoaXMucHJvZ3JhbURhdGEuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGFjdGlvbjogJ2NvbXBsaWFuY2VHZXQnLFxuICAgICAgcGFyYW1zLFxuICAgIH07XG4gICAgdGhpcy5yZXN0QXBpU2VydmljZVxuICAgICAgLmFwaURlbGVnYXRlKHJlcXVlc3QsICdjb21wbGlhbmNlQ2F0ZWdvcnkvcHJvZ3JhbUxpc3QnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuZGF0YSA9IHJlcy5kYXRhO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuZnJvbSA9IHJlcy5mcm9tO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEudG8gPSByZXMudG87XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS50b3RhbFBhZ2VzID0gcmVzLnRvdGFsUGFnZXM7XG4gICAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS50b3RhbFJlY29yZHMgPSByZXMudG90YWxSZWNvcmRzO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQgPVxuICAgICAgICAgICAgcmVzLkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50O1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuQWxsT3RoZXJzUHJvZ3JhbXNDb3VudCA9IHJlcy5BbGxPdGhlcnNQcm9ncmFtc0NvdW50O1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnQgPVxuICAgICAgICAgICAgcmVzLkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50O1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEuQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50ID1cbiAgICAgICAgICAgIHJlcy5BbGxTdGFuZGFyZFByb2dyYW1zQ291bnQ7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGdldENhdGVnb3JpZXMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYXJlbnRJZCcsIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHJvZ3JhbT8uX2lkKTtcblxuICAgIGlmIChkYXRhPy5zZWFyY2gpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3EnLCB0aGlzLnNlYXJjaFRleHQuY2F0ZWdvcnkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgYWN0aW9uOiAncHJvZ3JhbUVuZHBvaW50JyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVNlcnZpY2VcbiAgICAgIC5hcGlEZWxlZ2F0ZShyZXF1ZXN0LCAnL3N1YkNhdGVnb3JpZXMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuZnJvbSA9IHJlcy5pdGVtc19mcm9tID8/IDE7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC50byA9IHJlcy5pdGVtc190byA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlID0gcmVzLnRvdGFsX3BhZ2VzID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC50b3RhbFJlY29yZHMgPSByZXMudG90YWxfaXRlbXMgPz8gMDtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LmRhdGEgPSByZXMuZGF0YSA/PyBbXTtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG4gIGNoYW5nZVRhYlByb2dyYW0oXG4gICAgdHlwZTogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsX2NvbnRyb2xzJyB8ICdvdGhlcnMnXG4gICkge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gdHlwZTtcbiAgICB0aGlzLnByb2dyYW1EYXRhLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoUHJvZ3JhbS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5nZXRQcm9ncmFtcygpO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdGllcyhkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBhY3Rpb246ICdwcm9ncmFtRW5kcG9pbnQnLFxuICAgICAgcGF5bG9hZE9iamVjdDoge1xuICAgICAgICBjYXRlZ29yeUlkczogdGhpcy5zZWxlY3RlZElkcz8uY2F0ZWdvcmllcyxcbiAgICAgICAgcGFnZU5vOiB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0Py5jdXJyZW50UGFnZSxcbiAgICAgICAgc2VhcmNoVGV4dDogZGF0YT8uc2VhcmNoID8gdGhpcy5zZWFyY2hUZXh0Py5yZXNwb25zaWJpbGl0eSA6ICcnLFxuICAgICAgICBwYWdlTmFtZTogJ3BvbGljeVdvcmtyb29tJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLnJlc3RBcGlTZXJ2aWNlXG4gICAgICAuYXBpRGVsZWdhdGUocmVxdWVzdCwgJy9jYXRlZ29yeVJlc3BvbnNpYmlsaXRpZXMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tID0gcmVzLml0ZW1zX2Zyb20gPz8gMTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvID0gcmVzLml0ZW1zX3RvID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2UgPSByZXMudG90YWxfcGFnZXMgPz8gMTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUmVjb3JkcyA9IHJlcy50b3RhbF9pdGVtcyA/PyAwO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuZGF0YSA9IHJlcy5kYXRhID8/IFtdO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlUGFnZShldmVudDogYW55LCB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMucHJvZ3JhbURhdGEuY3VycmVudFBhZ2UgPSBldmVudDtcbiAgICAgICAgdGhpcy5nZXRQcm9ncmFtcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LmN1cnJlbnRQYWdlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmN1cnJlbnRQYWdlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgc2VhcmNoQnkoZXZlbnQ6IGFueSwgdHlwZTogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJykge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LnByb2dyYW0gIT0gZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0UHJvZ3JhbXMoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllcyh7IHNlYXJjaDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ID0gZXZlbnQ7XG4gICAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKHsgc2VhcmNoOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFByb2dyYW0oZXZlbnQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnByb2dyYW0gPSBkYXRhO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q2F0ZWdvcnkoZXZlbnQ6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkuY2F0ZWdvcnlfaWQpO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gY2F0ZWdvcnkuY2F0ZWdvcnlfaWRcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBjYXRlZ29yeS5jYXRlZ29yeV9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIHNlbGVjdFJlc3BvbnNpYmlsaXR5KGV2ZW50OiBhbnksIGRhdGE6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLnB1c2goZGF0YS5SZXBvcnRJZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMucHVzaChkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGRhdGEuUmVwb3J0SWRcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGNvbnN0IHJlcG9ydEluZGV4ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuUmVwb3J0SWQgPT0gZGF0YS5SZXBvcnRJZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5zcGxpY2UocmVwb3J0SW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICBnb0JhY2soZnJvbT86ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJykge1xuICAgIGlmIChmcm9tKSB7XG4gICAgICBzd2l0Y2ggKGZyb20pIHtcbiAgICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdwcm9ncmFtcyc7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZSh0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnLCBpdGVtOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb2dyYW1zJzpcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wcm9ncmFtID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT0gaXRlbS5jYXRlZ29yeV9pZFxuICAgICAgICApO1xuICAgICAgICBpZiAoY2F0ZWdvcnlJbmRleCAhPSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2F0ZWdvcnlJZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uY2F0ZWdvcnlfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNhdGVnb3J5SWRJbmRleCAhPSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5zcGxpY2UoY2F0ZWdvcnlJZEluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICBjb25zdCByZXNwSW5kZXggPSB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlLlJlcG9ydElkID09IGl0ZW0uUmVwb3J0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlc3BJbmRleCAhPSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5zcGxpY2UocmVzcEluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBpdGVtLlJlcG9ydElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmRleCAhPSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc2F2ZUNoYW5nZXMoXG4gICAgdHlwZTogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJyB8ICdwcm9ncmFtc09ubHknXG4gICkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ3Jlc3BvbnNpYmlsaXRpZXMnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5zdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcm9ncmFtc09ubHknOlxuICAgICAgICB0aGlzLmRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNhdmVDaGFuZ2VzRnJvbVByb2dyYW0oZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3VibWl0cHJvZ3JhbUludGVncmF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKSB7XG4gICAgLy8gdGhpcy5zdWJtaXNzaW9uTG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtb2RlJywgJ3Byb2dyYW1Qb2xpY3lVcGRhdGUvdXBkYXRlJyk7XG5cbiAgICBjb25zdCBjYXRlZ29yeUFycmF5ID0gdGhpcy5zZWxlY3RlZElkcz8uY2F0ZWdvcmllcztcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBwb2xpY3lJZDogdGhpcy5wb2xpY3k/LnBvbGljeV9pZCA/PyAwLFxuICAgICAgcmVwb3J0X2lkczogdGhpcy5zZWxlY3RlZElkcz8ucmVzcG9uc2liaWxpdGllcyA/PyAwLFxuICAgICAgY2F0ZWdvcnlfaWQ6IFsuLi5uZXcgU2V0KGNhdGVnb3J5QXJyYXkpXSxcbiAgICAgIHBhcmVudElkOiB0aGlzLnNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCxcbiAgICB9O1xuICAgIGxldCByZW1vdmUgPSB7fTtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGVkTGlua1Byb2dyYW0/Ll9pZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8uX2lkICE9PSB0aGlzLnNlbGVjdGVkTGlua1Byb2dyYW0/Ll9pZFxuICAgICkge1xuICAgICAgcmVtb3ZlID0ge1xuICAgICAgICBwb2xpY3lJZHM6IFt0aGlzLnBvbGljeT8ucG9saWN5X2lkID8/IDBdLFxuICAgICAgICBwcm9ncmFtSWQ6IHRoaXMuc2VsZWN0ZWRMaW5rUHJvZ3JhbT8uX2lkLFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEJ1c2luZXNzQ3ljbGUgPSB7XG4gICAgICBzdGFydF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zdGFydF9kYXRlLFxuICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgc2VsZWN0ZWRfY3ljbGVfYXJyOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zZWxlY3RlZF9jeWNsZV9hcnIsXG4gICAgICBzZWxlY3RlZF9jeWNsZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGUsXG4gICAgfTtcbiAgICBsZXQgbGlua1Byb2dyYW0gPSB7XG4gICAgICBhZGRlZDogT2JqZWN0LmtleXMocGF5bG9hZCkubGVuZ3RoID8gW3BheWxvYWRdIDogW10sXG4gICAgICByZW1vdmVkOiBPYmplY3Qua2V5cyhyZW1vdmUpLmxlbmd0aCA/IFtyZW1vdmVdIDogW10sXG4gICAgfTtcbiAgICBsZXQgc2VsZWN0ZWRQcm9ncmFtID0ge1xuICAgICAgc2VsZWN0ZWRWYWx1ZXM6IHRoaXMuc2VsZWN0ZWRWYWx1ZXMsXG4gICAgICBsaW5rUHJvZ3JhbTogbGlua1Byb2dyYW0sXG4gICAgICBidXNpbmVzc0N5Y2xlOiBjdXJyZW50QnVzaW5lc3NDeWNsZSxcbiAgICB9O1xuICAgIHRoaXMudXBkYXRlZFByb2dyYW1EZXRhaWxzLmVtaXQoXG4gICAgICBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkUHJvZ3JhbSkpXG4gICAgKTtcbiAgICB0aGlzLnN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGFjdGlvbjogJy9jb21wbGlhbmNlX3Bvc3QnLFxuICAgICAgcGFyYW1zLFxuICAgICAgZGF0YTogcGF5bG9hZCxcbiAgICAgIGJ1c2luZXNzQ3ljbGU6IGN1cnJlbnRCdXNpbmVzc0N5Y2xlLFxuICAgIH07XG4gICAgLy8gdGhpcy5yZXN0QXBpU2VydmljZS5hcGlEZWxlZ2F0ZShyZXF1ZXN0KS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKHtcbiAgICAvLyAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgIC8vICAgICB0aGlzLnN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcbiAgICAvLyAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdUaGUgcHJvZ3JhbSBoYXMgYmVlbiBsaW5rZWQgd2l0aCB0aGlzIFBvbGljeS4nLCAnc3VjY2VzcycpO1xuICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgICAgICBpZih0aGlzLmN1cnJlbnRUYWIgIT0gJ2xpbmtlZF9wcm9ncmFtcycpe1xuICAgIC8vICAgICAgICAgdGhpcy5yZWZyZXNoTGlua2VkUG9saWNpZXMuZW1pdCgpO1xuICAgIC8vICAgICAgICAgLy8gdGhpcy5jaGFuZ2VUYWIuZW1pdCgpO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICAvLyAgICAgfSwgMTAwMCk7XG5cbiAgICAvLyAgIH0sXG4gICAgLy8gICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgLy8gICAgIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuICAgIC8vICAgICB0aGlzLnNuYWNrYmFyLnNob3coXCJPb3BzIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB3ZSB3ZXJlIHVuYWJsZSB0byBjb21wbGV0ZSB0aGlzIGFjdGlvbi4gTGV0J3MgZ2l2ZSBpdCBhbm90aGVyIHRyeSBzaGFsbCB3ZSA/XCIpO1xuICAgIC8vICAgfSxcbiAgICAvLyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpbmstcG9saWN5XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSAncHJvZ3JhbXMnXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgUHJvZ3JhbTwvZGl2PlxuICAgICAgPCEtLSA8YnV0dG9uIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTIgdngtZnctNTAwIHZ4LWxhYmxlLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+IEJhY2s8L2J1dHRvbj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByb2dyYW0tbGlzdGluZy1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmQtcm93IHZ4LWQtZmxleCB2eC1tYi0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZpbHRlci1jYXJkIHZ4LWJnLXdoaXRlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTMgdngtdy0xMDBcIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIlxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdyZWd1bGF0aW9ucycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5SRUdVTEFUSU9OUzwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQgPiAwXCJcbiAgICAgICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudCB9fVxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQgPT0gMVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiUHJvZ3JhbXNcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5BbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIlxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdzdGFuZGFyZHMnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC1saC0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+U1RBTkRBUkRTPC9sYWJlbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQgPiAwXCJcbiAgICAgICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQgfX1cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudCA9PSAxXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJQcm9ncmFtc1wiXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ8L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWVuZCB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyIHZ4LXR4dC13aGl0ZSB2eC1mdy01MDAgdngtZC1pbmxpbmUtYmxvY2sgdngtdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICA+e3sgcHJvZ3JhbURhdGE/LkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ2ludGVybmFsX2NvbnRyb2xzJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ2ludGVybmFsX2NvbnRyb2xzJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtbGgtM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgPnt7IHByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50IH19XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudCA9PSAxXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJQcm9ncmFtc1wiXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ8L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWVuZCB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyIHZ4LXR4dC13aGl0ZSB2eC1mdy01MDAgdngtZC1pbmxpbmUtYmxvY2sgdngtdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICA+e3sgcHJvZ3JhbURhdGE/LkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50IH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ290aGVycycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5PVEhFUlM8L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQgPiAwXCJcbiAgICAgICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50IH19XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50ID09IDFcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlByb2dyYW1zXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgID57eyBwcm9ncmFtRGF0YT8uQWxsT3RoZXJzUHJvZ3JhbXNDb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgncmVndWxhdGlvbnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlJFR1VMQVRJT05TPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnc3RhbmRhcmRzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxTdGFuZGFyZFByb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ2ludGVybmFsX2NvbnRyb2xzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdpbnRlcm5hbF9jb250cm9scycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+SU5URVJOQUwgQ09OVFJPTFM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudD4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdvdGhlcnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk9USEVSUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbE90aGVyc1Byb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyXCI+JiN4ZTkwYjs8L2k+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9ncmFtc1wiXG4gICAgICAgICAgI3NlYXJjaFByb2dyYW1cbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoQnkoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ3Byb2dyYW1zJylcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8dnVpLXBhZ2luYXRpb25cbiAgICAgICAgKm5nSWY9XCIhbG9hZGVyICYmIHByb2dyYW1EYXRhLnRvdGFsUGFnZXMgPiAxXCJcbiAgICAgICAgW2Zyb21dPVwicHJvZ3JhbURhdGEuZnJvbVwiXG4gICAgICAgIFt0b109XCJwcm9ncmFtRGF0YS50b1wiXG4gICAgICAgIFt0b3RhbF09XCJwcm9ncmFtRGF0YS50b3RhbFJlY29yZHNcIlxuICAgICAgICBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXG4gICAgICAgIFt0b3RhbFBhZ2VdPVwicHJvZ3JhbURhdGEudG90YWxQYWdlc1wiXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJwcm9ncmFtRGF0YS5jdXJyZW50UGFnZVwiXG4gICAgICAgIFtwYWdlSW5TaW5nbGVWaWV3XT1cIjVcIlxuICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsICdwcm9ncmFtcycpXCJcbiAgICAgID5cbiAgICAgIDwvdnVpLXBhZ2luYXRpb24+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLXBhcnQgdngtbWItNFwiXG4gICAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiIWxvYWRlciAmJiBwcm9ncmFtRGF0YS50b3RhbFBhZ2VzID4gMVwiXG4gICAgICA+XG4gICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICpuZ0lmPVwicHJvZ3JhbURhdGE/LmRhdGE/Lmxlbmd0aCA9PSAwICYmICFsb2FkZXJcIlxuICAgICAgICAgIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIlxuICAgICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCJcbiAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWl0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICBzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8uY2F0ZWdvcnlfaWQgPT0gcHJvZ3JhbT8uY2F0ZWdvcnlfaWRcbiAgICAgICAgICBcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9ncmFtIG9mIHByb2dyYW1EYXRhLmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3cgbWFpbi1saXN0XCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCA9PSBwcm9ncmFtPy5jYXRlZ29yeV9pZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJwcm9ncmFtPy5wcm9ncmFtUmVwb3J0RXhpc3RzID09IDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByb2dyYW0odHJ1ZSwgcHJvZ3JhbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gc2VyaWFsXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJpICsgcHJvZ3JhbURhdGEuZnJvbVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpICsgcHJvZ3JhbURhdGEuZnJvbSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiJ3BvbGljeU5hbWUnXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCA9PSBwcm9ncmFtPy5jYXRlZ29yeV9pZFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZWxlY3RQcm9ncmFtKCRldmVudC50YXJnZXQuY2hlY2tlZCwgcHJvZ3JhbSlcIlxuICAgICAgICAgICAgICA+PC9hcHAtY3MtcmFkaW8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gbmFtZVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZS1pbm5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLXdpdGgtY291bnRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFwcFRvb2x0aXA9XCJ7eyBwcm9ncmFtPy5uYW1lIHwgdG9vbHRpcFZhbGlkYXRpb24gfX1cIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgcHJvZ3JhbT8ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdwcm9ncmFtcycsICcnKVwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAgdngtcGwtMiB2eC1wci0yIHZ4LXR4dC1ibHVlIHZ4LWZzLTEyIHZ4LWxoLTYgdngtbXItMVwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIj48aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKCdwcm9ncmFtcycsJycpXCI+JiN4ZTlhZTs8L2k+e3tzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZX19PC9kaXY+IC0tPlxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj5Qb2xpY3kgc2VsZWN0ZWQ8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLXJpZ2h0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbS0wIHZ4LW1yLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBDQU5DRUxcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdwcm9ncmFtcycpXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiIGNsYXNzPVwid2hpdGUtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbS0wIHZ4LW1yLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtYmx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgTElOSyBDQVRFR09SSUVTIEFORCBSRVNQT05TSUJJTElUSUVTPC9idXR0b24+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ2hhbmdlcygncHJvZ3JhbXMnKVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIExpbmsgPGkgY2xhc3M9XCJpY29ucyB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tbGlzdGluZy1jb25maXJtYXRpb25cIlxuICAgICAgKm5nSWY9XCJkaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi10b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYmxvY2tcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzMDs8L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgICAgWW91IGhhdmUgb3B0ZWQgdG8gbGluayBhbGwgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdW5kZXIgdGhlIHNlbGVjdGVkXG4gICAgICAgICAgcHJvZ3JhbSBcInt7IHNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lIH19XCIgYW5kIGl0J3Mgc3ViLWNhdGVnb3JpZXMuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLWJvdHRvbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBwcm9jZWVkPzwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5vLWJ0blwiIChjbGljayk9XCJzYXZlQ2hhbmdlc0Zyb21Qcm9ncmFtKGZhbHNlKVwiPlxuICAgICAgICAgICAgTk9cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwieWVzLWJ0blwiIChjbGljayk9XCJzYXZlQ2hhbmdlc0Zyb21Qcm9ncmFtKHRydWUpXCI+XG4gICAgICAgICAgICBZRVNcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMaXN0ID09ICdjYXRlZ29yaWVzJ1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJnb0JhY2soJ2NhdGVnb3JpZXMnKVwiXG4gICAgICAgICAgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFibGUtdHh0IHZ4LXAtMCB2eC1tci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWQ7PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgU2VsZWN0IHByb2dyYW0gY2F0ZWdvcmllcyB0byBsaW5rIHdpdGggdGhpcyBwb2xpY3lcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktc2VhcmNoIHZ4LW1iLTJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggcHJvZ3JhbSBjYXRlZ29yaWVzXCJcbiAgICAgICAgICAjc2VhcmNoQ2F0ZWdvcnlcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoQnkoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NhdGVnb3JpZXMnKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx2dWktcGFnaW5hdGlvblxuICAgICAgICAqbmdJZj1cIiFsb2FkZXIgJiYgc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlID4gMVwiXG4gICAgICAgIFtmcm9tXT1cInN1YkNhdGVnb3JpZXNMaXN0LmZyb21cIlxuICAgICAgICBbdG9dPVwic3ViQ2F0ZWdvcmllc0xpc3QudG9cIlxuICAgICAgICBbdG90YWxdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzXCJcbiAgICAgICAgW3Nob3dQYWdlRGV0YWlsXT1cInRydWVcIlxuICAgICAgICBbdG90YWxQYWdlXT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZVwiXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJzdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZVwiXG4gICAgICAgIFtwYWdlSW5TaW5nbGVWaWV3XT1cIjVcIlxuICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsICdwcm9ncmFtcycpXCJcbiAgICAgID5cbiAgICAgIDwvdnVpLXBhZ2luYXRpb24+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS10YWJsZSB2eC1tYi00XCJcbiAgICAgICAgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCIhbG9hZGVyICYmIHN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZSA+IDFcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlciAmJiBzdWJDYXRlZ29yaWVzTGlzdC5kYXRhPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgI1xuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDQVRFR09SSUVTXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgIDwhLS0gd2hlbiBjaGVja2JveCB3YXMgY2hlY2tlZCB0aGVuIGFjdGl2ZSBjbGFzcyB3YXMgdHJ1ZSAtLT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcnkuY2F0ZWdvcnlfaWQpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBzdWJDYXRlZ29yaWVzTGlzdC5kYXRhOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImkgKyBzdWJDYXRlZ29yaWVzTGlzdC5mcm9tXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGkgKyBzdWJDYXRlZ29yaWVzTGlzdC5mcm9tIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcnkuY2F0ZWdvcnlfaWQpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RDYXRlZ29yeSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQsIGNhdGVnb3J5KVwiXG4gICAgICAgICAgICAgICAgPjwvdnVpLWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjYXRlZ29yeT8uaXRlbV9uYW1lIHwgdG9vbHRpcFZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgY2F0ZWdvcnk/Lml0ZW1fbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICpuZ0lmPVwiIWxvYWRlciAmJiBzdWJDYXRlZ29yaWVzTGlzdC5kYXRhPy5sZW5ndGggPT0gMFwiXG4gICAgICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiXG4gICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxuICAgICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItbGVmdCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcmllcycsIHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdKVwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXT8uaXRlbV9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXT8uaXRlbV9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInByb2dyYW1Db3VudC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RoIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGhcIlxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMiB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyBcIlByb2dyYW0gY2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICA6IFwiUHJvZ3JhbSBjYXRlZ29yaWVzIHNlbGVjdGVkXCJcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFwcC1wb3BvdmVyICNwcm9ncmFtQ291bnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRDYXRlZ29yeSBvZiBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSlcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcy1idG4gdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdjYXRlZ29yaWVzJywgc2VsZWN0ZWRDYXRlZ29yeSlcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57eyBzZWxlY3RlZENhdGVnb3J5Py5pdGVtX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAgdngtcGwtMiB2eC1wci0yIHZ4LXR4dC1ibHVlIHZ4LWZzLTEyIHZ4LWxoLTYgdngtbXItMVwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5sZW5ndGg+MFwiPjxpIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdKVwiIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5YWU7PC9pPiB7e3NlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdPy5pdGVtX25hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5sZW5ndGg+MVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50IHZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtcC0wIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtbWwtMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCIgdmNQb3BvdmVyIChjbGljayk9XCJwcm9ncmFtQ291bnQucG9wb3ZlcigpXCIgcG9zaXRpb249XCJsZWZ0XCI+K3t7c2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTIgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPnt7KHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKT8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnkgc2VsZWN0ZWQnOidDYXRlZ29yaWVzIHNlbGVjdGVkJ319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1Db3VudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRDYXRlZ29yeSBvZiBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcy1idG4gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbXItMlwiIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkQ2F0ZWdvcnkpXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e3NlbGVjdGVkQ2F0ZWdvcnk/Lml0ZW1fbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItcmlnaHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soJ2NhdGVnb3JpZXMnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNhbmNlbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC1yZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIENBTkNFTFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ2hhbmdlcygnY2F0ZWdvcmllcycpXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGUgdngtbWwtNVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWRkIDxpIGNsYXNzPVwiaWNvbnMgdngtbWwtMlwiPiYjeGU5MWU7PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExpc3QgPT0gJ3Jlc3BvbnNpYmlsaXRpZXMnXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygncmVzcG9uc2liaWxpdGllcycpXCJcbiAgICAgICAgICBjbGFzcz1cImJhY2stYnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJsZS10eHQgdngtcC0wIHZ4LW1yLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZDs8L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBTZWxlY3QgUmVzcG9uc2liaWxpdGllcyB0byBsaW5rIHdpdGggdGhpcyBwb2xpY3lcbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFJlc3BvbnNpYmlsaXRpZXMgdG8gbGluayB3aXRoIHRoaXMgcG9saWN5IDwvZGl2PiAtLT5cblxuICAgICAgPCEtLSA8YnV0dG9uICAoY2xpY2spPVwiZ29CYWNrKCdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+IEJBQ0s8L2J1dHRvbj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyXCI+JiN4ZTkwYjs8L2k+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoQnkoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx2dWktcGFnaW5hdGlvblxuICAgICAgICAqbmdJZj1cIiFsb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlID4gMVwiXG4gICAgICAgIFtmcm9tXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIlxuICAgICAgICBbdG9dPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG9cIlxuICAgICAgICBbdG90YWxdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzXCJcbiAgICAgICAgW3Nob3dQYWdlRGV0YWlsXT1cInRydWVcIlxuICAgICAgICBbdG90YWxQYWdlXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZVwiXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZVwiXG4gICAgICAgIFtwYWdlSW5TaW5nbGVWaWV3XT1cIjVcIlxuICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsICdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgPlxuICAgICAgPC92dWktcGFnaW5hdGlvbj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpbmstcG9saWN5LXRhYmxlIHZ4LW1iLTRcIlxuICAgICAgICBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIiFsb2FkZXIgJiYgc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlID4gMVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAjXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFJFU1BPTlNJQkxJVElFU1xuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgICA8IS0tIHdoZW4gY2hlY2tib3ggd2FzIGNoZWNrZWQgdGhlbiBhY3RpdmUgY2xhc3Mgd2FzIHRydWUgLS0+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuUmVwb3J0SWQpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzTGlzdC5kYXRhO1xuICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImkgKyByZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGkgKyByZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHkuUmVwb3J0SWRcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFJlc3BvbnNpYmlsaXR5KCRldmVudC50YXJnZXQuY2hlY2tlZCwgcmVzcG9uc2liaWxpdHkpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8uY29udHJvbF9pZCArIHJlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgfCB0b29sdGlwVmFsaWRhdGlvblxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tci0xXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LmNvbnRyb2xfaWRcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAge3sgcmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInW0NJRC0yMDIxMDAwNV0gQS44LjEuMyBBY2NlcHRhYmxlIFVzZSBvZiBBc3NldHMnXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+PHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIj5bQ0lELTIwMjEwMDA1XTwvc3Bhbj4gQS44LjEuM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VwdGFibGUgVXNlIG9mIEFzc2V0czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICAgKm5nSWY9XCIhbG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE/Lmxlbmd0aCA9PSAwXCJcbiAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtMyB2eC1tdC0xXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgIHJlbW92ZSgncmVzcG9uc2liaWxpdGllcycsIHNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzWzBdKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0/LlJlcG9ydE5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgPnt7IHNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzWzBdPy5SZXBvcnROYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc3BvbnNpYmlsaXRpZXNQb3BvdmVyLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllcz8uc2xpY2UoMSkubGVuZ3RoIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjcmVzcG9uc2liaWxpdGllc1BvcG92ZXI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkcmVzIG9mIHNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzPy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzLWJ0biB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmVzcG9uc2liaWxpdGllcycsIHNlbGVjdGVkcmVzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHNlbGVjdGVkcmVzPy5SZXBvcnROYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygncmVzcG9uc2liaWxpdGllcycpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXJlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ0FOQ0VMXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC13aGl0ZSB2eC1tbC01XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBREQgPGkgY2xhc3M9XCJpY29ucyB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXIgfHwgc3VibWlzc2lvbkxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48L2Rpdj5cbiJdfQ==
|