@alauda-fe/network 1.0.2 → 1.0.3
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/components/fixed-ip/component.mjs +5 -4
- package/esm2022/lib/components/loadbalancer-spec-form/component.mjs +2 -2
- package/esm2022/lib/components/service-annotations-form/annotations.component.mjs +2 -2
- package/esm2022/lib/components/service-form/component.mjs +2 -2
- package/esm2022/lib/components/service-form/fieldset/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/components/rule-table/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/form/network-policy/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/form/network-policy-ip-block/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/form/network-policy-peer/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/form/network-policy-ports/component.mjs +2 -2
- package/esm2022/lib/features/network-policy/form/network-policy-remote-except-input/component.mjs +2 -2
- package/esm2022/lib/services/network-util.service.mjs +7 -12
- package/esm2022/lib/services/subnet-util.service.mjs +8 -11
- package/esm2022/lib/utils/cidr-exports.mjs +1 -1
- package/lib/components/fixed-ip/component.d.ts +1 -1
- package/lib/services/network-util.service.d.ts +3 -2
- package/lib/services/subnet-util.service.d.ts +3 -2
- package/lib/types/resource-definition.d.ts +12 -1
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -294,8 +294,9 @@ export class FixedIpInputComponent extends CommonFormControl {
|
|
|
294
294
|
return excludeIps.some(excludeIp => {
|
|
295
295
|
if (excludeIp.includes('..')) {
|
|
296
296
|
const [start, end] = excludeIp?.split('..');
|
|
297
|
-
const
|
|
298
|
-
const
|
|
297
|
+
const _Builder = getAddressBuilder(this.adaptIpMode(start));
|
|
298
|
+
const _startAddress = new _Builder(start).bigInteger();
|
|
299
|
+
const _endAddress = new _Builder(end).bigInteger();
|
|
299
300
|
const _ip = new Builder(ip).bigInteger();
|
|
300
301
|
return (_startAddress.compareTo(_ip) <= 0 && _ip.compareTo(_endAddress) <= 0);
|
|
301
302
|
}
|
|
@@ -503,7 +504,7 @@ __decorate([
|
|
|
503
504
|
FormsModule,
|
|
504
505
|
TagModule,
|
|
505
506
|
TRANSLATE_MODULE,
|
|
506
|
-
], template: "<aui-form-item [width]=\"formItemWidth\">\n <label auiFormItemLabel>{{\n label || ('network.ip_address' | translate)\n }}</label>\n <input\n *ngIf=\"!multiple\"\n aui-input\n auiFormItemControl\n [ngModel]=\"model\"\n (ngModelChange)=\"emitValue($event)\"\n #ipAddress=\"ngModel\"\n [placeholder]=\"placeholder || ('dhcp_placeholder' | translate)\"\n [auiAutocomplete]=\"suggestions\"\n />\n <aui-tags-input\n *ngIf=\"multiple\"\n class=\"flex-1\"\n auiFormItemControl\n #tagsInput\n [ngModel]=\"model\"\n (ngModelChange)=\"emitValue(uniq($event))\"\n #ipAddress=\"ngModel\"\n [placeholder]=\"placeholder || ('dhcp_placeholder' | translate)\"\n [auiAutocomplete]=\"suggestions\"\n [inputAsyncValidator]=\"validate\"\n ></aui-tags-input>\n <aui-autocomplete #suggestions>\n <aui-suggestion\n *ngFor=\"let ipAddressSuggestion of ipAddressSuggestions$ | async\"\n [value]=\"ipAddressSuggestion\"\n >\n {{ ipAddressSuggestion }}\n <aui-tag\n *ngIf=\"ipAddressSuggestion | pure: isReservedIp: $subnetInfo().excludeIps\"\n [border]=\"true\"\n [size]=\"'mini'\"\n type=\"info\"\n >\n {{ 'network.reserved_ip' | translate }}\n </aui-tag>\n </aui-suggestion>\n <aui-autocomplete-placeholder>\n {{\n ((ipAddressSuggestions$ | async)\n ? 'network.no_available_suggestion'\n : 'loading'\n ) | translate\n }}\n </aui-autocomplete-placeholder>\n </aui-autocomplete>\n <ng-container\n *ngIf=\"addonTip != null\"\n auiFormItemAddon\n >\n <aui-icon\n *ngIf=\"addonTip\"\n icon=\"question_circle\"\n class=\"icon--help\"\n [auiTooltip]=\"addonTip\"\n auiTooltipPosition=\"end\"\n ></aui-icon>\n </ng-container>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"\n ipAddress?.errors?.input_data_error ||\n ipAddress?.errors ||\n (inputErrors$ | async)\n \"\n [errorsMapper]=\"combinedErrorsMapper$ | async\"\n ></acl-errors-mapper>\n <div\n auiFormItemHint\n *ngIf=\"hint !== null && (hint || (cidr$ | async))\"\n >\n {{\n hint ||\n ('network.fix_ip_should_belong_tip'\n | translate: { cidr: (cidr$ | async) })\n }}\n </div>\n</aui-form-item>\n", styles: [":host:not(:last-child) aui-form-item ::ng-deep .aui-form-item{margin-bottom:16px}\n"] }]
|
|
507
|
+
], template: "<aui-form-item [width]=\"formItemWidth\">\n <label auiFormItemLabel>{{\n label || ('network.ip_address' | translate)\n }}</label>\n <input\n *ngIf=\"!multiple\"\n aui-input\n auiFormItemControl\n [ngModel]=\"model\"\n (ngModelChange)=\"emitValue($event)\"\n #ipAddress=\"ngModel\"\n [placeholder]=\"placeholder || ('dhcp_placeholder' | translate)\"\n [auiAutocomplete]=\"suggestions\"\n />\n <aui-tags-input\n *ngIf=\"multiple\"\n class=\"flex-1\"\n auiFormItemControl\n #tagsInput\n [ngModel]=\"model\"\n (ngModelChange)=\"emitValue(uniq($event))\"\n #ipAddress=\"ngModel\"\n [placeholder]=\"placeholder || ('dhcp_placeholder' | translate)\"\n [auiAutocomplete]=\"suggestions\"\n [inputAsyncValidator]=\"validate\"\n ></aui-tags-input>\n <aui-autocomplete #suggestions>\n <aui-suggestion\n *ngFor=\"let ipAddressSuggestion of ipAddressSuggestions$ | async\"\n [value]=\"ipAddressSuggestion\"\n >\n {{ ipAddressSuggestion }}\n <aui-tag\n *ngIf=\"\n ipAddressSuggestion | pure: isReservedIp : $subnetInfo().excludeIps\n \"\n [border]=\"true\"\n [size]=\"'mini'\"\n type=\"info\"\n >\n {{ 'network.reserved_ip' | translate }}\n </aui-tag>\n </aui-suggestion>\n <aui-autocomplete-placeholder>\n {{\n ((ipAddressSuggestions$ | async)\n ? 'network.no_available_suggestion'\n : 'loading'\n ) | translate\n }}\n </aui-autocomplete-placeholder>\n </aui-autocomplete>\n <ng-container\n *ngIf=\"addonTip != null\"\n auiFormItemAddon\n >\n <aui-icon\n *ngIf=\"addonTip\"\n icon=\"question_circle\"\n class=\"icon--help\"\n [auiTooltip]=\"addonTip\"\n auiTooltipPosition=\"end\"\n ></aui-icon>\n </ng-container>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"\n ipAddress?.errors?.input_data_error ||\n ipAddress?.errors ||\n (inputErrors$ | async)\n \"\n [errorsMapper]=\"combinedErrorsMapper$ | async\"\n ></acl-errors-mapper>\n <div\n auiFormItemHint\n *ngIf=\"hint !== null && (hint || (cidr$ | async))\"\n >\n {{\n hint ||\n ('network.fix_ip_should_belong_tip'\n | translate: { cidr: (cidr$ | async) })\n }}\n </div>\n</aui-form-item>\n", styles: [":host:not(:last-child) aui-form-item ::ng-deep .aui-form-item{margin-bottom:16px}\n"] }]
|
|
507
508
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.K8sUtilService }, { type: i1.K8sApiService }, { type: i2.NetworkUtilService }, { type: i1.TranslateService }], { cluster: [{
|
|
508
509
|
type: Input,
|
|
509
510
|
args: [{ required: true }]
|
|
@@ -543,4 +544,4 @@ __decorate([
|
|
|
543
544
|
type: Input
|
|
544
545
|
}], errorsMapper$: [], isReservedIp: [], validate: [] }); })();
|
|
545
546
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixedIpInputComponent, { className: "FixedIpInputComponent", filePath: "lib/components/fixed-ip/component.ts", lineNumber: 126 }); })();
|
|
546
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maXhlZC1pcC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpeGVkLWlwL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUVoQixvQkFBb0IsRUFDcEIsUUFBUSxHQUNULE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUVmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE9BQU8sR0FFUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FB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b2R1bGUsXG4gIENvbW1vbkZvcm1Db250cm9sLFxuICBGb3JtSXRlbVdpZHRoLFxuICBGb3JtTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgVGFnTW9kdWxlLFxuICBUYWdzSW5wdXRDb21wb25lbnQsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgSzhzQXBpU2VydmljZSxcbiAgSzhzVXRpbFNlcnZpY2UsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcHVibGlzaFJlZixcbiAgc2tpcEVycm9yLFxuICBtYXRjaEV4cHJlc3Npb25zVG9TdHJpbmcsXG4gIE5hbWVzcGFjZSxcbiAgYmluZCxcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgUkVTT1VSQ0VfVFlQRVMsXG4gIEUyZUF0dHJpYnV0ZUJpbmRpbmdEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFN0cmluZ01hcCxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gIFB1cmVQaXBlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBBc3luY1ZhbGlkYXRvcixcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ01vZGVsLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1bmlxLCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBmaXJzdCxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICBmb3JrSm9pbixcbiAgc3RhcnRXaXRoLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZXR3b3JrVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZXR3b3JrLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJuZXQsIFN1Ym5ldElwIH0gZnJvbSAnLi4vLi4vdHlwZXMvazhzLWV4cG9ydHMnO1xuaW1wb3J0IHsgTkVUV09SS19SRVNPVVJDRV9UWVBFUyB9IGZyb20gJy4uLy4uL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24nO1xuaW1wb3J0IHtcbiAgSVBNb2RlLFxuICBOZXR3b3JrTW9kZSxcbiAgYWRhcHRJcE1vZGUsXG4gIGFkYXB0U3VibmV0Q2lkcnMsXG4gIGdldElwQWRkcmVzc1N1Z2dlc3Rpb25zQnlDaWRycyxcbiAgaXBBZGRyZXNzRXF1YWwsXG4gIGlzQmVsb25nQ2lkcixcbiAgaXNCcm9hZGNhc3RBZGRyLFxuICBpc0lwQWRkcmVzc1ZhbGlkLFxuICBpc05ldHdvcmtBZGRyLFxuICBnZXRBZGRyZXNzQnVpbGRlcixcbn0gZnJvbSAnLi4vLi4vdXRpbHMvY2lkci1leHBvcnRzJztcbmltcG9ydCB7XG4gIENsdXN0ZXJOZXR3b3JrVHlwZSxcbiAgS1VCRV9PVk5fQU5OT1RBVElPTl9QUkVGSVgsXG59IGZyb20gJy4uLy4uL3V0aWxzL3N1Ym5ldC1leHBvcnRzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYWNsLWZpeGVkLWlwLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Q6bm90KDpsYXN0LWNoaWxkKSBhdWktZm9ybS1pdGVtIDo6bmctZGVlcCAuYXVpLWZvcm0taXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRml4ZWRJcElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfQVNZTkNfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpeGVkSXBJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBQdXJlUGlwZSxcbiAgICBFMmVBdHRyaWJ1dGVCaW5kaW5nRGlyZWN0aXZlLFxuICAgIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVGFnTW9kdWxlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpeGVkSXBJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPHN0cmluZyB8IHN0cmluZ1tdPlxuICBpbXBsZW1lbnRzIEFzeW5jVmFsaWRhdG9yXG57XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGNsdXN0ZXI6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgY2x1c3RlciQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIG5hbWVzcGFjZSQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgbmV0d29ya1R5cGU6IENsdXN0ZXJOZXR3b3JrVHlwZTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgbmV0d29ya1R5cGUkITogT2JzZXJ2YWJsZTxDbHVzdGVyTmV0d29ya1R5cGU+O1xuXG4gIEBJbnB1dCgpXG4gIHN1Ym5ldDogU3VibmV0O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBzdWJuZXQkITogT2JzZXJ2YWJsZTxTdWJuZXQ+O1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBoaW50OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYWRkb25UaXA6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZTogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdpcEFkZHJlc3MnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaXBBZGRyZXNzOiBOZ01vZGVsO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ3NJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICB0YWdzSW5wdXQ6IFRhZ3NJbnB1dENvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBmb3JtSXRlbVdpZHRoOiBGb3JtSXRlbVdpZHRoID0gRm9ybUl0ZW1XaWR0aC5NZWRpdW07XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHRhZ3NJbnB1dCQhOiBPYnNlcnZhYmxlPFRhZ3NJbnB1dENvbXBvbmVudD47XG5cbiAgLy8g6Jma5ouf5py65pu05paw5pe25o6S6Zmk5o6J6Ieq6LqrXG4gIEBJbnB1dCgpXG4gIHNraXBPY2N1cGllZCA9IGZhbHNlO1xuXG4gIC8vIOebruWJjeWPjOagiOWbuuWumiBJUCDlj6rmlK/mjIEgSVB2NFxuICBASW5wdXQoKVxuICBlbmFibGVGaXhJcFY2Rm9yRHVhbCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGVycm9yczogVmFsaWRhdGlvbkVycm9ycztcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGVycm9ycyQhOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnM+O1xuXG4gIEBJbnB1dCgpIGVycm9yc01hcHBlcjogU3RyaW5nTWFwO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZXJyb3JzTWFwcGVyJCE6IE9ic2VydmFibGU8U3RyaW5nTWFwPjtcblxuICB1bmlxID0gdW5pcTtcbiAgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgZ2V0IGlzQ2FsaWNvKCkge1xuICAgIHJldHVybiB0aGlzLm5ldHdvcmtUeXBlID09PSBDbHVzdGVyTmV0d29ya1R5cGUuQ0FMSUNPO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2VSZXNvdXJjZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMubmFtZXNwYWNlJCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjbHVzdGVyLCBuYW1lc3BhY2VdKSA9PiAhIWNsdXN0ZXIgJiYgISFuYW1lc3BhY2UpLFxuICAgIHN3aXRjaE1hcCgoW2NsdXN0ZXIsIG5hbWVzcGFjZV0pID0+XG4gICAgICB0aGlzLms4c0FwaS5nZXRSZXNvdXJjZTxOYW1lc3BhY2U+KHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuTkFNRVNQQUNFLFxuICAgICAgICBjbHVzdGVyLFxuICAgICAgICBuYW1lOiBuYW1lc3BhY2UsXG4gICAgICB9KSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5ldHdvcmtNb2RlJCA9IHRoaXMuY2x1c3RlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoY2x1c3RlciA9PiB0aGlzLm5ldHdvcmtVdGlsU2VydmljZS5nZXROZXR3b3JrTW9kZSQoY2x1c3RlcikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICByZWFkb25seSAkbmV0d29ya01vZGUgPSB0b1NpZ25hbCh0aGlzLm5ldHdvcmtNb2RlJCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJuZXREZXRhaWxzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY2x1c3RlciQsXG4gICAgdGhpcy5uZXR3b3JrVHlwZSQsXG4gICAgdGhpcy5zdWJuZXQkLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW2NsdXN0ZXIsIG5ldHdvcmtUeXBlXSkgPT4gISFjbHVzdGVyICYmICEhbmV0d29ya1R5cGUpLFxuICAgIHN3aXRjaE1hcCgoW2NsdXN0ZXIsIF9uZXR3b3JrVHlwZSwgc3VibmV0XSkgPT5cbiAgICAgIHN1Ym5ldFxuICAgICAgICA/IG9mKHtcbiAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICBzdWJuZXRzOiBbc3VibmV0XSxcbiAgICAgICAgICAgIHN1Ym5ldCxcbiAgICAgICAgICAgIGdhdGV3YXk6IHN1Ym5ldC5zcGVjPy5nYXRld2F5LFxuICAgICAgICAgICAgZXhjbHVkZUlwczogc3VibmV0LnNwZWM/LmV4Y2x1ZGVJcHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiB0aGlzLmlzQ2FsaWNvXG4gICAgICAgICAgPyB0aGlzLms4c0FwaVxuICAgICAgICAgICAgICAuZ2V0UmVzb3VyY2VMaXN0PFN1Ym5ldD4oe1xuICAgICAgICAgICAgICAgIHR5cGU6IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMuU1VCTkVUX0tVQkVfT1ZOLFxuICAgICAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXMgPT4gcmVzLml0ZW1zKSxcbiAgICAgICAgICAgICAgICBza2lwRXJyb3IoW10gYXMgU3VibmV0W10pLFxuICAgICAgICAgICAgICAgIG1hcChzdWJuZXRzID0+ICh7XG4gICAgICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICAgICAgc3VibmV0cyxcbiAgICAgICAgICAgICAgICAgIHN1Ym5ldDogbnVsbCBhcyBTdWJuZXQsXG4gICAgICAgICAgICAgICAgICBnYXRld2F5OiAnJyxcbiAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVJcHM6IFtdLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2Yoe1xuICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICBzdWJuZXRzOiBbXSBhcyBTdWJuZXRbXSxcbiAgICAgICAgICAgICAgc3VibmV0OiBudWxsIGFzIFN1Ym5ldCxcbiAgICAgICAgICAgICAgZ2F0ZXdheTogJycsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVJcHM6IFtdIGFzIHN0cmluZ1tdLFxuICAgICAgICAgICAgfSksXG4gICAgKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1Ym5ldEluZm8kID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5uZXR3b3JrTW9kZSQsXG4gICAgdGhpcy5uYW1lc3BhY2VSZXNvdXJjZSQucGlwZShmaWx0ZXIoQm9vbGVhbikpLFxuICAgIHRoaXMuc3VibmV0RGV0YWlscyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtcbiAgICAgICAgbmV0d29ya01vZGUsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgeyBjbHVzdGVyLCBzdWJuZXRzLCBzdWJuZXQsIGdhdGV3YXksIGV4Y2x1ZGVJcHMgfSxcbiAgICAgIF0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgIHN1Ym5ldENpZHJzOiB0aGlzLmlzQ2FsaWNvXG4gICAgICAgICAgICA/IHRoaXMubmV0d29ya1V0aWxTZXJ2aWNlLmdldENhbGljb0NpZHJzKFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICAgICAgICBzdWJuZXRzLFxuICAgICAgICAgICAgICAgIG5ldHdvcmtNb2RlLFxuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRml4SXBWNkZvckR1YWwsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogYWRhcHRTdWJuZXRDaWRycyhcbiAgICAgICAgICAgICAgICBzdWJuZXQgPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgPyB0aGlzLms4c1V0aWwuZ2V0QW5ub3RhdGlvbihuYW1lc3BhY2UsIHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2lkcicsXG4gICAgICAgICAgICAgICAgICAgICAgYmFzZURvbWFpbjogS1VCRV9PVk5fQU5OT1RBVElPTl9QUkVGSVgsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICA6IChzdWJuZXQuc3BlYz8uY2lkckJsb2NrID8/ICcnKSxcbiAgICAgICAgICAgICAgICB0aGlzLiRuZXR3b3JrTW9kZSgpLFxuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRml4SXBWNkZvckR1YWwsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgc3VibmV0TmFtZTpcbiAgICAgICAgICAgIHN1Ym5ldCA9PSBudWxsXG4gICAgICAgICAgICAgID8gdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgICAgID8gdGhpcy5uZXR3b3JrVXRpbFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmdldENhbGljb1N1Ym5ldE5hbWVzKG5hbWVzcGFjZSwgdGhpcy4kbmV0d29ya01vZGUoKSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywnKVxuICAgICAgICAgICAgICAgIDogdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24obmFtZXNwYWNlLCB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdsb2dpY2FsX3N3aXRjaCcsXG4gICAgICAgICAgICAgICAgICAgIGJhc2VEb21haW46IEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgOiB0aGlzLms4c1V0aWwuZ2V0TmFtZShzdWJuZXQpLFxuICAgICAgICAgIGdhdGV3YXksXG4gICAgICAgICAgZXhjbHVkZUlwczogZXhjbHVkZUlwcyB8fCAoW10gYXMgc3RyaW5nW10pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICApLFxuICAgIHN3aXRjaE1hcChzdWJuZXRJbmZvID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5uZXR3b3JrVHlwZSA9PT0gQ2x1c3Rlck5ldHdvcmtUeXBlLktVQkVfT1ZOICYmXG4gICAgICAgICFzdWJuZXRJbmZvLmdhdGV3YXlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICAgICAgc3VibmV0SW5mby5zdWJuZXROYW1lLnNwbGl0KCcsJykubWFwKHN1Ym5ldE5hbWUgPT5cbiAgICAgICAgICAgIHRoaXMuazhzQXBpXG4gICAgICAgICAgICAgIC5nZXRSZXNvdXJjZTxTdWJuZXQ+KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICAgICAgICBjbHVzdGVyOiBzdWJuZXRJbmZvLmNsdXN0ZXIsXG4gICAgICAgICAgICAgICAgbmFtZTogc3VibmV0TmFtZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnBpcGUoc2tpcEVycm9yKG51bGwgYXMgU3VibmV0KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1hcChsaXN0ID0+IGxpc3QuZmlsdGVyKEJvb2xlYW4pKSxcbiAgICAgICAgICBtYXAoc3VibmV0TGlzdCA9PlxuICAgICAgICAgICAgc3VibmV0TGlzdC5sZW5ndGhcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAuLi5zdWJuZXRJbmZvLFxuICAgICAgICAgICAgICAgICAgZ2F0ZXdheTogc3VibmV0TGlzdFxuICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbS5zcGVjPy5nYXRld2F5KVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJyksXG4gICAgICAgICAgICAgICAgICBleGNsdWRlSXBzOiB1bmlxKFxuICAgICAgICAgICAgICAgICAgICBzdWJuZXRMaXN0LmZsYXRNYXAoaXRlbSA9PiBpdGVtLnNwZWM/LmV4Y2x1ZGVJcHMpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogc3VibmV0SW5mbyxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKHN1Ym5ldEluZm8pO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcChzdWJuZXRJbmZvID0+IHtcbiAgICAgIGlmIChzdWJuZXRJbmZvLnN1Ym5ldENpZHJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gb2Yoc3VibmV0SW5mbyk7XG4gICAgICB9XG5cbiAgICAgIC8vIGZhbGxiYWNrIHRvIGRlZmF1bHQgc3VibmV0XG4gICAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlPFN1Ym5ldD4oe1xuICAgICAgICAgIHR5cGU6IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMuU1VCTkVUX0tVQkVfT1ZOLFxuICAgICAgICAgIGNsdXN0ZXI6IHN1Ym5ldEluZm8uY2x1c3RlcixcbiAgICAgICAgICBuYW1lOiB0aGlzLmlzQ2FsaWNvXG4gICAgICAgICAgICA/IGBkZWZhdWx0LWlwJHtcbiAgICAgICAgICAgICAgICB0aGlzLiRuZXR3b3JrTW9kZSgpID09PSAnZHVhbCcgPyAndjQnIDogdGhpcy4kbmV0d29ya01vZGUoKVxuICAgICAgICAgICAgICB9LWlwcG9vbGBcbiAgICAgICAgICAgIDogJ292bi1kZWZhdWx0JyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHN1Ym5ldCA9PiAoe1xuICAgICAgICAgICAgLi4uc3VibmV0SW5mbyxcbiAgICAgICAgICAgIHN1Ym5ldENpZHJzOiBhZGFwdFN1Ym5ldENpZHJzKFxuICAgICAgICAgICAgICBzdWJuZXQuc3BlYy5jaWRyQmxvY2ssXG4gICAgICAgICAgICAgIHRoaXMuJG5ldHdvcmtNb2RlKCksXG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlRml4SXBWNkZvckR1YWwsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3VibmV0TmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoc3VibmV0KSxcbiAgICAgICAgICAgIGdhdGV3YXk6IHN1Ym5ldC5zcGVjLmdhdGV3YXksXG4gICAgICAgICAgICBleGNsdWRlSXBzOiBzdWJuZXQuc3BlYy5leGNsdWRlSXBzLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcmVhZG9ubHkgJHN1Ym5ldEluZm8gPSB0b1NpZ25hbCh0aGlzLnN1Ym5ldEluZm8kKTtcblxuICBjaWRyJCA9IHRoaXMuc3VibmV0SW5mbyQucGlwZShcbiAgICBtYXAoc3VibmV0SW5mbyA9PiB1bmlxKHN1Ym5ldEluZm8/LnN1Ym5ldENpZHJzKS5qb2luKCfjgIEnKSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbm5lckVycm9yc01hcHBlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNpZHIkLFxuICAgIHRoaXMudHJhbnNsYXRlLmxvY2FsZSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY2lkcl0pID0+ICh7XG4gICAgICBwYXR0ZXJuOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2ZpeGVkX2lwX3BhdHRlcm5fdGlwcycsIHtcbiAgICAgICAgaXBNb2RlOiBbJ2R1YWwnLCAndjQnXS5pbmNsdWRlcyh0aGlzLiRuZXR3b3JrTW9kZSgpKSA/ICdJUHY0JyA6ICdJUHY2JyxcbiAgICAgIH0pLFxuICAgICAgb2NjdXBpZWQ6IHRoaXMudHJhbnNsYXRlLmdldCgnZml4ZWRfaXBfb2NjdXBpZWRfdGlwcycsIHtcbiAgICAgICAgY2lkcixcbiAgICAgIH0pLFxuICAgICAgb3V0X29mX3JhbmdlOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2ZpeGVkX2lwX291dF9vZl9yYW5nZV90aXBzJywge1xuICAgICAgICBjaWRyLFxuICAgICAgfSksXG4gICAgfSkpLFxuICApO1xuXG4gIGNvbWJpbmVkRXJyb3JzTWFwcGVyJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuaW5uZXJFcnJvcnNNYXBwZXIkLFxuICAgIHRoaXMuZXJyb3JzTWFwcGVyJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtpbm5lckVycm9yc01hcHBlciwgZXJyb3JzTWFwcGVyXSkgPT4gKHtcbiAgICAgIC4uLmlubmVyRXJyb3JzTWFwcGVyLFxuICAgICAgLi4uZXJyb3JzTWFwcGVyLFxuICAgIH0pKSxcbiAgKTtcblxuICBpbnB1dEVycm9ycyQgPSB0aGlzLmVycm9ycyQucGlwZShcbiAgICB0YXAoZXJyb3JzID0+IHtcbiAgICAgIHRoaXMuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgICB0aGlzLmlwQWRkcmVzcz8uY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZT8uKCk7XG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VkSXBzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY2x1c3RlciQsXG4gICAgdGhpcy5zdWJuZXRJbmZvJCxcbiAgICB0aGlzLm1vZGVsJC5waXBlKGZpcnN0KCkpLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2NsdXN0ZXIsIHsgc3VibmV0TmFtZSwgZ2F0ZXdheSB9LCBpcF0pID0+XG4gICAgICB0aGlzLms4c0FwaVxuICAgICAgICAuZ2V0UmVzb3VyY2VMaXN0PFN1Ym5ldElwPih7XG4gICAgICAgICAgdHlwZTogTkVUV09SS19SRVNPVVJDRV9UWVBFUy5TVUJORVRfS1VCRV9PVk5fSVAsXG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgbGFiZWxTZWxlY3RvcjogbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogYCR7S1VCRV9PVk5fQU5OT1RBVElPTl9QUkVGSVh9L3N1Ym5ldGAsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6ICdpbicsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBzdWJuZXROYW1lLnNwbGl0KCcsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcyksXG4gICAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN1Ym5ldElwW10pLFxuICAgICAgICAgIG1hcChzdWJuZXRJcHMgPT5cbiAgICAgICAgICAgIHN1Ym5ldElwcy5yZWR1Y2U8c3RyaW5nW10+KCh1c2VkSXBzLCB7IHNwZWM6IHsgaXBBZGRyZXNzIH0gfSkgPT4ge1xuICAgICAgICAgICAgICBpcEFkZHJlc3Muc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpcCAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICAgICAgdXNlZElwcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiB1c2VkSXBzO1xuICAgICAgICAgICAgfSwgZ2F0ZXdheS5zcGxpdCgnLCcpKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgJHVzZWRJcHMgPSB0b1NpZ25hbCh0aGlzLnVzZWRJcHMkKTtcblxuICBpcEFkZHJlc3NTdWdnZXN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnN1Ym5ldEluZm8kLFxuICAgIHRoaXMudXNlZElwcyQsXG4gICAgdGhpcy5uZXR3b3JrTW9kZSQsXG4gICAgdGhpcy5tb2RlbCQsXG4gICAgdGhpcy50YWdzSW5wdXQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAodGFnc0lucHV0ID0+XG4gICAgICAgIHRhZ3NJbnB1dFxuICAgICAgICAgID8gbWVyZ2UoXG4gICAgICAgICAgICAgIGZyb21FdmVudCh0YWdzSW5wdXQuaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoZXYgPT4gKGV2LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHRhZ3NJbnB1dC5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzIGFzIE9ic2VydmFibGU8c3RyaW5nPixcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6ICh0aGlzLm1vZGVsJCBhcyBPYnNlcnZhYmxlPHN0cmluZz4pLFxuICAgICAgKSxcbiAgICApLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3sgc3VibmV0Q2lkcnMgfSwgdXNlZElwcywgbmV0d29ya01vZGUsIGFkZGVkSXBzLCBpbnB1dFZhbHVlXSkgPT5cbiAgICAgIGdldElwQWRkcmVzc1N1Z2dlc3Rpb25zQnlDaWRycyhcbiAgICAgICAgc3VibmV0Q2lkcnMsXG4gICAgICAgIG5ldHdvcmtNb2RlLFxuICAgICAgICBbXG4gICAgICAgICAgLi4udXNlZElwcyxcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShhZGRlZElwcykgPyBhZGRlZElwcyA6IFthZGRlZElwc10uZmlsdGVyKEJvb2xlYW4pKSxcbiAgICAgICAgXSxcbiAgICAgICAgaW5wdXRWYWx1ZSxcbiAgICAgICAgdGhpcy5pc0NhbGljbyxcbiAgICAgICksXG4gICAgKSxcbiAgICBzdGFydFdpdGgoW10gYXMgc3RyaW5nW10pLFxuICAgIHNraXBFcnJvcihbXSBhcyBzdHJpbmdbXSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNBcGk6IEs4c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrVXRpbFNlcnZpY2U6IE5ldHdvcmtVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgfVxuXG4gIEBiaW5kXG4gIGlzUmVzZXJ2ZWRJcChpcDogc3RyaW5nLCBleGNsdWRlSXBzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcih0aGlzLmFkYXB0SXBNb2RlKGlwKSk7XG4gICAgcmV0dXJuIGV4Y2x1ZGVJcHMuc29tZShleGNsdWRlSXAgPT4ge1xuICAgICAgaWYgKGV4Y2x1ZGVJcC5pbmNsdWRlcygnLi4nKSkge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBleGNsdWRlSXA/LnNwbGl0KCcuLicpO1xuICAgICAgICBjb25zdCBfc3RhcnRBZGRyZXNzID0gbmV3IEJ1aWxkZXIoc3RhcnQpLmJpZ0ludGVnZXIoKTtcbiAgICAgICAgY29uc3QgX2VuZEFkZHJlc3MgPSBuZXcgQnVpbGRlcihlbmQpLmJpZ0ludGVnZXIoKTtcbiAgICAgICAgY29uc3QgX2lwID0gbmV3IEJ1aWxkZXIoaXApLmJpZ0ludGVnZXIoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBfc3RhcnRBZGRyZXNzLmNvbXBhcmVUbyhfaXApIDw9IDAgJiYgX2lwLmNvbXBhcmVUbyhfZW5kQWRkcmVzcykgPD0gMFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4Y2x1ZGVJcCA9PT0gaXA7XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgQGJpbmRcbiAgdmFsaWRhdGUoY3RybDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgY29uc3QgaXBBZGRyZXNzOiBzdHJpbmcgfCBzdHJpbmdbXSA9IGN0cmwudmFsdWU7XG4gICAgcmV0dXJuIGlwQWRkcmVzcyAmJiAhQXJyYXkuaXNBcnJheShpcEFkZHJlc3MpXG4gICAgICA/IHRoaXMudXNlZElwcyQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLnNldEVycm9ycyh0aGlzLnZhbGlkYXRlRml4ZWRJcChpcEFkZHJlc3MpKSksXG4gICAgICAgIClcbiAgICAgIDogb2YodGhpcy5zZXRFcnJvcnMobnVsbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgY29uc3QgY29tYmluZWRFcnJvcnMgPSB0aGlzLm11bHRpcGxlXG4gICAgICA/IHsgLi4udGhpcy5lcnJvcnMsIC4uLmVycm9ycyB9IC8vIOWPr+iDveWtmOWcqOS8oOWFpeeahCBlcnJvcnNcbiAgICAgIDogZXJyb3JzO1xuICAgIGNvbnN0IHZhbGlkYXRpb25FcnJvcnMgPSB2YWx1ZXMoY29tYmluZWRFcnJvcnMpLmxlbmd0aFxuICAgICAgPyBjb21iaW5lZEVycm9yc1xuICAgICAgOiBudWxsO1xuICAgIHRoaXMuaXBBZGRyZXNzPy5jb250cm9sLnNldEVycm9ycyh2YWxpZGF0aW9uRXJyb3JzKTtcbiAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9ycztcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaXhlZElwKGlwQWRkcmVzczogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBzdWJuZXRDaWRycywgZ2F0ZXdheSB9ID0gdGhpcy4kc3VibmV0SW5mbygpO1xuXG4gICAgY29uc3QgaXBNb2RlID0gdGhpcy5hZGFwdElwTW9kZShpcEFkZHJlc3MpO1xuICAgIGNvbnN0IGlzSXBWNCA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQ7XG5cbiAgICBjb25zdCBqdWRnZUNpZHJzID0gc3VibmV0Q2lkcnMuZmlsdGVyKGNpZHIgPT4ge1xuICAgICAgY29uc3QgaXNJcFY2ID0gY2lkci5pbmNsdWRlcygnOicpO1xuICAgICAgcmV0dXJuIGlzSXBWNCA/ICFpc0lwVjYgOiBpc0lwVjY7XG4gICAgfSk7XG5cbiAgICBpZiAoc3VibmV0Q2lkcnMubGVuZ3RoICYmICFqdWRnZUNpZHJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaW52YWxpZCBpcCBwYXR0ZXJuLCBub3QgYnJvYWRjYXN0IGlwLCBub3QgbmV0d29yayBpcFxuICAgIGlmIChcbiAgICAgICFpc0lwQWRkcmVzc1ZhbGlkKGlwQWRkcmVzcywgaXBNb2RlKSB8fFxuICAgICAganVkZ2VDaWRycy5zb21lKFxuICAgICAgICBjYWxpY29DaWRyID0+XG4gICAgICAgICAgaXNCcm9hZGNhc3RBZGRyKGlwQWRkcmVzcywgY2FsaWNvQ2lkciwgaXBNb2RlKSB8fFxuICAgICAgICAgIGlzTmV0d29ya0FkZHIoaXBBZGRyZXNzLCBjYWxpY29DaWRyLCBpcE1vZGUpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHY0R2F0ZXdheTogc3RyaW5nO1xuICAgIGxldCB2NkdhdGV3YXk6IHN0cmluZztcblxuICAgIGlmIChnYXRld2F5KSB7XG4gICAgICBjb25zdCBnYXRld2F5UGFydHMgPSBnYXRld2F5LnNwbGl0KCcsJyk7XG4gICAgICB2NEdhdGV3YXkgPSBnYXRld2F5UGFydHNbMF07XG4gICAgICB2NkdhdGV3YXkgPSBnYXRld2F5UGFydHNbMV07XG4gICAgfVxuXG4gICAgY29uc3QgaXBHYXRld2F5ID0gaXNJcFY0ID8gdjRHYXRld2F5IDogdjZHYXRld2F5O1xuXG4gICAgaWYgKFxuICAgICAgLy8gaHR0cHM6Ly9qaXJhLmFsYXVkYS5jbi9icm93c2UvQUNQLTEyMTM2P2ZvY3VzZWRDb21tZW50SWQ9MjE1NDYwJnBhZ2U9Y29tLmF0bGFzc2lhbi5qaXJhLnBsdWdpbi5zeXN0ZW0uaXNzdWV0YWJwYW5lbHMlM0Fjb21tZW50LXRhYnBhbmVsI2NvbW1lbnQtMjE1NDYwXG4gICAgICAoaXBHYXRld2F5ICYmIGlwQWRkcmVzc0VxdWFsKGlwR2F0ZXdheSwgaXBBZGRyZXNzLCBpcE1vZGUpKSB8fFxuICAgICAgKCF0aGlzLnNraXBPY2N1cGllZCAmJlxuICAgICAgICB0aGlzLiR1c2VkSXBzKCkuc29tZSh1c2VkSXAgPT5cbiAgICAgICAgICBpcEFkZHJlc3NFcXVhbCh1c2VkSXAsIGlwQWRkcmVzcywgaXBNb2RlKSxcbiAgICAgICAgKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9jY3VwaWVkOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBqdWRnZUNpZHJzLmxlbmd0aCAmJlxuICAgICAgIWp1ZGdlQ2lkcnMuc29tZShjaWRyID0+IGNpZHIgJiYgaXNCZWxvbmdDaWRyKGNpZHIsIGlwQWRkcmVzcywgaXBNb2RlKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG91dF9vZl9yYW5nZTogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGFwdElwTW9kZShpcEFkZHJlc3M6IHN0cmluZykge1xuICAgIHJldHVybiBhZGFwdElwTW9kZShcbiAgICAgIGlwQWRkcmVzcyxcbiAgICAgICF0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsICYmIHRoaXMuJG5ldHdvcmtNb2RlKCkgPT09IE5ldHdvcmtNb2RlLkRVQUxcbiAgICAgICAgPyBOZXR3b3JrTW9kZS5JUFY0XG4gICAgICAgIDogdGhpcy4kbmV0d29ya01vZGUoKSxcbiAgICApO1xuICB9XG59XG4iLCI8YXVpLWZvcm0taXRlbSBbd2lkdGhdPVwiZm9ybUl0ZW1XaWR0aFwiPlxuICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57e1xuICAgIGxhYmVsIHx8ICgnbmV0d29yay5pcF9hZGRyZXNzJyB8IHRyYW5zbGF0ZSlcbiAgfX08L2xhYmVsPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cIiFtdWx0aXBsZVwiXG4gICAgYXVpLWlucHV0XG4gICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRWYWx1ZSgkZXZlbnQpXCJcbiAgICAjaXBBZGRyZXNzPVwibmdNb2RlbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICgnZGhjcF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUpXCJcbiAgICBbYXVpQXV0b2NvbXBsZXRlXT1cInN1Z2dlc3Rpb25zXCJcbiAgLz5cbiAgPGF1aS10YWdzLWlucHV0XG4gICAgKm5nSWY9XCJtdWx0aXBsZVwiXG4gICAgY2xhc3M9XCJmbGV4LTFcIlxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICN0YWdzSW5wdXRcbiAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdFZhbHVlKHVuaXEoJGV2ZW50KSlcIlxuICAgICNpcEFkZHJlc3M9XCJuZ01vZGVsXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgKCdkaGNwX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgIFthdWlBdXRvY29tcGxldGVdPVwic3VnZ2VzdGlvbnNcIlxuICAgIFtpbnB1dEFzeW5jVmFsaWRhdG9yXT1cInZhbGlkYXRlXCJcbiAgPjwvYXVpLXRhZ3MtaW5wdXQ+XG4gIDxhdWktYXV0b2NvbXBsZXRlICNzdWdnZXN0aW9ucz5cbiAgICA8YXVpLXN1Z2dlc3Rpb25cbiAgICAgICpuZ0Zvcj1cImxldCBpcEFkZHJlc3NTdWdnZXN0aW9uIG9mIGlwQWRkcmVzc1N1Z2dlc3Rpb25zJCB8IGFzeW5jXCJcbiAgICAgIFt2YWx1ZV09XCJpcEFkZHJlc3NTdWdnZXN0aW9uXCJcbiAgICA+XG4gICAgICB7eyBpcEFkZHJlc3NTdWdnZXN0aW9uIH19XG4gICAgICA8YXVpLXRhZ1xuICAgICAgICAqbmdJZj1cImlwQWRkcmVzc1N1Z2dlc3Rpb24gfCBwdXJlOiBpc1Jlc2VydmVkSXA6ICRzdWJuZXRJbmZvKCkuZXhjbHVkZUlwc1wiXG4gICAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaXplXT1cIidtaW5pJ1wiXG4gICAgICAgIHR5cGU9XCJpbmZvXCJcbiAgICAgID5cbiAgICAgICAge3sgJ25ldHdvcmsucmVzZXJ2ZWRfaXAnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS10YWc+XG4gICAgPC9hdWktc3VnZ2VzdGlvbj5cbiAgICA8YXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgICAgIHt7XG4gICAgICAgICgoaXBBZGRyZXNzU3VnZ2VzdGlvbnMkIHwgYXN5bmMpXG4gICAgICAgICAgPyAnbmV0d29yay5ub19hdmFpbGFibGVfc3VnZ2VzdGlvbidcbiAgICAgICAgICA6ICdsb2FkaW5nJ1xuICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICB9fVxuICAgIDwvYXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgPC9hdWktYXV0b2NvbXBsZXRlPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJhZGRvblRpcCAhPSBudWxsXCJcbiAgICBhdWlGb3JtSXRlbUFkZG9uXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgICpuZ0lmPVwiYWRkb25UaXBcIlxuICAgICAgaWNvbj1cInF1ZXN0aW9uX2NpcmNsZVwiXG4gICAgICBjbGFzcz1cImljb24tLWhlbHBcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiYWRkb25UaXBcIlxuICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICBbZXJyb3JzXT1cIlxuICAgICAgaXBBZGRyZXNzPy5lcnJvcnM/LmlucHV0X2RhdGFfZXJyb3IgfHxcbiAgICAgIGlwQWRkcmVzcz8uZXJyb3JzIHx8XG4gICAgICAoaW5wdXRFcnJvcnMkIHwgYXN5bmMpXG4gICAgXCJcbiAgICBbZXJyb3JzTWFwcGVyXT1cImNvbWJpbmVkRXJyb3JzTWFwcGVyJCB8IGFzeW5jXCJcbiAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gIDxkaXZcbiAgICBhdWlGb3JtSXRlbUhpbnRcbiAgICAqbmdJZj1cImhpbnQgIT09IG51bGwgJiYgKGhpbnQgfHwgKGNpZHIkIHwgYXN5bmMpKVwiXG4gID5cbiAgICB7e1xuICAgICAgaGludCB8fFxuICAgICAgICAoJ25ldHdvcmsuZml4X2lwX3Nob3VsZF9iZWxvbmdfdGlwJ1xuICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IGNpZHI6IChjaWRyJCB8IGFzeW5jKSB9KVxuICAgIH19XG4gIDwvZGl2PlxuPC9hdWktZm9ybS1pdGVtPlxuIl19
|
|
547
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maXhlZC1pcC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpeGVkLWlwL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUVoQixvQkFBb0IsRUFDcEIsUUFBUSxHQUNULE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUVmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE9BQU8sR0FFUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsR0FDM0IsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7SUM5RWxDLG9DQVNFOztJQUpBLHdNQUFpQix3QkFBaUIsS0FBQztJQUxyQyxpQkFTRTs7OztJQURBLEFBREEsQUFIQSxzQ0FBaUIsK0VBRzhDLG1DQUNoQzs7OztJQUVqQyw2Q0FXQzs7SUFMQywwTkFBaUIsaUJBQVUsbUJBQVksQ0FBQyxLQUFDO0lBSzFDLGlCQUFpQjs7OztJQURoQixBQURBLEFBREEsQUFIQSxzQ0FBaUIsK0VBRzhDLG1DQUNoQyx3Q0FDQzs7O0lBUTlCLG1DQU9DO0lBQ0MsWUFDRjs7SUFBQSxpQkFBVTs7SUFKUixBQURBLDZCQUFlLGdCQUNBO0lBR2YsY0FDRjtJQURFLDRFQUNGOzs7SUFkRiwwQ0FHQztJQUNDLFlBQ0E7SUFBQSxnR0FPQzs7SUFHSCxpQkFBaUI7Ozs7SUFiZiw4Q0FBNkI7SUFFN0IsY0FDQTtJQURBLHVEQUNBO0lBQ0csY0FHVDtJQUhTLHlIQUdUOzs7SUFvQkksK0JBTVk7OztJQUZWLDRDQUF1Qjs7O0lBUjNCLGlDQUdDO0lBQ0MsaUdBTUM7Ozs7SUFMRSxjQUFjO0lBQWQsc0NBQWM7OztJQWdCbkIsK0JBR0M7SUFDQyxZQUtGOzs7SUFBQSxpQkFBTTs7O0lBTEosY0FLRjtJQUxFLHdLQUtGOztBRDJDRixNQUFNLE9BQU8scUJBQ1gsU0FBUSxpQkFBb0M7SUF5RTVDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQXdTRCxZQUMyQixHQUFzQixFQUM5QixPQUF1QixFQUN2QixNQUFxQixFQUNyQixrQkFBc0MsRUFDdEMsU0FBMkI7UUFFNUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTmMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBdlU5QyxrQkFBYSxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBS3BELGNBQWM7UUFFZCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixxQkFBcUI7UUFFckIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBVTdCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFPSyx1QkFBa0IsR0FBRyxhQUFhLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDMUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBWTtZQUNqQyxJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDOUIsT0FBTztZQUNQLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FDSCxFQUNELFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFZSxpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3RFLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFTyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsbUJBQWMsR0FBRyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsT0FBTztTQUNiLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUM5RCxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUM1QyxNQUFNO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDRCxPQUFPO2dCQUNQLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDakIsTUFBTTtnQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPO2dCQUM3QixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVO2FBQ3BDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO3FCQUNSLGVBQWUsQ0FBUztvQkFDdkIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGVBQWU7b0JBQzVDLE9BQU87aUJBQ1IsQ0FBQztxQkFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUNyQixTQUFTLENBQUMsRUFBYyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2QsT0FBTztvQkFDUCxPQUFPO29CQUNQLE1BQU0sRUFBRSxJQUFjO29CQUN0QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsRUFBYztpQkFDM0IsQ0FBQyxDQUFDLENBQ0o7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDRCxPQUFPO29CQUNQLE9BQU8sRUFBRSxFQUFjO29CQUN2QixNQUFNLEVBQUUsSUFBYztvQkFDdEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLEVBQWM7aUJBQzNCLENBQUMsQ0FDVCxDQUNGLENBQUM7UUFFZSxnQkFBVyxHQUFHLGFBQWEsQ0FBQztZQUMzQyxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYztTQUNwQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQ0MsV0FBVyxFQUNYLFNBQVMsRUFDVCxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDbEQsRUFBRSxFQUFFO1lBQ0gsT0FBTztnQkFDTCxPQUFPO2dCQUNQLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQ3BDLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUI7b0JBQ0gsQ0FBQyxDQUFDLGdCQUFnQixDQUNkLE1BQU0sSUFBSSxJQUFJO3dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7NEJBQ3BDLElBQUksRUFBRSxNQUFNOzRCQUNaLFVBQVUsRUFBRSwwQkFBMEI7eUJBQ3ZDLENBQUM7d0JBQ0osQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLEVBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUMxQjtnQkFDTCxVQUFVLEVBQ1IsTUFBTSxJQUFJLElBQUk7b0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO3dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCOzZCQUNwQixvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOzZCQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7NEJBQ3BDLElBQUksRUFBRSxnQkFBZ0I7NEJBQ3RCLFVBQVUsRUFBRSwwQkFBMEI7eUJBQ3ZDLENBQUM7b0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbEMsT0FBTztnQkFDUCxVQUFVLEVBQUUsVUFBVSxJQUFLLEVBQWU7YUFDM0MsQ0FBQztRQUNKLENBQUMsQ0FDRixFQUNELFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQixJQUNFLElBQUksQ0FBQyxXQUFXLEtBQUssa0JBQWtCLENBQUMsUUFBUTtnQkFDaEQsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUNuQixDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUNiLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNoRCxJQUFJLENBQUMsTUFBTTtxQkFDUixXQUFXLENBQVM7b0JBQ25CLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxlQUFlO29CQUM1QyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87b0JBQzNCLElBQUksRUFBRSxVQUFVO2lCQUNqQixDQUFDO3FCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FDbkMsQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ2pDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNmLFVBQVUsQ0FBQyxNQUFNO29CQUNmLENBQUMsQ0FBQzt3QkFDRSxHQUFHLFVBQVU7d0JBQ2IsT0FBTyxFQUFFLFVBQVU7NkJBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDOzZCQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDOzZCQUNmLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ1osVUFBVSxFQUFFLElBQUksQ0FDZCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FDbEQ7cUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLFVBQVUsQ0FDZixDQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JCLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUVELDZCQUE2QjtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNO2lCQUNmLFdBQVcsQ0FBUztnQkFDbkIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGVBQWU7Z0JBQzVDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUNqQixDQUFDLENBQUMsYUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQzNELFNBQVM7b0JBQ1gsQ0FBQyxDQUFDLGFBQWE7YUFDbEIsQ0FBQztpQkFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDYixHQUFHLFVBQVU7Z0JBQ2IsV0FBVyxFQUFFLGdCQUFnQixDQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQzFCO2dCQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVU7YUFDbkMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFTyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1FBRWUsdUJBQWtCLEdBQUcsYUFBYSxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO2FBQ3ZFLENBQUM7WUFDRixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ3JELElBQUk7YUFDTCxDQUFDO1lBQ0YsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFO2dCQUM3RCxJQUFJO2FBQ0wsQ0FBQztTQUNILENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRiwwQkFBcUIsR0FBRyxhQUFhLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQjtZQUN2QixJQUFJLENBQUMsYUFBYTtTQUNuQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxpQkFBaUI7WUFDcEIsR0FBRyxZQUFZO1NBQ2hCLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRixpQkFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVlLGFBQVEsR0FBRyxhQUFhLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMxQixDQUFDLENBQUMsSUFBSSxDQUNMLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLE1BQU07YUFDUixlQUFlLENBQVc7WUFDekIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGtCQUFrQjtZQUMvQyxPQUFPO1lBQ1AsV0FBVyxFQUFFO2dCQUNYLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQztvQkFDdEM7d0JBQ0UsR0FBRyxFQUFFLEdBQUcsMEJBQTBCLFNBQVM7d0JBQzNDLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDOUI7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQ3JCLFNBQVMsQ0FBQyxFQUFnQixDQUFDLEVBQzNCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNkLFNBQVMsQ0FBQyxNQUFNLENBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN2QixDQUNGLENBQ0osRUFDRCxVQUFVLEVBQUUsQ0FDYixDQUFDO1FBRWUsYUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsMEJBQXFCLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLE1BQU07WUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ3BCLFNBQVM7Z0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FDSCxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBRSxFQUFFLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FDakQsRUFDRCxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQWtDLENBQzFEO2dCQUNILENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBNkIsQ0FDeEMsQ0FDRjtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FDcEUsOEJBQThCLENBQzVCLFdBQVcsRUFDWCxXQUFXLEVBQ1g7WUFDRSxHQUFHLE9BQU87WUFDVixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRSxFQUNELFVBQVUsRUFDVixJQUFJLENBQUMsUUFBUSxDQUNkLENBQ0YsRUFDRCxTQUFTLENBQUMsRUFBYyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxFQUFjLENBQUMsRUFDekIsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQVVGLENBQUM7SUFHRCxZQUFZLENBQUMsRUFBVSxFQUFFLFVBQW9CO1FBQzNDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDakMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLGFBQWEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN6QyxPQUFPLENBQ0wsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQ3JFLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxTQUFTLEtBQUssRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBR0QsUUFBUSxDQUFDLElBQXFCO1FBQzVCLE1BQU0sU0FBUyxHQUFzQixJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hELE9BQU8sU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDM0Q7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQXdCO1FBQ3hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ2xDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLGlCQUFpQjtZQUNqRCxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTTtZQUNwRCxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQWlCO1FBQ3ZDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFdEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUVELHVEQUF1RDtRQUN2RCxJQUNFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztZQUNwQyxVQUFVLENBQUMsSUFBSSxDQUNiLFVBQVUsQ0FBQyxFQUFFLENBQ1gsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO2dCQUM5QyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FDL0MsRUFDRCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakQ7UUFDRSx5SkFBeUo7UUFDekosQ0FBQyxTQUFTLElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzVCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUMxQyxDQUFDLEVBQ0osQ0FBQztZQUNELE9BQU87Z0JBQ0wsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsVUFBVSxDQUFDLE1BQU07WUFDakIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQ3ZFLENBQUM7WUFDRCxPQUFPO2dCQUNMLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLFdBQVcsQ0FDaEIsU0FBUyxFQUNULENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxXQUFXLENBQUMsSUFBSTtZQUNwRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FDeEIsQ0FBQztJQUNKLENBQUM7c0ZBbGZVLHFCQUFxQjtvRUFBckIscUJBQXFCOzs7Ozs7O3dhQTdCckI7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtZQzFHRCxBQURGLHdDQUF1QyxlQUNiO1lBQUEsWUFFdEI7O1lBQUEsaUJBQVE7WUFXVixBQVZBLDBFQVNFLCtFQVlEO1lBQ0QsaURBQStCO1lBQzdCLDRGQUdDOztZQWFELHFEQUE4QjtZQUM1QixhQU1GOzs7WUFDRixBQURFLGlCQUErQixFQUNkO1lBQ25CLDBGQUdDO1lBU0Qsd0NBUXFCOzs7WUFDckIseUVBR0M7O1lBT0gsaUJBQWdCOztZQW5GRCx5Q0FBdUI7WUFDWixlQUV0QjtZQUZzQiw4RUFFdEI7WUFFQyxlQUFlO1lBQWYsb0NBQWU7WUFVZixjQUFjO1lBQWQsbUNBQWM7WUFhbUIsZUFBZ0M7WUFBaEMsMEVBQWdDO1lBZ0JoRSxlQU1GO1lBTkUsMEpBTUY7WUFHQyxlQUFzQjtZQUF0QiwyQ0FBc0I7WUFhdkIsY0FJQztZQUNELEFBTEEsME9BSUMsbUVBQzZDO1lBSTdDLGVBQWdEO1lBQWhELDJGQUFnRDs0QkRrQ2pELGtCQUFrQixtSkFDbEIsU0FBUztZQUNULFFBQVE7WUFDUiw0QkFBNEIsNEJBRTVCLFVBQVUsZ0tBQ1YsSUFBSTtZQUNKLEtBQUs7WUFDTCxXQUFXLDRDQUNYLFVBQVUsb0JBQ1YsYUFBYSx1QkFDYixXQUFXLDJEQUNYLFNBQVM7O0FBWVg7SUFEQyxlQUFlLEVBQUU7OEJBQ1AsVUFBVTt1REFBUztBQU05QjtJQURDLGVBQWUsRUFBRTs4QkFDTCxVQUFVO3lEQUFTO0FBTWhDO0lBREMsZUFBZSxFQUFFOzhCQUNILFVBQVU7MkRBQXFCO0FBTTlDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7c0RBQVM7QUEyQjdCO0lBREMsZUFBZSxFQUFFOzhCQUNMLFVBQVU7eURBQXFCO0FBWTVDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7c0RBQW1CO0FBSXZDO0lBREMsZUFBZSxFQUFFOzhCQUNGLFVBQVU7NERBQVk7QUEwVHRDO0lBREMsSUFBSTs7Ozt5REFnQko7QUFPRDtJQURDLElBQUk7O3FDQUNVLGVBQWU7O3FEQVE3QjtpRkE3WlUscUJBQXFCO2NBekNqQyxTQUFTOzZCQUNJLElBQUksWUFDTixvQkFBb0IsbUJBU2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjt3QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGLFdBQ1E7b0JBQ1Asa0JBQWtCO29CQUNsQixTQUFTO29CQUNULFFBQVE7b0JBQ1IsNEJBQTRCO29CQUM1QixvQkFBb0I7b0JBQ3BCLFVBQVU7b0JBQ1YsSUFBSTtvQkFDSixLQUFLO29CQUNMLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixhQUFhO29CQUNiLFdBQVc7b0JBQ1gsU0FBUztvQkFDVCxnQkFBZ0I7aUJBQ2pCOzJLQU9ELE9BQU87a0JBRE4sS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsUUFBUSxNQUdSLFNBQVM7a0JBRFIsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsVUFBVSxNQUdWLFdBQVc7a0JBRFYsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsWUFBWSxNQUdaLE1BQU07a0JBREwsS0FBSztZQUlOLE9BQU8sTUFHUCxLQUFLO2tCQURKLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUl6QyxTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUl6QyxhQUFhO2tCQURaLEtBQUs7WUFJTixVQUFVLE1BSVYsWUFBWTtrQkFEWCxLQUFLO1lBS04sb0JBQW9CO2tCQURuQixLQUFLO1lBR0csTUFBTTtrQkFBZCxLQUFLO1lBRU4sT0FBTyxNQUVFLFlBQVk7a0JBQXBCLEtBQUs7WUFFTixhQUFhLE1BMFRiLFlBQVksTUFzQlosUUFBUTtrRkFyWkcscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICBDb21tb25Gb3JtQ29udHJvbCxcbiAgRm9ybUl0ZW1XaWR0aCxcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFRhZ01vZHVsZSxcbiAgVGFnc0lucHV0Q29tcG9uZW50LFxuICBUb29sdGlwTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEs4c0FwaVNlcnZpY2UsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIHB1Ymxpc2hSZWYsXG4gIHNraXBFcnJvcixcbiAgbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nLFxuICBOYW1lc3BhY2UsXG4gIGJpbmQsXG4gIFRSQU5TTEFURV9NT0RVTEUsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBFMmVBdHRyaWJ1dGVCaW5kaW5nRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBTdHJpbmdNYXAsXG4gIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICBQdXJlUGlwZSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19BU1lOQ19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdNb2RlbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdW5pcSwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgZmlyc3QsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgZm9ya0pvaW4sXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmV0d29ya1V0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmV0d29yay11dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VibmV0LCBTdWJuZXRJcCB9IGZyb20gJy4uLy4uL3R5cGVzL2s4cy1leHBvcnRzJztcbmltcG9ydCB7IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMgfSBmcm9tICcuLi8uLi90eXBlcy9yZXNvdXJjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7XG4gIElQTW9kZSxcbiAgTmV0d29ya01vZGUsXG4gIGFkYXB0SXBNb2RlLFxuICBhZGFwdFN1Ym5ldENpZHJzLFxuICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMsXG4gIGlwQWRkcmVzc0VxdWFsLFxuICBpc0JlbG9uZ0NpZHIsXG4gIGlzQnJvYWRjYXN0QWRkcixcbiAgaXNJcEFkZHJlc3NWYWxpZCxcbiAgaXNOZXR3b3JrQWRkcixcbiAgZ2V0QWRkcmVzc0J1aWxkZXIsXG59IGZyb20gJy4uLy4uL3V0aWxzL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQge1xuICBDbHVzdGVyTmV0d29ya1R5cGUsXG4gIEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxufSBmcm9tICcuLi8uLi91dGlscy9zdWJuZXQtZXhwb3J0cyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2FjbC1maXhlZC1pcC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0Om5vdCg6bGFzdC1jaGlsZCkgYXVpLWZvcm0taXRlbSA6Om5nLWRlZXAgLmF1aS1mb3JtLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpeGVkSXBJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaXhlZElwSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgUHVyZVBpcGUsXG4gICAgRTJlQXR0cmlidXRlQmluZGluZ0RpcmVjdGl2ZSxcbiAgICBFUlJPUlNfTUFQUEVSX01PRFVMRSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRhZ01vZHVsZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaXhlZElwSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxzdHJpbmcgfCBzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvclxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjbHVzdGVyOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNsdXN0ZXIkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBuYW1lc3BhY2UkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5ldHdvcmtUeXBlOiBDbHVzdGVyTmV0d29ya1R5cGU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIG5ldHdvcmtUeXBlJCE6IE9ic2VydmFibGU8Q2x1c3Rlck5ldHdvcmtUeXBlPjtcblxuICBASW5wdXQoKVxuICBzdWJuZXQ6IFN1Ym5ldDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3VibmV0JCE6IE9ic2VydmFibGU8U3VibmV0PjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaGludDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGFkZG9uVGlwOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnaXBBZGRyZXNzJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGlwQWRkcmVzczogTmdNb2RlbDtcblxuICBAVmlld0NoaWxkKCd0YWdzSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGFnc0lucHV0OiBUYWdzSW5wdXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgZm9ybUl0ZW1XaWR0aDogRm9ybUl0ZW1XaWR0aCA9IEZvcm1JdGVtV2lkdGguTWVkaXVtO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB0YWdzSW5wdXQkITogT2JzZXJ2YWJsZTxUYWdzSW5wdXRDb21wb25lbnQ+O1xuXG4gIC8vIOiZmuaLn+acuuabtOaWsOaXtuaOkumZpOaOieiHqui6q1xuICBASW5wdXQoKVxuICBza2lwT2NjdXBpZWQgPSBmYWxzZTtcblxuICAvLyDnm67liY3lj4zmoIjlm7rlrpogSVAg5Y+q5pSv5oyBIElQdjRcbiAgQElucHV0KClcbiAgZW5hYmxlRml4SXBWNkZvckR1YWwgPSBmYWxzZTtcblxuICBASW5wdXQoKSBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnM7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBlcnJvcnMkITogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzPjtcblxuICBASW5wdXQoKSBlcnJvcnNNYXBwZXI6IFN0cmluZ01hcDtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGVycm9yc01hcHBlciQhOiBPYnNlcnZhYmxlPFN0cmluZ01hcD47XG5cbiAgdW5pcSA9IHVuaXE7XG4gIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGdldCBpc0NhbGljbygpIHtcbiAgICByZXR1cm4gdGhpcy5uZXR3b3JrVHlwZSA9PT0gQ2x1c3Rlck5ldHdvcmtUeXBlLkNBTElDTztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlUmVzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jbHVzdGVyJCxcbiAgICB0aGlzLm5hbWVzcGFjZSQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbY2x1c3RlciwgbmFtZXNwYWNlXSkgPT4gISFjbHVzdGVyICYmICEhbmFtZXNwYWNlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBuYW1lc3BhY2VdKSA9PlxuICAgICAgdGhpcy5rOHNBcGkuZ2V0UmVzb3VyY2U8TmFtZXNwYWNlPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLk5BTUVTUEFDRSxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZTogbmFtZXNwYWNlLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrTW9kZSQgPSB0aGlzLmNsdXN0ZXIkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNsdXN0ZXIgPT4gdGhpcy5uZXR3b3JrVXRpbFNlcnZpY2UuZ2V0TmV0d29ya01vZGUkKGNsdXN0ZXIpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcmVhZG9ubHkgJG5ldHdvcmtNb2RlID0gdG9TaWduYWwodGhpcy5uZXR3b3JrTW9kZSQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3VibmV0RGV0YWlscyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMubmV0d29ya1R5cGUkLFxuICAgIHRoaXMuc3VibmV0JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjbHVzdGVyLCBuZXR3b3JrVHlwZV0pID0+ICEhY2x1c3RlciAmJiAhIW5ldHdvcmtUeXBlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBfbmV0d29ya1R5cGUsIHN1Ym5ldF0pID0+XG4gICAgICBzdWJuZXRcbiAgICAgICAgPyBvZih7XG4gICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgc3VibmV0czogW3N1Ym5ldF0sXG4gICAgICAgICAgICBzdWJuZXQsXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYz8uZ2F0ZXdheSxcbiAgICAgICAgICAgIGV4Y2x1ZGVJcHM6IHN1Ym5ldC5zcGVjPy5leGNsdWRlSXBzLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogdGhpcy5pc0NhbGljb1xuICAgICAgICAgID8gdGhpcy5rOHNBcGlcbiAgICAgICAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXQ+KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcyksXG4gICAgICAgICAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN1Ym5ldFtdKSxcbiAgICAgICAgICAgICAgICBtYXAoc3VibmV0cyA9PiAoe1xuICAgICAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgICAgIHN1Ym5ldHMsXG4gICAgICAgICAgICAgICAgICBzdWJuZXQ6IG51bGwgYXMgU3VibmV0LFxuICAgICAgICAgICAgICAgICAgZ2F0ZXdheTogJycsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKHtcbiAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgc3VibmV0czogW10gYXMgU3VibmV0W10sXG4gICAgICAgICAgICAgIHN1Ym5ldDogbnVsbCBhcyBTdWJuZXQsXG4gICAgICAgICAgICAgIGdhdGV3YXk6ICcnLFxuICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJuZXRJbmZvJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubmFtZXNwYWNlUmVzb3VyY2UkLnBpcGUoZmlsdGVyKEJvb2xlYW4pKSxcbiAgICB0aGlzLnN1Ym5ldERldGFpbHMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbXG4gICAgICAgIG5ldHdvcmtNb2RlLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIHsgY2x1c3Rlciwgc3VibmV0cywgc3VibmV0LCBnYXRld2F5LCBleGNsdWRlSXBzIH0sXG4gICAgICBdKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICBzdWJuZXRDaWRyczogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyB0aGlzLm5ldHdvcmtVdGlsU2VydmljZS5nZXRDYWxpY29DaWRycyhcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgICAgc3VibmV0cyxcbiAgICAgICAgICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGFkYXB0U3VibmV0Q2lkcnMoXG4gICAgICAgICAgICAgICAgc3VibmV0ID09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24obmFtZXNwYWNlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NpZHInLFxuICAgICAgICAgICAgICAgICAgICAgIGJhc2VEb21haW46IEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiAoc3VibmV0LnNwZWM/LmNpZHJCbG9jayA/PyAnJyksXG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIHN1Ym5ldE5hbWU6XG4gICAgICAgICAgICBzdWJuZXQgPT0gbnVsbFxuICAgICAgICAgICAgICA/IHRoaXMuaXNDYWxpY29cbiAgICAgICAgICAgICAgICA/IHRoaXMubmV0d29ya1V0aWxTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5nZXRDYWxpY29TdWJuZXROYW1lcyhuYW1lc3BhY2UsIHRoaXMuJG5ldHdvcmtNb2RlKCkpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICA6IHRoaXMuazhzVXRpbC5nZXRBbm5vdGF0aW9uKG5hbWVzcGFjZSwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9naWNhbF9zd2l0Y2gnLFxuICAgICAgICAgICAgICAgICAgICBiYXNlRG9tYWluOiBLVUJFX09WTl9BTk5PVEFUSU9OX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogdGhpcy5rOHNVdGlsLmdldE5hbWUoc3VibmV0KSxcbiAgICAgICAgICBnYXRld2F5LFxuICAgICAgICAgIGV4Y2x1ZGVJcHM6IGV4Y2x1ZGVJcHMgfHwgKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubmV0d29ya1R5cGUgPT09IENsdXN0ZXJOZXR3b3JrVHlwZS5LVUJFX09WTiAmJlxuICAgICAgICAhc3VibmV0SW5mby5nYXRld2F5XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICAgIHN1Ym5ldEluZm8uc3VibmV0TmFtZS5zcGxpdCgnLCcpLm1hcChzdWJuZXROYW1lID0+XG4gICAgICAgICAgICB0aGlzLms4c0FwaVxuICAgICAgICAgICAgICAuZ2V0UmVzb3VyY2U8U3VibmV0Pih7XG4gICAgICAgICAgICAgICAgdHlwZTogTkVUV09SS19SRVNPVVJDRV9UWVBFUy5TVUJORVRfS1VCRV9PVk4sXG4gICAgICAgICAgICAgICAgY2x1c3Rlcjogc3VibmV0SW5mby5jbHVzdGVyLFxuICAgICAgICAgICAgICAgIG5hbWU6IHN1Ym5ldE5hbWUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKHNraXBFcnJvcihudWxsIGFzIFN1Ym5ldCkpLFxuICAgICAgICAgICksXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtYXAobGlzdCA9PiBsaXN0LmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgICAgbWFwKHN1Ym5ldExpc3QgPT5cbiAgICAgICAgICAgIHN1Ym5ldExpc3QubGVuZ3RoXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4uc3VibmV0SW5mbyxcbiAgICAgICAgICAgICAgICAgIGdhdGV3YXk6IHN1Ym5ldExpc3RcbiAgICAgICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0uc3BlYz8uZ2F0ZXdheSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCcpLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZUlwczogdW5pcShcbiAgICAgICAgICAgICAgICAgICAgc3VibmV0TGlzdC5mbGF0TWFwKGl0ZW0gPT4gaXRlbS5zcGVjPy5leGNsdWRlSXBzKSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHN1Ym5ldEluZm8sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihzdWJuZXRJbmZvKTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoc3VibmV0SW5mby5zdWJuZXRDaWRycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHN1Ym5ldEluZm8pO1xuICAgICAgfVxuXG4gICAgICAvLyBmYWxsYmFjayB0byBkZWZhdWx0IHN1Ym5ldFxuICAgICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAgIC5nZXRSZXNvdXJjZTxTdWJuZXQ+KHtcbiAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICBjbHVzdGVyOiBzdWJuZXRJbmZvLmNsdXN0ZXIsXG4gICAgICAgICAgbmFtZTogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyBgZGVmYXVsdC1pcCR7XG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSA9PT0gJ2R1YWwnID8gJ3Y0JyA6IHRoaXMuJG5ldHdvcmtNb2RlKClcbiAgICAgICAgICAgICAgfS1pcHBvb2xgXG4gICAgICAgICAgICA6ICdvdm4tZGVmYXVsdCcsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChzdWJuZXQgPT4gKHtcbiAgICAgICAgICAgIC4uLnN1Ym5ldEluZm8sXG4gICAgICAgICAgICBzdWJuZXRDaWRyczogYWRhcHRTdWJuZXRDaWRycyhcbiAgICAgICAgICAgICAgc3VibmV0LnNwZWMuY2lkckJsb2NrLFxuICAgICAgICAgICAgICB0aGlzLiRuZXR3b3JrTW9kZSgpLFxuICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN1Ym5ldE5hbWU6IHRoaXMuazhzVXRpbC5nZXROYW1lKHN1Ym5ldCksXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYy5nYXRld2F5LFxuICAgICAgICAgICAgZXhjbHVkZUlwczogc3VibmV0LnNwZWMuZXhjbHVkZUlwcyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICk7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHJlYWRvbmx5ICRzdWJuZXRJbmZvID0gdG9TaWduYWwodGhpcy5zdWJuZXRJbmZvJCk7XG5cbiAgY2lkciQgPSB0aGlzLnN1Ym5ldEluZm8kLnBpcGUoXG4gICAgbWFwKHN1Ym5ldEluZm8gPT4gdW5pcShzdWJuZXRJbmZvPy5zdWJuZXRDaWRycykuam9pbign44CBJykpLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5uZXJFcnJvcnNNYXBwZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jaWRyJCxcbiAgICB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2NpZHJdKSA9PiAoe1xuICAgICAgcGF0dGVybjogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9wYXR0ZXJuX3RpcHMnLCB7XG4gICAgICAgIGlwTW9kZTogWydkdWFsJywgJ3Y0J10uaW5jbHVkZXModGhpcy4kbmV0d29ya01vZGUoKSkgPyAnSVB2NCcgOiAnSVB2NicsXG4gICAgICB9KSxcbiAgICAgIG9jY3VwaWVkOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2ZpeGVkX2lwX29jY3VwaWVkX3RpcHMnLCB7XG4gICAgICAgIGNpZHIsXG4gICAgICB9KSxcbiAgICAgIG91dF9vZl9yYW5nZTogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9vdXRfb2ZfcmFuZ2VfdGlwcycsIHtcbiAgICAgICAgY2lkcixcbiAgICAgIH0pLFxuICAgIH0pKSxcbiAgKTtcblxuICBjb21iaW5lZEVycm9yc01hcHBlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmlubmVyRXJyb3JzTWFwcGVyJCxcbiAgICB0aGlzLmVycm9yc01hcHBlciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbaW5uZXJFcnJvcnNNYXBwZXIsIGVycm9yc01hcHBlcl0pID0+ICh7XG4gICAgICAuLi5pbm5lckVycm9yc01hcHBlcixcbiAgICAgIC4uLmVycm9yc01hcHBlcixcbiAgICB9KSksXG4gICk7XG5cbiAgaW5wdXRFcnJvcnMkID0gdGhpcy5lcnJvcnMkLnBpcGUoXG4gICAgdGFwKGVycm9ycyA9PiB7XG4gICAgICB0aGlzLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgdGhpcy5pcEFkZHJlc3M/LmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2U/LigpO1xuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlZElwcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMuc3VibmV0SW5mbyQsXG4gICAgdGhpcy5tb2RlbCQucGlwZShmaXJzdCgpKSxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCB7IHN1Ym5ldE5hbWUsIGdhdGV3YXkgfSwgaXBdKSA9PlxuICAgICAgdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXRJcD4oe1xuICAgICAgICAgIHR5cGU6IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMuU1VCTkVUX0tVQkVfT1ZOX0lQLFxuICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgIGxhYmVsU2VsZWN0b3I6IG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IGAke0tVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYfS9zdWJuZXRgLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnaW4nLFxuICAgICAgICAgICAgICAgIHZhbHVlczogc3VibmV0TmFtZS5zcGxpdCgnLCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICAgIHNraXBFcnJvcihbXSBhcyBTdWJuZXRJcFtdKSxcbiAgICAgICAgICBtYXAoc3VibmV0SXBzID0+XG4gICAgICAgICAgICBzdWJuZXRJcHMucmVkdWNlPHN0cmluZ1tdPigodXNlZElwcywgeyBzcGVjOiB7IGlwQWRkcmVzcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgaXBBZGRyZXNzLnNwbGl0KCcsJykuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXAgIT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgIHVzZWRJcHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gdXNlZElwcztcbiAgICAgICAgICAgIH0sIGdhdGV3YXkuc3BsaXQoJywnKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5ICR1c2VkSXBzID0gdG9TaWduYWwodGhpcy51c2VkSXBzJCk7XG5cbiAgaXBBZGRyZXNzU3VnZ2VzdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5zdWJuZXRJbmZvJCxcbiAgICB0aGlzLnVzZWRJcHMkLFxuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubW9kZWwkLFxuICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRhZ3NJbnB1dCA9PlxuICAgICAgICB0YWdzSW5wdXRcbiAgICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICBmcm9tRXZlbnQodGFnc0lucHV0LmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGV2ID0+IChldi50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB0YWdzSW5wdXQuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcyBhcyBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiAodGhpcy5tb2RlbCQgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+KSxcbiAgICAgICksXG4gICAgKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt7IHN1Ym5ldENpZHJzIH0sIHVzZWRJcHMsIG5ldHdvcmtNb2RlLCBhZGRlZElwcywgaW5wdXRWYWx1ZV0pID0+XG4gICAgICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMoXG4gICAgICAgIHN1Ym5ldENpZHJzLFxuICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgW1xuICAgICAgICAgIC4uLnVzZWRJcHMsXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoYWRkZWRJcHMpID8gYWRkZWRJcHMgOiBbYWRkZWRJcHNdLmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgIF0sXG4gICAgICAgIGlucHV0VmFsdWUsXG4gICAgICAgIHRoaXMuaXNDYWxpY28sXG4gICAgICApLFxuICAgICksXG4gICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICBza2lwRXJyb3IoW10gYXMgc3RyaW5nW10pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1V0aWw6IEs4c1V0aWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya1V0aWxTZXJ2aWNlOiBOZXR3b3JrVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkcik7XG4gIH1cblxuICBAYmluZFxuICBpc1Jlc2VydmVkSXAoaXA6IHN0cmluZywgZXhjbHVkZUlwczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIodGhpcy5hZGFwdElwTW9kZShpcCkpO1xuICAgIHJldHVybiBleGNsdWRlSXBzLnNvbWUoZXhjbHVkZUlwID0+IHtcbiAgICAgIGlmIChleGNsdWRlSXAuaW5jbHVkZXMoJy4uJykpIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gZXhjbHVkZUlwPy5zcGxpdCgnLi4nKTtcbiAgICAgICAgY29uc3QgX0J1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcih0aGlzLmFkYXB0SXBNb2RlKHN0YXJ0KSk7XG4gICAgICAgIGNvbnN0IF9zdGFydEFkZHJlc3MgPSBuZXcgX0J1aWxkZXIoc3RhcnQpLmJpZ0ludGVnZXIoKTtcbiAgICAgICAgY29uc3QgX2VuZEFkZHJlc3MgPSBuZXcgX0J1aWxkZXIoZW5kKS5iaWdJbnRlZ2VyKCk7XG4gICAgICAgIGNvbnN0IF9pcCA9IG5ldyBCdWlsZGVyKGlwKS5iaWdJbnRlZ2VyKCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgX3N0YXJ0QWRkcmVzcy5jb21wYXJlVG8oX2lwKSA8PSAwICYmIF9pcC5jb21wYXJlVG8oX2VuZEFkZHJlc3MpIDw9IDBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleGNsdWRlSXAgPT09IGlwO1xuICAgIH0pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIEBiaW5kXG4gIHZhbGlkYXRlKGN0cmw6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnN0IGlwQWRkcmVzczogc3RyaW5nIHwgc3RyaW5nW10gPSBjdHJsLnZhbHVlO1xuICAgIHJldHVybiBpcEFkZHJlc3MgJiYgIUFycmF5LmlzQXJyYXkoaXBBZGRyZXNzKVxuICAgICAgPyB0aGlzLnVzZWRJcHMkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5zZXRFcnJvcnModGhpcy52YWxpZGF0ZUZpeGVkSXAoaXBBZGRyZXNzKSkpLFxuICAgICAgICApXG4gICAgICA6IG9mKHRoaXMuc2V0RXJyb3JzKG51bGwpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3JzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycykge1xuICAgIGNvbnN0IGNvbWJpbmVkRXJyb3JzID0gdGhpcy5tdWx0aXBsZVxuICAgICAgPyB7IC4uLnRoaXMuZXJyb3JzLCAuLi5lcnJvcnMgfSAvLyDlj6/og73lrZjlnKjkvKDlhaXnmoQgZXJyb3JzXG4gICAgICA6IGVycm9ycztcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JzID0gdmFsdWVzKGNvbWJpbmVkRXJyb3JzKS5sZW5ndGhcbiAgICAgID8gY29tYmluZWRFcnJvcnNcbiAgICAgIDogbnVsbDtcbiAgICB0aGlzLmlwQWRkcmVzcz8uY29udHJvbC5zZXRFcnJvcnModmFsaWRhdGlvbkVycm9ycyk7XG4gICAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRml4ZWRJcChpcEFkZHJlc3M6IHN0cmluZykge1xuICAgIGNvbnN0IHsgc3VibmV0Q2lkcnMsIGdhdGV3YXkgfSA9IHRoaXMuJHN1Ym5ldEluZm8oKTtcblxuICAgIGNvbnN0IGlwTW9kZSA9IHRoaXMuYWRhcHRJcE1vZGUoaXBBZGRyZXNzKTtcbiAgICBjb25zdCBpc0lwVjQgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0O1xuXG4gICAgY29uc3QganVkZ2VDaWRycyA9IHN1Ym5ldENpZHJzLmZpbHRlcihjaWRyID0+IHtcbiAgICAgIGNvbnN0IGlzSXBWNiA9IGNpZHIuaW5jbHVkZXMoJzonKTtcbiAgICAgIHJldHVybiBpc0lwVjQgPyAhaXNJcFY2IDogaXNJcFY2O1xuICAgIH0pO1xuXG4gICAgaWYgKHN1Ym5ldENpZHJzLmxlbmd0aCAmJiAhanVkZ2VDaWRycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGludmFsaWQgaXAgcGF0dGVybiwgbm90IGJyb2FkY2FzdCBpcCwgbm90IG5ldHdvcmsgaXBcbiAgICBpZiAoXG4gICAgICAhaXNJcEFkZHJlc3NWYWxpZChpcEFkZHJlc3MsIGlwTW9kZSkgfHxcbiAgICAgIGp1ZGdlQ2lkcnMuc29tZShcbiAgICAgICAgY2FsaWNvQ2lkciA9PlxuICAgICAgICAgIGlzQnJvYWRjYXN0QWRkcihpcEFkZHJlc3MsIGNhbGljb0NpZHIsIGlwTW9kZSkgfHxcbiAgICAgICAgICBpc05ldHdvcmtBZGRyKGlwQWRkcmVzcywgY2FsaWNvQ2lkciwgaXBNb2RlKSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGxldCB2NEdhdGV3YXk6IHN0cmluZztcbiAgICBsZXQgdjZHYXRld2F5OiBzdHJpbmc7XG5cbiAgICBpZiAoZ2F0ZXdheSkge1xuICAgICAgY29uc3QgZ2F0ZXdheVBhcnRzID0gZ2F0ZXdheS5zcGxpdCgnLCcpO1xuICAgICAgdjRHYXRld2F5ID0gZ2F0ZXdheVBhcnRzWzBdO1xuICAgICAgdjZHYXRld2F5ID0gZ2F0ZXdheVBhcnRzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IGlwR2F0ZXdheSA9IGlzSXBWNCA/IHY0R2F0ZXdheSA6IHY2R2F0ZXdheTtcblxuICAgIGlmIChcbiAgICAgIC8vIGh0dHBzOi8vamlyYS5hbGF1ZGEuY24vYnJvd3NlL0FDUC0xMjEzNj9mb2N1c2VkQ29tbWVudElkPTIxNTQ2MCZwYWdlPWNvbS5hdGxhc3NpYW4uamlyYS5wbHVnaW4uc3lzdGVtLmlzc3VldGFicGFuZWxzJTNBY29tbWVudC10YWJwYW5lbCNjb21tZW50LTIxNTQ2MFxuICAgICAgKGlwR2F0ZXdheSAmJiBpcEFkZHJlc3NFcXVhbChpcEdhdGV3YXksIGlwQWRkcmVzcywgaXBNb2RlKSkgfHxcbiAgICAgICghdGhpcy5za2lwT2NjdXBpZWQgJiZcbiAgICAgICAgdGhpcy4kdXNlZElwcygpLnNvbWUodXNlZElwID0+XG4gICAgICAgICAgaXBBZGRyZXNzRXF1YWwodXNlZElwLCBpcEFkZHJlc3MsIGlwTW9kZSksXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvY2N1cGllZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAganVkZ2VDaWRycy5sZW5ndGggJiZcbiAgICAgICFqdWRnZUNpZHJzLnNvbWUoY2lkciA9PiBjaWRyICYmIGlzQmVsb25nQ2lkcihjaWRyLCBpcEFkZHJlc3MsIGlwTW9kZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvdXRfb2ZfcmFuZ2U6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRhcHRJcE1vZGUoaXBBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYWRhcHRJcE1vZGUoXG4gICAgICBpcEFkZHJlc3MsXG4gICAgICAhdGhpcy5lbmFibGVGaXhJcFY2Rm9yRHVhbCAmJiB0aGlzLiRuZXR3b3JrTW9kZSgpID09PSBOZXR3b3JrTW9kZS5EVUFMXG4gICAgICAgID8gTmV0d29ya01vZGUuSVBWNFxuICAgICAgICA6IHRoaXMuJG5ldHdvcmtNb2RlKCksXG4gICAgKTtcbiAgfVxufVxuIiwiPGF1aS1mb3JtLWl0ZW0gW3dpZHRoXT1cImZvcm1JdGVtV2lkdGhcIj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3tcbiAgICBsYWJlbCB8fCAoJ25ldHdvcmsuaXBfYWRkcmVzcycgfCB0cmFuc2xhdGUpXG4gIH19PC9sYWJlbD5cbiAgPGlucHV0XG4gICAgKm5nSWY9XCIhbXVsdGlwbGVcIlxuICAgIGF1aS1pbnB1dFxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJlbWl0VmFsdWUoJGV2ZW50KVwiXG4gICAgI2lwQWRkcmVzcz1cIm5nTW9kZWxcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAoJ2RoY3BfcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlKVwiXG4gICAgW2F1aUF1dG9jb21wbGV0ZV09XCJzdWdnZXN0aW9uc1wiXG4gIC8+XG4gIDxhdWktdGFncy1pbnB1dFxuICAgICpuZ0lmPVwibXVsdGlwbGVcIlxuICAgIGNsYXNzPVwiZmxleC0xXCJcbiAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAjdGFnc0lucHV0XG4gICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRWYWx1ZSh1bmlxKCRldmVudCkpXCJcbiAgICAjaXBBZGRyZXNzPVwibmdNb2RlbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICgnZGhjcF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUpXCJcbiAgICBbYXVpQXV0b2NvbXBsZXRlXT1cInN1Z2dlc3Rpb25zXCJcbiAgICBbaW5wdXRBc3luY1ZhbGlkYXRvcl09XCJ2YWxpZGF0ZVwiXG4gID48L2F1aS10YWdzLWlucHV0PlxuICA8YXVpLWF1dG9jb21wbGV0ZSAjc3VnZ2VzdGlvbnM+XG4gICAgPGF1aS1zdWdnZXN0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgaXBBZGRyZXNzU3VnZ2VzdGlvbiBvZiBpcEFkZHJlc3NTdWdnZXN0aW9ucyQgfCBhc3luY1wiXG4gICAgICBbdmFsdWVdPVwiaXBBZGRyZXNzU3VnZ2VzdGlvblwiXG4gICAgPlxuICAgICAge3sgaXBBZGRyZXNzU3VnZ2VzdGlvbiB9fVxuICAgICAgPGF1aS10YWdcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBpcEFkZHJlc3NTdWdnZXN0aW9uIHwgcHVyZTogaXNSZXNlcnZlZElwIDogJHN1Ym5ldEluZm8oKS5leGNsdWRlSXBzXG4gICAgICAgIFwiXG4gICAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaXplXT1cIidtaW5pJ1wiXG4gICAgICAgIHR5cGU9XCJpbmZvXCJcbiAgICAgID5cbiAgICAgICAge3sgJ25ldHdvcmsucmVzZXJ2ZWRfaXAnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS10YWc+XG4gICAgPC9hdWktc3VnZ2VzdGlvbj5cbiAgICA8YXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgICAgIHt7XG4gICAgICAgICgoaXBBZGRyZXNzU3VnZ2VzdGlvbnMkIHwgYXN5bmMpXG4gICAgICAgICAgPyAnbmV0d29yay5ub19hdmFpbGFibGVfc3VnZ2VzdGlvbidcbiAgICAgICAgICA6ICdsb2FkaW5nJ1xuICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICB9fVxuICAgIDwvYXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgPC9hdWktYXV0b2NvbXBsZXRlPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJhZGRvblRpcCAhPSBudWxsXCJcbiAgICBhdWlGb3JtSXRlbUFkZG9uXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgICpuZ0lmPVwiYWRkb25UaXBcIlxuICAgICAgaWNvbj1cInF1ZXN0aW9uX2NpcmNsZVwiXG4gICAgICBjbGFzcz1cImljb24tLWhlbHBcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiYWRkb25UaXBcIlxuICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICBbZXJyb3JzXT1cIlxuICAgICAgaXBBZGRyZXNzPy5lcnJvcnM/LmlucHV0X2RhdGFfZXJyb3IgfHxcbiAgICAgIGlwQWRkcmVzcz8uZXJyb3JzIHx8XG4gICAgICAoaW5wdXRFcnJvcnMkIHwgYXN5bmMpXG4gICAgXCJcbiAgICBbZXJyb3JzTWFwcGVyXT1cImNvbWJpbmVkRXJyb3JzTWFwcGVyJCB8IGFzeW5jXCJcbiAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gIDxkaXZcbiAgICBhdWlGb3JtSXRlbUhpbnRcbiAgICAqbmdJZj1cImhpbnQgIT09IG51bGwgJiYgKGhpbnQgfHwgKGNpZHIkIHwgYXN5bmMpKVwiXG4gID5cbiAgICB7e1xuICAgICAgaGludCB8fFxuICAgICAgICAoJ25ldHdvcmsuZml4X2lwX3Nob3VsZF9iZWxvbmdfdGlwJ1xuICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IGNpZHI6IChjaWRyJCB8IGFzeW5jKSB9KVxuICAgIH19XG4gIDwvZGl2PlxuPC9hdWktZm9ybS1pdGVtPlxuIl19
|
|
@@ -245,7 +245,7 @@ export class LoadBalancerSpecFormComponent extends BaseResourceFormGroupComponen
|
|
|
245
245
|
ERRORS_MAPPER_MODULE,
|
|
246
246
|
CoreModule,
|
|
247
247
|
CoerceNumberDirective,
|
|
248
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <aui-form-item class=\"spec-model\">\n <label auiFormItemLabel>{{ 'network.specification' | translate }}</label>\n <aui-radio-group\n auiFormItemControl\n formControlName=\"specModel\"\n (ngModelChange)=\"onSpecModelChange($event)\"\n required\n >\n <aui-radio-button\n *ngFor=\"let specModel of SPEC_MODEL_TIPS\"\n [value]=\"specModel.model\"\n >\n <div class=\"spec-model__label\">\n <div>\n {{ 'network.' + specModel.model + '_scale' | translate }}\n <div class=\"text-help\">\n {{ 'network.' + specModel.tip | translate }}\n </div>\n </div>\n </div>\n </aui-radio-button>\n </aui-radio-group>\n <aui-icon\n auiFormItemAddon\n [auiTooltip]=\"specModelTips\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n <ng-template #specModelTips>\n <ul class=\"d-list\">\n <li>{{ 'network.alb_spec_model_tips_small' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_medium' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_large' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_custom' | translate }}</li>\n </ul>\n </ng-template>\n </aui-form-item>\n <aui-form-item width=\"large\">\n <label auiFormItemLabel>{{ 'network.resource_limit' | translate }}</label>\n <div\n formGroupName=\"resourceLimit\"\n class=\"d-flex flex-1 aui-form-item__control\"\n >\n <aui-form-item class=\"flex-1\">\n <aui-input-group\n auiFormItemControl\n formGroupName=\"cpu\"\n >\n <span auiInputAddonBefore>CPU</span>\n <input\n aui-input\n formControlName=\"value\"\n aclCoerceNumber\n [pattern]=\"POSITIVE_INT_PATTERN.pattern\"\n [aclErrorsMapper]=\"{\n pattern: POSITIVE_INT_PATTERN.tip | translate
|
|
248
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <aui-form-item class=\"spec-model\">\n <label auiFormItemLabel>{{ 'network.specification' | translate }}</label>\n <aui-radio-group\n auiFormItemControl\n formControlName=\"specModel\"\n (ngModelChange)=\"onSpecModelChange($event)\"\n required\n >\n <aui-radio-button\n *ngFor=\"let specModel of SPEC_MODEL_TIPS\"\n [value]=\"specModel.model\"\n >\n <div class=\"spec-model__label\">\n <div>\n {{ 'network.' + specModel.model + '_scale' | translate }}\n <div class=\"text-help\">\n {{ 'network.' + specModel.tip | translate }}\n </div>\n </div>\n </div>\n </aui-radio-button>\n </aui-radio-group>\n <aui-icon\n auiFormItemAddon\n [auiTooltip]=\"specModelTips\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n <ng-template #specModelTips>\n <ul class=\"d-list\">\n <li>{{ 'network.alb_spec_model_tips_small' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_medium' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_large' | translate }}</li>\n <li>{{ 'network.alb_spec_model_tips_custom' | translate }}</li>\n </ul>\n </ng-template>\n </aui-form-item>\n <aui-form-item width=\"large\">\n <label auiFormItemLabel>{{ 'network.resource_limit' | translate }}</label>\n <div\n formGroupName=\"resourceLimit\"\n class=\"d-flex flex-1 aui-form-item__control\"\n >\n <aui-form-item class=\"flex-1\">\n <aui-input-group\n auiFormItemControl\n formGroupName=\"cpu\"\n >\n <span auiInputAddonBefore>CPU</span>\n <input\n aui-input\n formControlName=\"value\"\n aclCoerceNumber\n [pattern]=\"POSITIVE_INT_PATTERN.pattern\"\n [aclErrorsMapper]=\"{\n pattern: POSITIVE_INT_PATTERN.tip | translate,\n }\"\n [aclErrorsMapperOutlet]=\"cpuError\"\n />\n <aui-select\n *ngIf=\"\n form.get('specModel').value === SpecModel.CUSTOMIZE;\n else cUnit\n \"\n class=\"vm-spec-form__cpu-unit\"\n auiInputAddonAfter\n formControlName=\"unit\"\n >\n <aui-option value=\"m\">m</aui-option>\n <aui-option\n value=\"core\"\n [label]=\"'core' | translate\"\n >\n {{ 'core' | translate }}\n </aui-option>\n </aui-select>\n <ng-template #cUnit>\n <span\n *ngIf=\"form.get('resourceLimit.cpu.unit').value as cpuUnit\"\n auiInputAddonAfter\n >\n {{ cpuUnit === 'core' ? ('core' | translate) : cpuUnit }}\n </span>\n </ng-template>\n </aui-input-group>\n <div\n auiFormItemError\n #cpuError\n ></div>\n </aui-form-item>\n <aui-form-item class=\"flex-1 ml-8\">\n <aui-input-group\n auiFormItemControl\n formGroupName=\"memory\"\n >\n <span auiInputAddonBefore>{{ 'memory' | translate }}</span>\n <input\n aui-input\n formControlName=\"value\"\n aclCoerceNumber\n [pattern]=\"POSITIVE_INT_PATTERN.pattern\"\n [aclErrorsMapper]=\"{\n pattern: POSITIVE_INT_PATTERN.tip | translate,\n }\"\n [aclErrorsMapperOutlet]=\"memoryError\"\n />\n <aui-select\n *ngIf=\"\n form.get('specModel').value === SpecModel.CUSTOMIZE;\n else mUnit\n \"\n auiInputAddonAfter\n formControlName=\"unit\"\n >\n <aui-option value=\"Mi\">Mi</aui-option>\n <aui-option value=\"Gi\">Gi</aui-option>\n </aui-select>\n <ng-template #mUnit>\n <span auiInputAddonAfter>\n {{ form.get('resourceLimit.memory.unit').value }}\n </span>\n </ng-template>\n </aui-input-group>\n <div\n auiFormItemError\n #memoryError\n ></div>\n </aui-form-item>\n </div>\n </aui-form-item>\n</ng-container>\n", styles: ["aui-form-item aui-form-item ::ng-deep .aui-form-item{margin-bottom:0}.spec-model ::ng-deep .aui-form-item__label-wrapper{height:64px}.spec-model ::ng-deep .aui-form-item__label-wrapper.hasLabel:after{align-self:center}.spec-model ::ng-deep .aui-form-item__addon-wrapper{align-self:center}.spec-model ::ng-deep .aui-radio-button__label{height:64px;min-width:132px;padding:0}.spec-model ::ng-deep .aui-radio-button__label>span{flex:1;height:100%}.spec-model ::ng-deep .aui-radio-button__label .text-help{margin-top:2px;font-size:12px}.spec-model__label{display:flex;text-align:center;justify-content:center;align-items:center;height:100%;padding:0 15px}:host ::ng-deep .aui-form-item__label-wrapper:empty{display:none}:host ::ng-deep .aui-input-group__input-wrapper:focus-within+.aui-input-group__addon .aui-select__input,:host ::ng-deep .aui-input-group__input-wrapper:hover+.aui-input-group__addon .aui-select__input{border-left-color:rgb(var(--aui-color-primary))}:host ::ng-deep aui-input-group.ng-invalid .aui-input-group__input-wrapper+.aui-input-group__addon .aui-select__input{border-left-color:rgb(var(--aui-color-red))}:host ::ng-deep .aui-input-group__addon--after aui-select{margin-left:-8px;margin-right:-8px;width:56px}::ng-deep html:not([lang|=zh]) .vm-spec-form__cpu-unit{width:78px}\n"] }]
|
|
249
249
|
}], null, null); })();
|
|
250
250
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoadBalancerSpecFormComponent, { className: "LoadBalancerSpecFormComponent", filePath: "lib/components/loadbalancer-spec-form/component.ts", lineNumber: 64 }); })();
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYmFsYW5jZXItc3BlYy1mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGJhbGFuY2VyLXNwZWMtZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQXlCLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztJQ1B0RCxBQURGLEFBSkYsNENBR0MsY0FDZ0MsVUFDeEI7SUFDSCxZQUNBOztJQUFBLCtCQUF1QjtJQUNyQixZQUNGOztJQUdOLEFBREUsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRixFQUNXOzs7SUFWakIsMENBQXlCO0lBSXJCLGVBQ0E7SUFEQSxpR0FDQTtJ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QyxNQUFNOztrRkFFcEMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxuICBTZWxlY3RNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ29lcmNlTnVtYmVyRGlyZWN0aXZlLFxuICBDb3JlTW9kdWxlLFxuICBQT1NJVElWRV9JTlRfUEFUVEVSTixcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlRm9ybUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnbmctcmVzb3VyY2UtZm9ybS11dGlsJztcblxuaW1wb3J0IHsgQWxiUmVzb3VyY2VMaW1pdE1vZGVsLCBTcGVjTW9kZWwgfSBmcm9tICcuLi8uLi90eXBlcy9hbGItZXhwb3J0cyc7XG5pbXBvcnQgeyBSRVNPVVJDRV9MSU1JVF9NQVBQRVIgfSBmcm9tICcuLi8uLi91dGlscy9hbGItZXhwb3J0cyc7XG5cbmNvbnN0IFNQRUNfTU9ERUxfVElQUyA9IFtcbiAge1xuICAgIG1vZGVsOiBTcGVjTW9kZWwuU01BTEwsXG4gICAgdGlwOiAnYWxiX3NwZWNfc21hbGxfdGlwcycsXG4gIH0sXG4gIHtcbiAgICBtb2RlbDogU3BlY01vZGVsLk1FRElVTSxcbiAgICB0aXA6ICdhbGJfc3BlY19tZWRpdW1fdGlwcycsXG4gIH0sXG4gIHtcbiAgICBtb2RlbDogU3BlY01vZGVsLkxBUkdFLFxuICAgIHRpcDogJ2FsYl9zcGVjX2xhcmdlX3RpcHMnLFxuICB9LFxuICB7XG4gICAgbW9kZWw6IFNwZWNNb2RlbC5DVVNUT01JWkUsXG4gICAgdGlwOiAnc3VpdGFibGVfZm9yX3Byb2Zlc3Npb25hbF91c2VycycsXG4gIH0sXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYWxiLXNwZWMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBDb2VyY2VOdW1iZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkQmFsYW5jZXJTcGVjRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VSZXNvdXJjZUZvcm1Hcm91cENvbXBvbmVudDxBbGJSZXNvdXJjZUxpbWl0TW9kZWw+IHtcbiAgU3BlY01vZGVsID0gU3BlY01vZGVsO1xuICBTUEVDX01PREVMX1RJUFMgPSBTUEVDX01PREVMX1RJUFM7XG4gIFBPU0lUSVZFX0lOVF9QQVRURVJOID0gUE9TSVRJVkVfSU5UX1BBVFRFUk47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICBjb25zdCB7IGNwdSwgbWVtb3J5IH0gPSBSRVNPVVJDRV9MSU1JVF9NQVBQRVJbU3BlY01vZGVsLlNNQUxMXTtcbiAgICBjb25zdCByZXNvdXJjZUxpbWl0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY3B1OiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgdmFsdWU6IHRoaXMuZmIuY29udHJvbChjcHUudmFsdWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIHVuaXQ6IHRoaXMuZmIuY29udHJvbChjcHUudW5pdCksXG4gICAgICB9KSxcbiAgICAgIG1lbW9yeTogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIHZhbHVlOiB0aGlzLmZiLmNvbnRyb2wobWVtb3J5LnZhbHVlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICB1bml0OiB0aGlzLmZiLmNvbnRyb2wobWVtb3J5LnVuaXQpLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VNb2RlbD8uc3BlY01vZGVsICE9PSBTcGVjTW9kZWwuQ1VTVE9NSVpFKSB7XG4gICAgICByZXNvdXJjZUxpbWl0Rm9ybS5kaXNhYmxlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNwZWNNb2RlbDogdGhpcy5mYi5jb250cm9sKFNwZWNNb2RlbC5TTUFMTCksXG4gICAgICByZXNvdXJjZUxpbWl0OiByZXNvdXJjZUxpbWl0Rm9ybSxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldERlZmF1bHRGb3JtTW9kZWwoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNwZWNNb2RlbDogU3BlY01vZGVsLlNNQUxMLFxuICAgICAgcmVzb3VyY2VMaW1pdDogUkVTT1VSQ0VfTElNSVRfTUFQUEVSW1NwZWNNb2RlbC5TTUFMTF0sXG4gICAgfTtcbiAgfVxuXG4gIG9uU3BlY01vZGVsQ2hhbmdlKHNwZWNNb2RlbDogU3BlY01vZGVsKSB7XG4gICAgY29uc3QgcmVzb3VyY2VMaW1pdCA9IFJFU09VUkNFX0xJTUlUX01BUFBFUltzcGVjTW9kZWxdO1xuICAgIGNvbnN0IHJlc291cmNlTGltaXRGb3JtID0gdGhpcy5mb3JtLmdldCgncmVzb3VyY2VMaW1pdCcpO1xuXG4gICAgaWYgKCFyZXNvdXJjZUxpbWl0KSB7XG4gICAgICByZXNvdXJjZUxpbWl0Rm9ybS5lbmFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXNvdXJjZUxpbWl0Rm9ybS5wYXRjaFZhbHVlKHJlc291cmNlTGltaXQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICByZXNvdXJjZUxpbWl0Rm9ybS5kaXNhYmxlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxhdWktZm9ybS1pdGVtIGNsYXNzPVwic3BlYy1tb2RlbFwiPlxuICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICduZXR3b3JrLnNwZWNpZmljYXRpb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXJhZGlvLWdyb3VwXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNwZWNNb2RlbFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNwZWNNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgPlxuICAgICAgPGF1aS1yYWRpby1idXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHNwZWNNb2RlbCBvZiBTUEVDX01PREVMX1RJUFNcIlxuICAgICAgICBbdmFsdWVdPVwic3BlY01vZGVsLm1vZGVsXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwZWMtbW9kZWxfX2xhYmVsXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7ICduZXR3b3JrLicgKyBzcGVjTW9kZWwubW9kZWwgKyAnX3NjYWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtaGVscFwiPlxuICAgICAgICAgICAgICB7eyAnbmV0d29yay4nICsgc3BlY01vZGVsLnRpcCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hdWktcmFkaW8tYnV0dG9uPlxuICAgIDwvYXVpLXJhZGlvLWdyb3VwPlxuICAgIDxhdWktaWNvblxuICAgICAgYXVpRm9ybUl0ZW1BZGRvblxuICAgICAgW2F1aVRvb2x0aXBdPVwic3BlY01vZGVsVGlwc1wiXG4gICAgICBpY29uPVwicXVlc3Rpb25fY2lyY2xlXCJcbiAgICAgIGNsYXNzPVwiaWNvbi0taGVscFwiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPG5nLXRlbXBsYXRlICNzcGVjTW9kZWxUaXBzPlxuICAgICAgPHVsIGNsYXNzPVwiZC1saXN0XCI+XG4gICAgICAgIDxsaT57eyAnbmV0d29yay5hbGJfc3BlY19tb2RlbF90aXBzX3NtYWxsJyB8IHRyYW5zbGF0ZSB9fTwvbGk+XG4gICAgICAgIDxsaT57eyAnbmV0d29yay5hbGJfc3BlY19tb2RlbF90aXBzX21lZGl1bScgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgICA8bGk+e3sgJ25ldHdvcmsuYWxiX3NwZWNfbW9kZWxfdGlwc19sYXJnZScgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgICA8bGk+e3sgJ25ldHdvcmsuYWxiX3NwZWNfbW9kZWxfdGlwc19jdXN0b20nIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktZm9ybS1pdGVtPlxuICA8YXVpLWZvcm0taXRlbSB3aWR0aD1cImxhcmdlXCI+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ25ldHdvcmsucmVzb3VyY2VfbGltaXQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8ZGl2XG4gICAgICBmb3JtR3JvdXBOYW1lPVwicmVzb3VyY2VMaW1pdFwiXG4gICAgICBjbGFzcz1cImQtZmxleCBmbGV4LTEgYXVpLWZvcm0taXRlbV9fY29udHJvbFwiXG4gICAgPlxuICAgICAgPGF1aS1mb3JtLWl0ZW0gY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgPGF1aS1pbnB1dC1ncm91cFxuICAgICAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgICAgIGZvcm1Hcm91cE5hbWU9XCJjcHVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gYXVpSW5wdXRBZGRvbkJlZm9yZT5DUFU8L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGFjbENvZXJjZU51bWJlclxuICAgICAgICAgICAgW3BhdHRlcm5dPVwiUE9TSVRJVkVfSU5UX1BBVFRFUk4ucGF0dGVyblwiXG4gICAgICAgICAgICBbYWNsRXJyb3JzTWFwcGVyXT1cIntcbiAgICAgICAgICAgICAgcGF0dGVybjogUE9TSVRJVkVfSU5UX1BBVFRFUk4udGlwIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFthY2xFcnJvcnNNYXBwZXJPdXRsZXRdPVwiY3B1RXJyb3JcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGF1aS1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm0uZ2V0KCdzcGVjTW9kZWwnKS52YWx1ZSA9PT0gU3BlY01vZGVsLkNVU1RPTUlaRTtcbiAgICAgICAgICAgICAgZWxzZSBjVW5pdFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwidm0tc3BlYy1mb3JtX19jcHUtdW5pdFwiXG4gICAgICAgICAgICBhdWlJbnB1dEFkZG9uQWZ0ZXJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVuaXRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhdWktb3B0aW9uIHZhbHVlPVwibVwiPm08L2F1aS1vcHRpb24+XG4gICAgICAgICAgICA8YXVpLW9wdGlvblxuICAgICAgICAgICAgICB2YWx1ZT1cImNvcmVcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2NvcmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ2NvcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2F1aS1vcHRpb24+XG4gICAgICAgICAgPC9hdWktc2VsZWN0PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY1VuaXQ+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCdyZXNvdXJjZUxpbWl0LmNwdS51bml0JykudmFsdWUgYXMgY3B1VW5pdFwiXG4gICAgICAgICAgICAgIGF1aUlucHV0QWRkb25BZnRlclxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjcHVVbml0ID09PSAnY29yZScgPyAoJ2NvcmUnIHwgdHJhbnNsYXRlKSA6IGNwdVVuaXQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2F1aS1pbnB1dC1ncm91cD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICAgICAgICAjY3B1RXJyb3JcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9hdWktZm9ybS1pdGVtPlxuICAgICAgPGF1aS1mb3JtLWl0ZW0gY2xhc3M9XCJmbGV4LTEgbWwtOFwiPlxuICAgICAgICA8YXVpLWlucHV0LWdyb3VwXG4gICAgICAgICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgICAgICAgZm9ybUdyb3VwTmFtZT1cIm1lbW9yeVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBhdWlJbnB1dEFkZG9uQmVmb3JlPnt7ICdtZW1vcnknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgYXVpLWlucHV0XG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBhY2xDb2VyY2VOdW1iZXJcbiAgICAgICAgICAgIFtwYXR0ZXJuXT1cIlBPU0lUSVZFX0lOVF9QQVRURVJOLnBhdHRlcm5cIlxuICAgICAgICAgICAgW2FjbEVycm9yc01hcHBlcl09XCJ7XG4gICAgICAgICAgICAgIHBhdHRlcm46IFBPU0lUSVZFX0lOVF9QQVRURVJOLnRpcCB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbYWNsRXJyb3JzTWFwcGVyT3V0bGV0XT1cIm1lbW9yeUVycm9yXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxhdWktc2VsZWN0XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBmb3JtLmdldCgnc3BlY01vZGVsJykudmFsdWUgPT09IFNwZWNNb2RlbC5DVVNUT01JWkU7XG4gICAgICAgICAgICAgIGVsc2UgbVVuaXRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBhdWlJbnB1dEFkZG9uQWZ0ZXJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVuaXRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhdWktb3B0aW9uIHZhbHVlPVwiTWlcIj5NaTwvYXVpLW9wdGlvbj5cbiAgICAgICAgICAgIDxhdWktb3B0aW9uIHZhbHVlPVwiR2lcIj5HaTwvYXVpLW9wdGlvbj5cbiAgICAgICAgICA8L2F1aS1zZWxlY3Q+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNtVW5pdD5cbiAgICAgICAgICAgIDxzcGFuIGF1aUlucHV0QWRkb25BZnRlcj5cbiAgICAgICAgICAgICAge3sgZm9ybS5nZXQoJ3Jlc291cmNlTGltaXQubWVtb3J5LnVuaXQnKS52YWx1ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXVpLWlucHV0LWdyb3VwPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgICAgICAgICNtZW1vcnlFcnJvclxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2F1aS1mb3JtLWl0ZW0+XG4gICAgPC9kaXY+XG4gIDwvYXVpLWZvcm0taXRlbT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYmFsYW5jZXItc3BlYy1mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGJhbGFuY2VyLXNwZWMtZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQXlCLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztJQ1B0RCxBQURGLEFBSkYsNENBR0MsY0FDZ0MsVUFDeEI7SUFDSCxZQUNBOztJQUFBLCtCQUF1QjtJQUNyQixZQUNGOztJQUdOLEFBREUsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRixFQUNXOzs7SUFWakIsMENBQXlCO0lBSXJCLGVBQ0E7SUFEQSxpR0FDQTtJ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QyxNQUFNOztrRkFFcEMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxuICBTZWxlY3RNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ29lcmNlTnVtYmVyRGlyZWN0aXZlLFxuICBDb3JlTW9kdWxlLFxuICBQT1NJVElWRV9JTlRfUEFUVEVSTixcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlRm9ybUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnbmctcmVzb3VyY2UtZm9ybS11dGlsJztcblxuaW1wb3J0IHsgQWxiUmVzb3VyY2VMaW1pdE1vZGVsLCBTcGVjTW9kZWwgfSBmcm9tICcuLi8uLi90eXBlcy9hbGItZXhwb3J0cyc7XG5pbXBvcnQgeyBSRVNPVVJDRV9MSU1JVF9NQVBQRVIgfSBmcm9tICcuLi8uLi91dGlscy9hbGItZXhwb3J0cyc7XG5cbmNvbnN0IFNQRUNfTU9ERUxfVElQUyA9IFtcbiAge1xuICAgIG1vZGVsOiBTcGVjTW9kZWwuU01BTEwsXG4gICAgdGlwOiAnYWxiX3NwZWNfc21hbGxfdGlwcycsXG4gIH0sXG4gIHtcbiAgICBtb2RlbDogU3BlY01vZGVsLk1FRElVTSxcbiAgICB0aXA6ICdhbGJfc3BlY19tZWRpdW1fdGlwcycsXG4gIH0sXG4gIHtcbiAgICBtb2RlbDogU3BlY01vZGVsLkxBUkdFLFxuICAgIHRpcDogJ2FsYl9zcGVjX2xhcmdlX3RpcHMnLFxuICB9LFxuICB7XG4gICAgbW9kZWw6IFNwZWNNb2RlbC5DVVNUT01JWkUsXG4gICAgdGlwOiAnc3VpdGFibGVfZm9yX3Byb2Zlc3Npb25hbF91c2VycycsXG4gIH0sXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYWxiLXNwZWMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBDb2VyY2VOdW1iZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkQmFsYW5jZXJTcGVjRm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VSZXNvdXJjZUZvcm1Hcm91cENvbXBvbmVudDxBbGJSZXNvdXJjZUxpbWl0TW9kZWw+IHtcbiAgU3BlY01vZGVsID0gU3BlY01vZGVsO1xuICBTUEVDX01PREVMX1RJUFMgPSBTUEVDX01PREVMX1RJUFM7XG4gIFBPU0lUSVZFX0lOVF9QQVRURVJOID0gUE9TSVRJVkVfSU5UX1BBVFRFUk47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICBjb25zdCB7IGNwdSwgbWVtb3J5IH0gPSBSRVNPVVJDRV9MSU1JVF9NQVBQRVJbU3BlY01vZGVsLlNNQUxMXTtcbiAgICBjb25zdCByZXNvdXJjZUxpbWl0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY3B1OiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgdmFsdWU6IHRoaXMuZmIuY29udHJvbChjcHUudmFsdWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIHVuaXQ6IHRoaXMuZmIuY29udHJvbChjcHUudW5pdCksXG4gICAgICB9KSxcbiAgICAgIG1lbW9yeTogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIHZhbHVlOiB0aGlzLmZiLmNvbnRyb2wobWVtb3J5LnZhbHVlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICB1bml0OiB0aGlzLmZiLmNvbnRyb2wobWVtb3J5LnVuaXQpLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VNb2RlbD8uc3BlY01vZGVsICE9PSBTcGVjTW9kZWwuQ1VTVE9NSVpFKSB7XG4gICAgICByZXNvdXJjZUxpbWl0Rm9ybS5kaXNhYmxlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNwZWNNb2RlbDogdGhpcy5mYi5jb250cm9sKFNwZWNNb2RlbC5TTUFMTCksXG4gICAgICByZXNvdXJjZUxpbWl0OiByZXNvdXJjZUxpbWl0Rm9ybSxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldERlZmF1bHRGb3JtTW9kZWwoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNwZWNNb2RlbDogU3BlY01vZGVsLlNNQUxMLFxuICAgICAgcmVzb3VyY2VMaW1pdDogUkVTT1VSQ0VfTElNSVRfTUFQUEVSW1NwZWNNb2RlbC5TTUFMTF0sXG4gICAgfTtcbiAgfVxuXG4gIG9uU3BlY01vZGVsQ2hhbmdlKHNwZWNNb2RlbDogU3BlY01vZGVsKSB7XG4gICAgY29uc3QgcmVzb3VyY2VMaW1pdCA9IFJFU09VUkNFX0xJTUlUX01BUFBFUltzcGVjTW9kZWxdO1xuICAgIGNvbnN0IHJlc291cmNlTGltaXRGb3JtID0gdGhpcy5mb3JtLmdldCgncmVzb3VyY2VMaW1pdCcpO1xuXG4gICAgaWYgKCFyZXNvdXJjZUxpbWl0KSB7XG4gICAgICByZXNvdXJjZUxpbWl0Rm9ybS5lbmFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXNvdXJjZUxpbWl0Rm9ybS5wYXRjaFZhbHVlKHJlc291cmNlTGltaXQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICByZXNvdXJjZUxpbWl0Rm9ybS5kaXNhYmxlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxhdWktZm9ybS1pdGVtIGNsYXNzPVwic3BlYy1tb2RlbFwiPlxuICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICduZXR3b3JrLnNwZWNpZmljYXRpb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXJhZGlvLWdyb3VwXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNwZWNNb2RlbFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNwZWNNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgPlxuICAgICAgPGF1aS1yYWRpby1idXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHNwZWNNb2RlbCBvZiBTUEVDX01PREVMX1RJUFNcIlxuICAgICAgICBbdmFsdWVdPVwic3BlY01vZGVsLm1vZGVsXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwZWMtbW9kZWxfX2xhYmVsXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7ICduZXR3b3JrLicgKyBzcGVjTW9kZWwubW9kZWwgKyAnX3NjYWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtaGVscFwiPlxuICAgICAgICAgICAgICB7eyAnbmV0d29yay4nICsgc3BlY01vZGVsLnRpcCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hdWktcmFkaW8tYnV0dG9uPlxuICAgIDwvYXVpLXJhZGlvLWdyb3VwPlxuICAgIDxhdWktaWNvblxuICAgICAgYXVpRm9ybUl0ZW1BZGRvblxuICAgICAgW2F1aVRvb2x0aXBdPVwic3BlY01vZGVsVGlwc1wiXG4gICAgICBpY29uPVwicXVlc3Rpb25fY2lyY2xlXCJcbiAgICAgIGNsYXNzPVwiaWNvbi0taGVscFwiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPG5nLXRlbXBsYXRlICNzcGVjTW9kZWxUaXBzPlxuICAgICAgPHVsIGNsYXNzPVwiZC1saXN0XCI+XG4gICAgICAgIDxsaT57eyAnbmV0d29yay5hbGJfc3BlY19tb2RlbF90aXBzX3NtYWxsJyB8IHRyYW5zbGF0ZSB9fTwvbGk+XG4gICAgICAgIDxsaT57eyAnbmV0d29yay5hbGJfc3BlY19tb2RlbF90aXBzX21lZGl1bScgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgICA8bGk+e3sgJ25ldHdvcmsuYWxiX3NwZWNfbW9kZWxfdGlwc19sYXJnZScgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgICA8bGk+e3sgJ25ldHdvcmsuYWxiX3NwZWNfbW9kZWxfdGlwc19jdXN0b20nIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktZm9ybS1pdGVtPlxuICA8YXVpLWZvcm0taXRlbSB3aWR0aD1cImxhcmdlXCI+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ25ldHdvcmsucmVzb3VyY2VfbGltaXQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8ZGl2XG4gICAgICBmb3JtR3JvdXBOYW1lPVwicmVzb3VyY2VMaW1pdFwiXG4gICAgICBjbGFzcz1cImQtZmxleCBmbGV4LTEgYXVpLWZvcm0taXRlbV9fY29udHJvbFwiXG4gICAgPlxuICAgICAgPGF1aS1mb3JtLWl0ZW0gY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgPGF1aS1pbnB1dC1ncm91cFxuICAgICAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgICAgIGZvcm1Hcm91cE5hbWU9XCJjcHVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gYXVpSW5wdXRBZGRvbkJlZm9yZT5DUFU8L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGFjbENvZXJjZU51bWJlclxuICAgICAgICAgICAgW3BhdHRlcm5dPVwiUE9TSVRJVkVfSU5UX1BBVFRFUk4ucGF0dGVyblwiXG4gICAgICAgICAgICBbYWNsRXJyb3JzTWFwcGVyXT1cIntcbiAgICAgICAgICAgICAgcGF0dGVybjogUE9TSVRJVkVfSU5UX1BBVFRFUk4udGlwIHwgdHJhbnNsYXRlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbYWNsRXJyb3JzTWFwcGVyT3V0bGV0XT1cImNwdUVycm9yXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxhdWktc2VsZWN0XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBmb3JtLmdldCgnc3BlY01vZGVsJykudmFsdWUgPT09IFNwZWNNb2RlbC5DVVNUT01JWkU7XG4gICAgICAgICAgICAgIGVsc2UgY1VuaXRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cInZtLXNwZWMtZm9ybV9fY3B1LXVuaXRcIlxuICAgICAgICAgICAgYXVpSW5wdXRBZGRvbkFmdGVyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1bml0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXVpLW9wdGlvbiB2YWx1ZT1cIm1cIj5tPC9hdWktb3B0aW9uPlxuICAgICAgICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgICAgICAgdmFsdWU9XCJjb3JlXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb3JlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdjb3JlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9hdWktb3B0aW9uPlxuICAgICAgICAgIDwvYXVpLXNlbGVjdD5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NVbml0PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtLmdldCgncmVzb3VyY2VMaW1pdC5jcHUudW5pdCcpLnZhbHVlIGFzIGNwdVVuaXRcIlxuICAgICAgICAgICAgICBhdWlJbnB1dEFkZG9uQWZ0ZXJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgY3B1VW5pdCA9PT0gJ2NvcmUnID8gKCdjb3JlJyB8IHRyYW5zbGF0ZSkgOiBjcHVVbml0IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9hdWktaW5wdXQtZ3JvdXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgICAgI2NwdUVycm9yXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvYXVpLWZvcm0taXRlbT5cbiAgICAgIDxhdWktZm9ybS1pdGVtIGNsYXNzPVwiZmxleC0xIG1sLThcIj5cbiAgICAgICAgPGF1aS1pbnB1dC1ncm91cFxuICAgICAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgICAgIGZvcm1Hcm91cE5hbWU9XCJtZW1vcnlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gYXVpSW5wdXRBZGRvbkJlZm9yZT57eyAnbWVtb3J5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGF1aS1pbnB1dFxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgYWNsQ29lcmNlTnVtYmVyXG4gICAgICAgICAgICBbcGF0dGVybl09XCJQT1NJVElWRV9JTlRfUEFUVEVSTi5wYXR0ZXJuXCJcbiAgICAgICAgICAgIFthY2xFcnJvcnNNYXBwZXJdPVwie1xuICAgICAgICAgICAgICBwYXR0ZXJuOiBQT1NJVElWRV9JTlRfUEFUVEVSTi50aXAgfCB0cmFuc2xhdGUsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFthY2xFcnJvcnNNYXBwZXJPdXRsZXRdPVwibWVtb3J5RXJyb3JcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGF1aS1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZvcm0uZ2V0KCdzcGVjTW9kZWwnKS52YWx1ZSA9PT0gU3BlY01vZGVsLkNVU1RPTUlaRTtcbiAgICAgICAgICAgICAgZWxzZSBtVW5pdFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGF1aUlucHV0QWRkb25BZnRlclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidW5pdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF1aS1vcHRpb24gdmFsdWU9XCJNaVwiPk1pPC9hdWktb3B0aW9uPlxuICAgICAgICAgICAgPGF1aS1vcHRpb24gdmFsdWU9XCJHaVwiPkdpPC9hdWktb3B0aW9uPlxuICAgICAgICAgIDwvYXVpLXNlbGVjdD5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI21Vbml0PlxuICAgICAgICAgICAgPHNwYW4gYXVpSW5wdXRBZGRvbkFmdGVyPlxuICAgICAgICAgICAgICB7eyBmb3JtLmdldCgncmVzb3VyY2VMaW1pdC5tZW1vcnkudW5pdCcpLnZhbHVlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9hdWktaW5wdXQtZ3JvdXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgICAgI21lbW9yeUVycm9yXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvYXVpLWZvcm0taXRlbT5cbiAgICA8L2Rpdj5cbiAgPC9hdWktZm9ybS1pdGVtPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -657,7 +657,7 @@ export class ServiceAnnotationsFormComponent extends BaseStringMapFormComponent
|
|
|
657
657
|
ERRORS_MAPPER_MODULE,
|
|
658
658
|
HelpDocumentModule,
|
|
659
659
|
PurePipe,
|
|
660
|
-
], template: "<acl-array-form-table\n [formGroup]=\"$any(form)\"\n [rows]=\"form.controls\"\n (add)=\"form.push(createNewControl())\"\n (remove)=\"remove($event)\"\n [resourceName]=\"resourceName\"\n>\n <ng-container *aclArrayFormTableHeader>\n <th class=\"column\">{{ 'key' | translate }}</th>\n <th class=\"column\">{{ 'value' | translate }}</th>\n </ng-container>\n\n <ng-container\n *aclArrayFormTableRow=\"let control; let index = index\"\n [formGroupName]=\"index\"\n >\n <ng-container\n *ngIf=\"{\n config: KNOWN_ANNOTATIONS[clusterType],\n readonly: isLabelReadonly(control)
|
|
660
|
+
], template: "<acl-array-form-table\n [formGroup]=\"$any(form)\"\n [rows]=\"form.controls\"\n (add)=\"form.push(createNewControl())\"\n (remove)=\"remove($event)\"\n [resourceName]=\"resourceName\"\n>\n <ng-container *aclArrayFormTableHeader>\n <th class=\"column\">{{ 'key' | translate }}</th>\n <th class=\"column\">{{ 'value' | translate }}</th>\n </ng-container>\n\n <ng-container\n *aclArrayFormTableRow=\"let control; let index = index\"\n [formGroupName]=\"index\"\n >\n <ng-container\n *ngIf=\"{\n config: KNOWN_ANNOTATIONS[clusterType],\n readonly: isLabelReadonly(control),\n } as _\"\n >\n <td class=\"column\">\n <input\n aui-input\n [readonly]=\"_.readonly\"\n (blur)=\"onBlur()\"\n formControlName=\"0\"\n [auiAutocomplete]=\"keySuggestion\"\n (auiAutocompleteSelected)=\"onKeySelected(control)\"\n />\n <aui-autocomplete #keySuggestion>\n <aui-suggestion\n *ngFor=\"\n let option of _.readonly\n ? null\n : filterOptions(_.config?.options, index)\n \"\n [value]=\"option.key\"\n >\n {{ option.key }}\n <div\n *ngIf=\"option.tip | translate as tip\"\n class=\"tw-text-help-text tw-text-s\"\n >\n {{ tip }}\n </div>\n </aui-suggestion>\n </aui-autocomplete>\n <ng-container\n *ngIf=\"\n (\n _.config?.options\n | pure: getActiveConfigOption : control.get('0').value\n )?.doc as doc\n \"\n >\n <div\n *ngIf=\"baseHref | pure: showDocLink : doc.product\"\n class=\"tw-text-help-text tw-text-s tw-mt-4\"\n >\n <ng-container *ngIf=\"doc.tipPrefix\">\n {{ doc.tipPrefix | translate }}\n </ng-container>\n <a\n [aclDocs]=\"{\n path: doc.path,\n rawUrl: doc.rawUrl,\n type: 'page',\n }\"\n >\n {{ doc.tip | translate }}\n <aui-icon icon=\"jump\"></aui-icon>\n </a>\n </div>\n </ng-container>\n </td>\n <td class=\"column\">\n <input\n aui-input\n [readonly]=\"_.readonly\"\n (blur)=\"onBlur()\"\n formControlName=\"1\"\n [auiAutocomplete]=\"valueSuggestion\"\n />\n <aui-autocomplete #valueSuggestion>\n <aui-suggestion\n *ngFor=\"\n let option of _.readonly\n ? null\n : (\n _.config?.options\n | pure: getConfigOption : control.get('0').value\n )?.values\n \"\n [value]=\"option.value\"\n >\n {{ option.value }}\n <div\n *ngIf=\"option.tip | translate as tip\"\n class=\"tw-text-help-text tw-text-s\"\n >\n {{ tip }}\n </div>\n </aui-suggestion>\n </aui-autocomplete>\n <div\n *ngIf=\"\n (\n _.config?.options\n | pure: getActiveConfigOption : control.get('0').value\n )?.value as valueConfig\n \"\n class=\"tw-text-help-text tw-text-s\"\n >\n <div\n *ngIf=\"control.get('1').value === valueConfig.example\"\n class=\"tw-text-yellow tw-mt-4\"\n >\n {{ 'network.read_filling_instructions_tip' | translate }}\n </div>\n <div class=\"tw-break-all tw-my-4\">\n {{ valueConfig.tip | translate: { example: valueConfig.example } }}\n <aui-icon\n class=\"tw-text-primary tw-cursor-pointer\"\n icon=\"arrow_turn_up\"\n (click)=\"control.get('1').setValue(valueConfig.example)\"\n ></aui-icon>\n </div>\n <a\n [href]=\"valueConfig.docLink\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {{ 'network.filling_instructions' | translate }}\n <aui-icon icon=\"jump\"></aui-icon>\n </a>\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *aclArrayFormTableRowError=\"let control\">\n <td\n *ngIf=\"control.invalid\"\n colspan=\"3\"\n class=\"acl-table-form-error-hint\"\n >\n <ng-container *ngIf=\"control.errors?.keyIsMissing\">\n {{ 'k8s_resource_label_key_required' | translate }}\n </ng-container>\n\n <ng-container *ngIf=\"control.errors?.duplicateError\">\n {{ 'k8s_resource_label_key_duplicated' | translate }}\n </ng-container>\n\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"control.get('0').errors\"\n [errorsMapper]=\"(annotationsErrorsMapper | async).key\"\n ></acl-errors-mapper>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"control.get('1').errors\"\n ></acl-errors-mapper>\n </td>\n </ng-container>\n\n <ng-container *aclArrayFormTableRowControl=\"let item; let index = index\">\n <button\n aui-button=\"text\"\n type=\"button\"\n [square]=\"true\"\n [plain]=\"true\"\n [disabled]=\"isLabelReadonly(item)\"\n (click)=\"remove(index)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n </button>\n </ng-container>\n</acl-array-form-table>\n\n<ng-content></ng-content>\n\n<div\n *ngIf=\"KNOWN_ANNOTATIONS[clusterType] as config\"\n class=\"tw-text-help-text tw-text-s tw-mt-4\"\n>\n <ng-container [aclTranslate]=\"'documentation_for_lb_service_annotations'\">\n <ng-container *aclTranslateText=\"let text\">{{ text }}</ng-container>\n <ng-container *aclTranslateMatch=\"'type'\">{{ config.label }}</ng-container>\n <a\n *aclTranslateMatch=\"'documentation'\"\n [href]=\"config.docLink\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {{ 'documentation' | translate }}\n <aui-icon icon=\"jump\"></aui-icon> </a\n ></ng-container>\n</div>\n", styles: [":host{flex:1}.column{width:50%;vertical-align:top}\n"] }]
|
|
661
661
|
}], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
662
662
|
type: Inject,
|
|
663
663
|
args: [TOKEN_BASE_DOMAIN]
|
|
@@ -672,4 +672,4 @@ export class ServiceAnnotationsFormComponent extends BaseStringMapFormComponent
|
|
|
672
672
|
args: [{ required: true }]
|
|
673
673
|
}] }); })();
|
|
674
674
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ServiceAnnotationsFormComponent, { className: "ServiceAnnotationsFormComponent", filePath: "lib/components/service-annotations-form/annotations.component.ts", lineNumber: 343 }); })();
|
|
675
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zZXJ2aWNlLWFubm90YXRpb25zLWZvcm0vYW5ub3RhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zZXJ2aWNlLWFubm90YXRpb25zLWZvcm0vYW5ub3RhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsR0FDWixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixpQ0FBaUMsRUFDakMsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFFMUIsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxrQkFBa0IsRUFDbEIsUUFBUSxFQUVSLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsSUFBSSxFQUVKLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsb0NBQW9DLEVBQ3BDLGlDQUFpQyxHQUNsQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEVBQUUsV0FBVyxFQUFF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QUFVO29CQUNWLFdBQVc7b0JBQ1gsdUJBQXVCO29CQUN2Qiw2QkFBNkI7b0JBQzdCLDBCQUEwQjtvQkFDMUIsaUNBQWlDO29CQUNqQywrQkFBK0I7b0JBQy9CLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixrQkFBa0I7b0JBQ2xCLFFBQVE7aUJBQ1Q7O3NCQTJCRSxNQUFNO3VCQUFDLGlCQUFpQjtxQkF2QjNCLFFBQVE7a0JBRFAsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsV0FBVztrQkFEVixLQUFLO21CQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUl6QixZQUFZO2tCQURYLEtBQUs7bUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFOztrRkFQZCwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRvY29tcGxldGVNb2R1bGUsXG4gIEJ1dHRvbk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQXJyYXlGb3JtVGFibGVDb21wb25lbnQsXG4gIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLFxuICBCYXNlU3RyaW5nTWFwRm9ybUNvbXBvbmVudCxcbiAgS2V5VmFsdWVUdXBsZSxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gIEZBTFNFLFxuICBIZWxwRG9jdW1lbnRNb2R1bGUsXG4gIFB1cmVQaXBlLFxuICBTdHJpbmdNYXAsXG4gIFRPS0VOX0JBU0VfRE9NQUlOLFxuICBUT0tFTl9CQVNFX0hSRUYsXG4gIFRSVUUsXG4gIFRyYW5zbGF0ZUtleSxcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgZ2V0SzhzUmVzb3VyY2VBbm5vdGF0aW9uRXJyb3JNYXBwZXIkLFxuICBrOHNSZXNvdXJjZUFubm90YXRpb25LZXlWYWxpZGF0b3IsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBDbHVzdGVyVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NsdXN0ZXItZXhwb3J0cyc7XG5cbmVudW0gUFJPRFVDVF9CQVNFX0hSRUZfTUFQIHtcbiAgZGV2b3BzID0gJy9jb25zb2xlLWRldm9wcy8nLFxuICBhY3AgPSAnL2NvbnNvbGUtYWNwLycsXG4gIGFzbSA9ICcvY29uc29sZS1hc20vJyxcbiAgZGF0YXNlcnZpY2VzID0gJy9jb25zb2xlLWRhdGFzZXJ2aWNlcy8nLFxuICBjZWMgPSAnL2NvbnNvbGUtY2VjLycsXG4gIHBsYXRmb3JtID0gJy9jb25zb2xlLXBsYXRmb3JtLycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5ub3RhdGlvbkNvbmZpZ09wdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICB0aXA6IFRyYW5zbGF0ZUtleTtcbiAgZG9jPzoge1xuICAgIHRpcDogVHJhbnNsYXRlS2V5O1xuICAgIHRpcFByZWZpeD86IFRyYW5zbGF0ZUtleTtcbiAgICBwYXRoPzogc3RyaW5nOyAvLyDmoIflh4bmlofmoaPpk77mjqUsIOWvueW6lCBEb2NzT3B0aW9uLnBhdGhcbiAgICByYXdVcmw/OiBzdHJpbmc7IC8vIOmdnuagh+WHhuaWh+aho+mTvuaOpSwg5a+55bqUIERvY3NPcHRpb24ucmF3VXJsXG4gICAgcHJvZHVjdD86IGtleW9mIHR5cGVvZiBQUk9EVUNUX0JBU0VfSFJFRl9NQVA7XG4gIH07XG4gIHZhbHVlPzoge1xuICAgIGV4YW1wbGU6IHN0cmluZztcbiAgICB0aXA6IFRyYW5zbGF0ZUtleTtcbiAgICBkb2NMaW5rOiBzdHJpbmc7XG4gIH07XG4gIHZhbHVlcz86IEFycmF5PHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHRpcD86IFRyYW5zbGF0ZUtleTtcbiAgfT47XG59XG5cbmV4cG9ydCBjb25zdCBLTk9XTl9BTk5PVEFUSU9OUzogUGFydGlhbDxcbiAgUmVjb3JkPFxuICAgIENsdXN0ZXJUeXBlLFxuICAgIHtcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkb2NMaW5rOiBzdHJpbmc7XG4gICAgICBvcHRpb25zOiBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uW107XG4gICAgfVxuICA+XG4+ID0ge1xuICBbQ2x1c3RlclR5cGUuQXp1cmVBS1NdOiB7XG4gICAgbGFiZWw6ICdBS1MnLFxuICAgIGRvY0xpbms6XG4gICAgICAnaHR0cHM6Ly9jbG91ZC1wcm92aWRlci1henVyZS5zaWdzLms4cy5pby90b3BpY3MvbG9hZGJhbGFuY2VyLyNsb2FkYmFsYW5jZXItYW5ub3RhdGlvbnMnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXp1cmUtbG9hZC1iYWxhbmNlci1pbnRlcm5hbCcsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgdXNlIG9mIGludHJhbmV0L3B1YmxpYyBuZXR3b3JrJyxcbiAgICAgICAgICB6aDogJ+aMh+WumuS9v+eUqOWGhee9kS/lhaznvZEnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogVFJVRSxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ0ludHJhbmV0JyxcbiAgICAgICAgICAgICAgemg6ICflhoXnvZEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiBGQUxTRSxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ1B1YmxpYyBuZXR3b3JrJyxcbiAgICAgICAgICAgICAgemg6ICflhaznvZEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBbQ2x1c3RlclR5cGUuQW1hem9uRUtTXToge1xuICAgIGxhYmVsOiAnRUtTJyxcbiAgICBkb2NMaW5rOlxuICAgICAgJ2h0dHBzOi8va3ViZXJuZXRlcy1zaWdzLmdpdGh1Yi5pby9hd3MtbG9hZC1iYWxhbmNlci1jb250cm9sbGVyL3YyLjUvZ3VpZGUvc2VydmljZS9hbm5vdGF0aW9ucy8nLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXdzLWxvYWQtYmFsYW5jZXItdHlwZScsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgTG9hZEJhbGFuY2VyIFNlcnZpY2UgQ29udHJvbGxlciBpbiB1c2UnLFxuICAgICAgICAgIHpoOiAn5oyH5a6a5omA5L2/55So55qEIExvYWRCYWxhbmNlciDnsbvlnovlhoXpg6jot6/nlLHmjqfliLblmagnLFxuICAgICAgICB9LFxuICAgICAgICBkb2M6IHtcbiAgICAgICAgICB0aXA6IHtcbiAgICAgICAgICAgIGVuOiAnQ29udHJvbGxlciBJbnN0YWxsYXRpb24nLFxuICAgICAgICAgICAgemg6ICfmjqfliLblmajlronoo4UnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvZHVjdDogJ3BsYXRmb3JtJyxcbiAgICAgICAgICBwYXRoOiAncGxhdGZvcm0tdXNlcm1hbnVhbC9jbHVzdGVyYWxsLzFjbHVzdGVyL2Nsb3VkaW5pdC9uZXR3b3JrMS9la3NpbmdyZXNzY29udHJvbGxlci8jMicsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXh0ZXJuYWwnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnVXNpbmcgdGhlIG9mZmljaWFsIEFXUyBMb2FkQmFsYW5jZXIgQ29udHJvbGxlcicsXG4gICAgICAgICAgICAgIHpoOiAn5L2/55SoIEFXUyDlrpjmlrnnmoQgQVdTIExvYWRCYWxhbmNlciBDb250cm9sbGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlcnZpY2UuYmV0YS5rdWJlcm5ldGVzLmlvL2F3cy1sb2FkLWJhbGFuY2VyLW5sYi10YXJnZXQtdHlwZScsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgd2F5IHRyYWZmaWMgaXMgZGVsaXZlcmVkIHRvIHRoZSBwb2RzJyxcbiAgICAgICAgICB6aDogJ+aMh+Wumua1gemHj+mAgei+vuWuueWZqOe7hOeahOaWueW8jycsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnaW5zdGFuY2UnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnVHJhZmZpYyB3aWxsIGJlIHNlbnQgdG8gdGhlIHBvZHMgdmlhIE5vZGVQb3J0JyxcbiAgICAgICAgICAgICAgemg6ICfmtYHph4/lsIbpgJrov4cgTm9kZVBvcnQg6YCB5b6A5a655Zmo57uEJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2lwJyxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ1RyYWZmaWMgaXMgZGlyZWN0bHkgcm91dGVkIHRvIHRoZSBwb2RzIChBbWF6b24gVlBDIENOSSBpcyByZXF1aXJlZCBmb3IgdGhlIGNsdXN0ZXIpJyxcbiAgICAgICAgICAgICAgemg6ICfmtYHph4/nm7TmjqXot6/nlLHliLDlrrnlmajnu4TvvIjpm4bnvqTpnIDkvb/nlKggQW1hem9uIFZQQyBDTknvvIknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXdzLWxvYWQtYmFsYW5jZXItc2NoZW1lJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSB1c2Ugb2YgaW50cmFuZXQvcHVibGljIG5ldHdvcmsnLFxuICAgICAgICAgIHpoOiAn5oyH5a6a5L2/55So5YaF572RL+WFrOe9kScsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnaW50ZXJuYWwnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnSW50cmFuZXQnLFxuICAgICAgICAgICAgICB6aDogJ+WGhee9kScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdpbnRlcm5ldC1mYWNpbmcnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnUHVibGljIG5ldHdvcmsnLFxuICAgICAgICAgICAgICB6aDogJ+WFrOe9kScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzZXJ2aWNlLmJldGEua3ViZXJuZXRlcy5pby9hd3MtbG9hZC1iYWxhbmNlci1pcC1hZGRyZXNzLXR5cGUnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1NwZWNpZnkgdGhlIHN1cHBvcnRlZCBJUCBwcm90b2NvbCBzdGFjaycsXG4gICAgICAgICAgemg6ICfmjIflrprmlK/mjIHnmoQgSVAg5Y2P6K6u5qCIJyxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdpcHY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZHVhbHN0YWNrJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBbQ2x1c3RlclR5cGUuSHVhd2VpQ2xvdWRDQ0VdOiB7XG4gICAgbGFiZWw6ICdDQ0UnLFxuICAgIGRvY0xpbms6XG4gICAgICAnaHR0cHM6Ly9zdXBwb3J0Lmh1YXdlaWNsb3VkLmNvbS9pbnRsL2VuLXVzL3VzZXJtYW51YWwtY2NlL2NjZV8xMF8wMzg1Lmh0bWwnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAna3ViZXJuZXRlcy5pby9lbGIuaWQnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1BsZWFzZSBwcm92aWRlIHRoZSBJRCBvZiB0aGUgY2xvdWQgTG9hZEJhbGFuY2VyLCBZb3Ugc2hvdWxkIHVzZSBhbiBleGlzdGluZyBjbG91ZCBMb2FkQmFsYW5jZXIuJyxcbiAgICAgICAgICB6aDogJ+Whq+WGmeS6keS4iui0n+i9veWdh+ihoeWZqOeahCBJRO+8jOmcgOS9v+eUqOW3suacieS6keS4iui0n+i9veWdh+ihoeWZqCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdrdWJlcm5ldGVzLmlvL2VsYi5hdXRvY3JlYXRlJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdDcmVhdGUgYSBuZXcgY2xvdWQgTG9hZEJhbGFuY2VyJyxcbiAgICAgICAgICB6aDogJ+aWsOWIm+W7uuS6keS4iui0n+i9veWdh+ihoeWZqCcsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgZXhhbXBsZTogYHtcInR5cGVcIjpcInB1YmxpY1wiLFwiYmFuZHdpZHRoX25hbWVcIjpcImNjZS1iYW5kd2lkdGgtMTU1MTE2MzM3OTYyN1wiLFwiYmFuZHdpZHRoX2NoYXJnZW1vZGVcIjpcImJhbmR3aWR0aFwiLFwiYmFuZHdpZHRoX3NpemVcIjo1LFwiYmFuZHdpZHRoX3NoYXJldHlwZVwiOlwiUEVSXCIsXCJlaXBfdHlwZVwiOlwiNV9iZ3BcIixcImF2YWlsYWJsZV96b25lXCI6W1wiY24tbm9ydGgtNGJcIl0sXCJsNF9mbGF2b3JfbmFtZVwiOlwiTDRfZmxhdm9yLmVsYi5zMS5zbWFsbFwifWAsXG4gICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICBlbjogJ0ZvciBleGFtcGxlOiB7eyBleGFtcGxlIH19JyxcbiAgICAgICAgICAgIHpoOiAn5L6L5aaC77yae3sgZXhhbXBsZSB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkb2NMaW5rOlxuICAgICAgICAgICAgJ2h0dHBzOi8vc3VwcG9ydC5odWF3ZWljbG91ZC5jb20vaW50bC9lbi11cy91c2VybWFudWFsLWNjZS9jY2VfMTBfMDM4NS5odG1sI3NlY3Rpb244JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2t1YmVybmV0ZXMuaW8vZWxiLnN1Ym5ldC1pZCcsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3VibmV0IElEIG9mIHRoZSBjbHVzdGVyLCB3aGljaCBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IGNsb3VkIExvYWRCYWxhbmNlciBhbmQgS3ViZXJuZXRlcyB2ZXJzaW9uIGlzIDEuMTEuNy1yMCBhbmQgYmVsb3cuJyxcbiAgICAgICAgICB6aDogJ+mbhue+pOaJgOWcqOWtkOe9keeahCBJRO+8jOW9kyBLdWJlcm5ldGVzIOeJiOacrOS4uiAxLjExLjctcjAg5Y+K5Lul5LiL77yM5paw5Yib5bu65LqR5LiK6LSf6L295Z2H6KGh5Zmo5pe25b+F6aG75aGr5YaZ5q2k6aG5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2t1YmVybmV0ZXMuaW8vZWxiLmNsYXNzJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSB0eXBlIG9mIHRoZSBuZXdseSBjcmVhdGVkIGNsb3VkIExvYWRCYWxhbmNlcicsXG4gICAgICAgICAgemg6ICfmjIflrprmlrDliJvlu7rnmoTkupHkuIrotJ/ovb3lnYfooaHlmajnmoTnsbvlnosnLFxuICAgICAgICB9LFxuICAgICAgICBkb2M6IHtcbiAgICAgICAgICB0aXA6IHtcbiAgICAgICAgICAgIGVuOiAnRGlmZmVyZW5jZXMgQmV0d2VlbiBEZWRpY2F0ZWQgYW5kIFNoYXJlZCBMb2FkIEJhbGFuY2VycycsXG4gICAgICAgICAgICB6aDogJ+WFseS6q+Wei+W8ueaAp+i0n+i9veWdh+ihoeS4jueLrOS6q+Wei+i0n+i9veWdh+ihoeeahOWKn+iDveWMuuWIqycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByYXdVcmw6XG4gICAgICAgICAgICAnaHR0cHM6Ly9zdXBwb3J0Lmh1YXdlaWNsb3VkLmNvbS9pbnRsL3poLWNuL3Byb2R1Y3RkZXNjLWVsYi9lbGJfcHJvXzAwMDQuaHRtbCcsXG4gICAgICAgICAgdGlwUHJlZml4OiB7XG4gICAgICAgICAgICBlbjogJ0ZvciBtb3JlIGRldGFpbHMsIHBsZWFzZSByZWZlciB0byAnLFxuICAgICAgICAgICAgemg6ICfor6bmg4Xor7flj4Lop4EnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAndW5pb24nLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnU2hhcmVkIExvYWRCYWxhbmNlcicsXG4gICAgICAgICAgICAgIHpoOiAn5YWx5Lqr5Z6L6LSf6L295Z2H6KGhJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ3BlcmZvcm1hbmNlJyxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ0RlZGljYXRlZCBMb2FkQmFsYW5jZXIsIHdoaWNoIGNhbiBiZSB1c2VkIG9ubHkgaW4gY2x1c3RlcnMgb2YgdjEuMTcgYW5kIGxhdGVyJyxcbiAgICAgICAgICAgICAgemg6ICfni6zkuqvlnovotJ/ovb3lnYfooaHvvIzku4XmlK/mjIHlnKggS3ViZXJuZXRlcyDniYjmnKzkuLogMS4xNyDlj4rku6XkuIrnmoTpm4bnvqTkuK3kvb/nlKgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAna3ViZXJuZXRlcy5pby9lbGIuZW50ZXJwcmlzZUlEJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSBlbnRlcnByaXNlIHByb2plY3QgdG8gd2hpY2ggdGhlIG5ld2x5IGNyZWF0ZWQgY2xvdWQgTG9hZEJhbGFuY2VyIHdpbGwgYmVsb25nJyxcbiAgICAgICAgICB6aDogJ+aMh+WumuaWsOWIm+W7uuS6keS4iui0n+i9veWdh+ihoeWZqOaJgOWxnueahOS8geS4mumhueebricsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIFtDbHVzdGVyVHlwZS5Hb29nbGVDbG91ZEdLRV06IHtcbiAgICBsYWJlbDogJ0dLRScsXG4gICAgZG9jTGluazpcbiAgICAgICdodHRwczovL2Nsb3VkLmdvb2dsZS5jb20va3ViZXJuZXRlcy1lbmdpbmUvZG9jcy9jb25jZXB0cy9zZXJ2aWNlLWxvYWQtYmFsYW5jZXItcGFyYW1ldGVycycsXG4gICAgb3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBrZXk6ICduZXR3b3JraW5nLmdrZS5pby9sb2FkLWJhbGFuY2VyLXR5cGUnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1NwZWNpZnkgdGhlIHVzZSBvZiBJbnRyYW5ldCcsXG4gICAgICAgICAgemg6ICfmjIflrprkvb/nlKjlhoXnvZEnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ0ludGVybmFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnY2xvdWQuZ29vZ2xlLmNvbS9sNC1yYnMnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1RoZSBkZWZhdWx0IGlzIHB1YmxpYyBuZXR3b3JrLCB3aGVuIHRoaXMgcGFyYW1ldGVyIGlzIGNvbmZpZ3VyZWQsIHRyYWZmaWMgd2lsbCBiZSByb3V0ZWQgZGlyZWN0bHkgdG8gdGhlIHBvZHMnLFxuICAgICAgICAgIHpoOiAn6buY6K6k5Li65YWs572R77yM6YWN572u5q2k5Y+C5pWw5pe277yM5rWB6YeP5bCG55u05o6l6Lev55Sx6Iez5a655Zmo57uEJyxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlbmFibGVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXNlcnZpY2UtYW5ub3RhdGlvbnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnYW5ub3RhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYW5ub3RhdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgTmdJZixcbiAgICBOZ0Zvck9mLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIEFycmF5Rm9ybVRhYmxlQ29tcG9uZW50LFxuICAgIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLFxuICAgIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLFxuICAgIEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSxcbiAgICBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gICAgSGVscERvY3VtZW50TW9kdWxlLFxuICAgIFB1cmVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQW5ub3RhdGlvbnNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBpc1VwZGF0ZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjbHVzdGVyVHlwZTogQ2x1c3RlclR5cGU7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJhc2VIcmVmID0gaW5qZWN0KFRPS0VOX0JBU0VfSFJFRik7XG5cbiAgLy8g56aB55So5o6J5YyF5ZCrIGNwYWFzLmlvIOWPiiBvdm4ua3ViZXJuZXRlcy5pbyDnmoQga2V5XG4gIHJlYWRvbmx5IHJlYWRvbmx5UGFydGlhbEtleXMgPSBbJ292bi5rdWJlcm5ldGVzLmlvJywgdGhpcy5iYXNlRG9tYWluXTtcblxuICBhbm5vdGF0aW9uc0Vycm9yc01hcHBlciA9IGdldEs4c1Jlc291cmNlQW5ub3RhdGlvbkVycm9yTWFwcGVyJChcbiAgICB0aGlzLnRyYW5zbGF0ZSxcbiAgKTtcblxuICBLTk9XTl9BTk5PVEFUSU9OUyA9IEtOT1dOX0FOTk9UQVRJT05TO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KFRPS0VOX0JBU0VfRE9NQUlOKSBwcml2YXRlIHJlYWRvbmx5IGJhc2VEb21haW46IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyhvcHRpb25zOiBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uW10gfCB1bmRlZmluZWQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBrZXlzID0gKHRoaXMuZm9ybS52YWx1ZSBhcyBLZXlWYWx1ZVR1cGxlW10pLm1hcCgoW2tleV0pID0+IGtleSk7XG4gICAgcmV0dXJuIG9wdGlvbnM/LmZpbHRlcihvID0+IHtcbiAgICAgIGNvbnN0IGtleUluZGV4ID0ga2V5cy5pbmRleE9mKG8ua2V5KTtcbiAgICAgIHJldHVybiBrZXlJbmRleCA9PT0gLTEgfHwga2V5SW5kZXggPT09IGluZGV4O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29uZmlnT3B0aW9uKG9wdGlvbnM6IEFubm90YXRpb25Db25maWdPcHRpb25bXSB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb3B0aW9ucz8uZmluZChvcHRpb24gPT4gb3B0aW9uLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIGlzUmVhZG9ubHkoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pc1VwZGF0ZSAmJiB0aGlzLnJlYWRvbmx5UGFydGlhbEtleXMuc29tZShrID0+IGtleS5pbmNsdWRlcyhrKSk7XG4gIH1cblxuICBvdmVycmlkZSBnZXREZWZhdWx0Rm9ybU1vZGVsKCk6IEtleVZhbHVlVHVwbGVbXSB7XG4gICAgcmV0dXJuIFtbJycsICcnXV07XG4gIH1cblxuICBvdmVycmlkZSBhZGFwdFJlc291cmNlTW9kZWwocmVzb3VyY2U6IFN0cmluZ01hcCkge1xuICAgIGxldCBuZXdGb3JtTW9kZWwgPSBPYmplY3QuZW50cmllcyhyZXNvdXJjZSB8fCB7fSk7XG4gICAgLy8g5o6S5bqP77yM5YWI5oyJ5a2X5q+N5o6S5bqP77yM5YaN5oqKIHJlYWRvbmx5IOeahOaUvuWJjemdolxuICAgIG5ld0Zvcm1Nb2RlbCA9IHNvcnRCeShuZXdGb3JtTW9kZWwsIChhcnI6IFtzdHJpbmcsIHN0cmluZ10pID0+IGFyclswXSk7XG4gICAgbmV3Rm9ybU1vZGVsLnNvcnQoKGFycjE6IFtzdHJpbmcsIHN0cmluZ10sIGFycjI6IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgIGNvbnN0IGZsYWcxID0gdGhpcy5pc1JlYWRvbmx5KGFycjFbMF0pO1xuICAgICAgY29uc3QgZmxhZzIgPSB0aGlzLmlzUmVhZG9ubHkoYXJyMlswXSk7XG4gICAgICBpZiAoKGZsYWcxICYmIGZsYWcyKSB8fCAoIWZsYWcxICYmICFmbGFnMikpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmxhZzEgPyAtMSA6IDE7XG4gICAgfSk7XG5cbiAgICBpZiAobmV3Rm9ybU1vZGVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbmV3Rm9ybU1vZGVsID0gdGhpcy5nZXREZWZhdWx0Rm9ybU1vZGVsKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0Zvcm1Nb2RlbDtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldEtleVZhbGlkYXRvcnMoKSB7XG4gICAgcmV0dXJuIGs4c1Jlc291cmNlQW5ub3RhdGlvbktleVZhbGlkYXRvcjtcbiAgfVxuXG4gIGlzTGFiZWxSZWFkb25seShjb250cm9sOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8c3RyaW5nPj4pIHtcbiAgICByZXR1cm4gY29udHJvbC52YWxpZCAmJiB0aGlzLmlzUmVhZG9ubHkoY29udHJvbC5nZXQoJzAnKS52YWx1ZSk7XG4gIH1cblxuICBnZXRBY3RpdmVDb25maWdPcHRpb24oXG4gICAgb3B0aW9uczogQW5ub3RhdGlvbkNvbmZpZ09wdGlvbltdIHwgdW5kZWZpbmVkLFxuICAgIGtleTogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gb3B0aW9ucz8uZmluZChvID0+IG8ua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgb25LZXlTZWxlY3RlZChjb250cm9sOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8c3RyaW5nPj4pIHtcbiAgICBjb25zdCBrZXlDdHJsID0gY29udHJvbC5nZXQoJzAnKTtcbiAgICBrZXlDdHJsLm1hcmtBc0RpcnR5KCk7XG4gICAga2V5Q3RybC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICAvLyBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uLmRvYyDphY3nva7kuobkuqflk4Eg77yIcHJvZHVjdO+8ieWxnuaAp+S5i+WQjumcgOimgeW9k+WJjeinhuWbvumatuWxnuS6juivpeS6p+WTgeaXtuaJjeWxleekuiBkb2Mg6ZO+5o6l77yM5pyq6YWN572u55qE6K+d5LiN5Y+X6ZmQ5Yi2XG4gIHNob3dEb2NMaW5rKGJhc2VIcmVmOiBzdHJpbmcsIHByb2R1Y3Q/OiBrZXlvZiB0eXBlb2YgUFJPRFVDVF9CQVNFX0hSRUZfTUFQKSB7XG4gICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gUFJPRFVDVF9CQVNFX0hSRUZfTUFQW3Byb2R1Y3RdID09PSBiYXNlSHJlZjtcbiAgfVxufVxuIiwiPGFjbC1hcnJheS1mb3JtLXRhYmxlXG4gIFtmb3JtR3JvdXBdPVwiJGFueShmb3JtKVwiXG4gIFtyb3dzXT1cImZvcm0uY29udHJvbHNcIlxuICAoYWRkKT1cImZvcm0ucHVzaChjcmVhdGVOZXdDb250cm9sKCkpXCJcbiAgKHJlbW92ZSk9XCJyZW1vdmUoJGV2ZW50KVwiXG4gIFtyZXNvdXJjZU5hbWVdPVwicmVzb3VyY2VOYW1lXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVIZWFkZXI+XG4gICAgPHRoIGNsYXNzPVwiY29sdW1uXCI+e3sgJ2tleScgfCB0cmFuc2xhdGUgfX08L3RoPlxuICAgIDx0aCBjbGFzcz1cImNvbHVtblwiPnt7ICd2YWx1ZScgfCB0cmFuc2xhdGUgfX08L3RoPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyXG4gICAgKmFjbEFycmF5Rm9ybVRhYmxlUm93PVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICBbZm9ybUdyb3VwTmFtZV09XCJpbmRleFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIntcbiAgICAgICAgY29uZmlnOiBLTk9XTl9BTk5PVEFUSU9OU1tjbHVzdGVyVHlwZV0sXG4gICAgICAgIHJlYWRvbmx5OiBpc0xhYmVsUmVhZG9ubHkoY29udHJvbClcbiAgICAgIH0gYXMgX1wiXG4gICAgPlxuICAgICAgPHRkIGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGF1aS1pbnB1dFxuICAgICAgICAgIFtyZWFkb25seV09XCJfLnJlYWRvbmx5XCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiMFwiXG4gICAgICAgICAgW2F1aUF1dG9jb21wbGV0ZV09XCJrZXlTdWdnZXN0aW9uXCJcbiAgICAgICAgICAoYXVpQXV0b2NvbXBsZXRlU2VsZWN0ZWQpPVwib25LZXlTZWxlY3RlZChjb250cm9sKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhdWktYXV0b2NvbXBsZXRlICNrZXlTdWdnZXN0aW9uPlxuICAgICAgICAgIDxhdWktc3VnZ2VzdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBvcHRpb24gb2YgXy5yZWFkb25seVxuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogZmlsdGVyT3B0aW9ucyhfLmNvbmZpZz8ub3B0aW9ucywgaW5kZXgpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi5rZXlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5rZXkgfX1cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24udGlwIHwgdHJhbnNsYXRlIGFzIHRpcFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctdGV4dC1zXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgdGlwIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2F1aS1zdWdnZXN0aW9uPlxuICAgICAgICA8L2F1aS1hdXRvY29tcGxldGU+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBfLmNvbmZpZz8ub3B0aW9uc1xuICAgICAgICAgICAgICB8IHB1cmU6IGdldEFjdGl2ZUNvbmZpZ09wdGlvbjpjb250cm9sLmdldCgnMCcpLnZhbHVlXG4gICAgICAgICAgICApPy5kb2MgYXMgZG9jXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiYmFzZUhyZWYgfCBwdXJlOiBzaG93RG9jTGluazpkb2MucHJvZHVjdFwiXG4gICAgICAgICAgICBjbGFzcz1cInR3LXRleHQtaGVscC10ZXh0IHR3LXRleHQtcyB0dy1tdC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG9jLnRpcFByZWZpeFwiPlxuICAgICAgICAgICAgICB7eyBkb2MudGlwUHJlZml4IHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFthY2xEb2NzXT1cIntcbiAgICAgICAgICAgICAgICBwYXRoOiBkb2MucGF0aCxcbiAgICAgICAgICAgICAgICByYXdVcmw6IGRvYy5yYXdVcmwsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3BhZ2UnLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgZG9jLnRpcCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cImp1bXBcIj48L2F1aS1pY29uPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgYXVpLWlucHV0XG4gICAgICAgICAgW3JlYWRvbmx5XT1cIl8ucmVhZG9ubHlcIlxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCIxXCJcbiAgICAgICAgICBbYXVpQXV0b2NvbXBsZXRlXT1cInZhbHVlU3VnZ2VzdGlvblwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhdWktYXV0b2NvbXBsZXRlICN2YWx1ZVN1Z2dlc3Rpb24+XG4gICAgICAgICAgPGF1aS1zdWdnZXN0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG9wdGlvbiBvZiBfLnJlYWRvbmx5XG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgICAgIF8uY29uZmlnPy5vcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIHwgcHVyZTogZ2V0Q29uZmlnT3B0aW9uOmNvbnRyb2wuZ2V0KCcwJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICk/LnZhbHVlc1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG9wdGlvbi52YWx1ZSB9fVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi50aXAgfCB0cmFuc2xhdGUgYXMgdGlwXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LWhlbHAtdGV4dCB0dy10ZXh0LXNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0aXAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXVpLXN1Z2dlc3Rpb24+XG4gICAgICAgIDwvYXVpLWF1dG9jb21wbGV0ZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgIF8uY29uZmlnPy5vcHRpb25zXG4gICAgICAgICAgICAgIHwgcHVyZTogZ2V0QWN0aXZlQ29uZmlnT3B0aW9uOmNvbnRyb2wuZ2V0KCcwJykudmFsdWVcbiAgICAgICAgICAgICk/LnZhbHVlIGFzIHZhbHVlQ29uZmlnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cInR3LXRleHQtaGVscC10ZXh0IHR3LXRleHQtc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbnRyb2wuZ2V0KCcxJykudmFsdWUgPT09IHZhbHVlQ29uZmlnLmV4YW1wbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LXllbGxvdyB0dy1tdC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnbmV0d29yay5yZWFkX2ZpbGxpbmdfaW5zdHJ1Y3Rpb25zX3RpcCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctYnJlYWstYWxsIHR3LW15LTRcIj5cbiAgICAgICAgICAgIHt7IHZhbHVlQ29uZmlnLnRpcCB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiB2YWx1ZUNvbmZpZy5leGFtcGxlIH0gfX1cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInR3LXRleHQtcHJpbWFyeSB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIGljb249XCJhcnJvd190dXJuX3VwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRyb2wuZ2V0KCcxJykuc2V0VmFsdWUodmFsdWVDb25maWcuZXhhbXBsZSlcIlxuICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtocmVmXT1cInZhbHVlQ29uZmlnLmRvY0xpbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICduZXR3b3JrLmZpbGxpbmdfaW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPGF1aS1pY29uIGljb249XCJqdW1wXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dFcnJvcj1cImxldCBjb250cm9sXCI+XG4gICAgPHRkXG4gICAgICAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiXG4gICAgICBjb2xzcGFuPVwiM1wiXG4gICAgICBjbGFzcz1cImFjbC10YWJsZS1mb3JtLWVycm9yLWhpbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmVycm9ycz8ua2V5SXNNaXNzaW5nXCI+XG4gICAgICAgIHt7ICdrOHNfcmVzb3VyY2VfbGFiZWxfa2V5X3JlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmVycm9ycz8uZHVwbGljYXRlRXJyb3JcIj5cbiAgICAgICAge3sgJ2s4c19yZXNvdXJjZV9sYWJlbF9rZXlfZHVwbGljYXRlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICAgICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgICAgICBbZXJyb3JzXT1cImNvbnRyb2wuZ2V0KCcwJykuZXJyb3JzXCJcbiAgICAgICAgW2Vycm9yc01hcHBlcl09XCIoYW5ub3RhdGlvbnNFcnJvcnNNYXBwZXIgfCBhc3luYykua2V5XCJcbiAgICAgID48L2FjbC1lcnJvcnMtbWFwcGVyPlxuICAgICAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICAgICAgW2Vycm9yc109XCJjb250cm9sLmdldCgnMScpLmVycm9yc1wiXG4gICAgICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICphY2xBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2w9XCJsZXQgaXRlbTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNMYWJlbFJlYWRvbmx5KGl0ZW0pXCJcbiAgICAgIChjbGljayk9XCJyZW1vdmUoaW5kZXgpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtYXJyYXktZm9ybS10YWJsZT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2XG4gICpuZ0lmPVwiS05PV05fQU5OT1RBVElPTlNbY2x1c3RlclR5cGVdIGFzIGNvbmZpZ1wiXG4gIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctdGV4dC1zIHR3LW10LTRcIlxuPlxuICA8bmctY29udGFpbmVyIFthY2xUcmFuc2xhdGVdPVwiJ2RvY3VtZW50YXRpb25fZm9yX2xiX3NlcnZpY2VfYW5ub3RhdGlvbnMnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYWNsVHJhbnNsYXRlVGV4dD1cImxldCB0ZXh0XCI+e3sgdGV4dCB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmFjbFRyYW5zbGF0ZU1hdGNoPVwiJ3R5cGUnXCI+e3sgY29uZmlnLmxhYmVsIH19PC9uZy1jb250YWluZXI+XG4gICAgPGFcbiAgICAgICphY2xUcmFuc2xhdGVNYXRjaD1cIidkb2N1bWVudGF0aW9uJ1wiXG4gICAgICBbaHJlZl09XCJjb25maWcuZG9jTGlua1wiXG4gICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgPlxuICAgICAge3sgJ2RvY3VtZW50YXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8YXVpLWljb24gaWNvbj1cImp1bXBcIj48L2F1aS1pY29uPiA8L2FcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
675
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zZXJ2aWNlLWFubm90YXRpb25zLWZvcm0vYW5ub3RhdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9zZXJ2aWNlLWFubm90YXRpb25zLWZvcm0vYW5ub3RhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsR0FDWixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixpQ0FBaUMsRUFDakMsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFFMUIsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxrQkFBa0IsRUFDbEIsUUFBUSxFQUVSLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsSUFBSSxFQUVKLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsb0NBQW9DLEVBQ3BDLGlDQUFpQyxHQUNsQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEVBQUUsV0FBVyxFQUFF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QUFVO29CQUNWLFdBQVc7b0JBQ1gsdUJBQXVCO29CQUN2Qiw2QkFBNkI7b0JBQzdCLDBCQUEwQjtvQkFDMUIsaUNBQWlDO29CQUNqQywrQkFBK0I7b0JBQy9CLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixrQkFBa0I7b0JBQ2xCLFFBQVE7aUJBQ1Q7O3NCQTJCRSxNQUFNO3VCQUFDLGlCQUFpQjtxQkF2QjNCLFFBQVE7a0JBRFAsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsV0FBVztrQkFEVixLQUFLO21CQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUl6QixZQUFZO2tCQURYLEtBQUs7bUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFOztrRkFQZCwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRvY29tcGxldGVNb2R1bGUsXG4gIEJ1dHRvbk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQXJyYXlGb3JtVGFibGVDb21wb25lbnQsXG4gIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLFxuICBCYXNlU3RyaW5nTWFwRm9ybUNvbXBvbmVudCxcbiAgS2V5VmFsdWVUdXBsZSxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gIEZBTFNFLFxuICBIZWxwRG9jdW1lbnRNb2R1bGUsXG4gIFB1cmVQaXBlLFxuICBTdHJpbmdNYXAsXG4gIFRPS0VOX0JBU0VfRE9NQUlOLFxuICBUT0tFTl9CQVNFX0hSRUYsXG4gIFRSVUUsXG4gIFRyYW5zbGF0ZUtleSxcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgZ2V0SzhzUmVzb3VyY2VBbm5vdGF0aW9uRXJyb3JNYXBwZXIkLFxuICBrOHNSZXNvdXJjZUFubm90YXRpb25LZXlWYWxpZGF0b3IsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBDbHVzdGVyVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NsdXN0ZXItZXhwb3J0cyc7XG5cbmVudW0gUFJPRFVDVF9CQVNFX0hSRUZfTUFQIHtcbiAgZGV2b3BzID0gJy9jb25zb2xlLWRldm9wcy8nLFxuICBhY3AgPSAnL2NvbnNvbGUtYWNwLycsXG4gIGFzbSA9ICcvY29uc29sZS1hc20vJyxcbiAgZGF0YXNlcnZpY2VzID0gJy9jb25zb2xlLWRhdGFzZXJ2aWNlcy8nLFxuICBjZWMgPSAnL2NvbnNvbGUtY2VjLycsXG4gIHBsYXRmb3JtID0gJy9jb25zb2xlLXBsYXRmb3JtLycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5ub3RhdGlvbkNvbmZpZ09wdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICB0aXA6IFRyYW5zbGF0ZUtleTtcbiAgZG9jPzoge1xuICAgIHRpcDogVHJhbnNsYXRlS2V5O1xuICAgIHRpcFByZWZpeD86IFRyYW5zbGF0ZUtleTtcbiAgICBwYXRoPzogc3RyaW5nOyAvLyDmoIflh4bmlofmoaPpk77mjqUsIOWvueW6lCBEb2NzT3B0aW9uLnBhdGhcbiAgICByYXdVcmw/OiBzdHJpbmc7IC8vIOmdnuagh+WHhuaWh+aho+mTvuaOpSwg5a+55bqUIERvY3NPcHRpb24ucmF3VXJsXG4gICAgcHJvZHVjdD86IGtleW9mIHR5cGVvZiBQUk9EVUNUX0JBU0VfSFJFRl9NQVA7XG4gIH07XG4gIHZhbHVlPzoge1xuICAgIGV4YW1wbGU6IHN0cmluZztcbiAgICB0aXA6IFRyYW5zbGF0ZUtleTtcbiAgICBkb2NMaW5rOiBzdHJpbmc7XG4gIH07XG4gIHZhbHVlcz86IEFycmF5PHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHRpcD86IFRyYW5zbGF0ZUtleTtcbiAgfT47XG59XG5cbmV4cG9ydCBjb25zdCBLTk9XTl9BTk5PVEFUSU9OUzogUGFydGlhbDxcbiAgUmVjb3JkPFxuICAgIENsdXN0ZXJUeXBlLFxuICAgIHtcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkb2NMaW5rOiBzdHJpbmc7XG4gICAgICBvcHRpb25zOiBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uW107XG4gICAgfVxuICA+XG4+ID0ge1xuICBbQ2x1c3RlclR5cGUuQXp1cmVBS1NdOiB7XG4gICAgbGFiZWw6ICdBS1MnLFxuICAgIGRvY0xpbms6XG4gICAgICAnaHR0cHM6Ly9jbG91ZC1wcm92aWRlci1henVyZS5zaWdzLms4cy5pby90b3BpY3MvbG9hZGJhbGFuY2VyLyNsb2FkYmFsYW5jZXItYW5ub3RhdGlvbnMnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXp1cmUtbG9hZC1iYWxhbmNlci1pbnRlcm5hbCcsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgdXNlIG9mIGludHJhbmV0L3B1YmxpYyBuZXR3b3JrJyxcbiAgICAgICAgICB6aDogJ+aMh+WumuS9v+eUqOWGhee9kS/lhaznvZEnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogVFJVRSxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ0ludHJhbmV0JyxcbiAgICAgICAgICAgICAgemg6ICflhoXnvZEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiBGQUxTRSxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ1B1YmxpYyBuZXR3b3JrJyxcbiAgICAgICAgICAgICAgemg6ICflhaznvZEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBbQ2x1c3RlclR5cGUuQW1hem9uRUtTXToge1xuICAgIGxhYmVsOiAnRUtTJyxcbiAgICBkb2NMaW5rOlxuICAgICAgJ2h0dHBzOi8va3ViZXJuZXRlcy1zaWdzLmdpdGh1Yi5pby9hd3MtbG9hZC1iYWxhbmNlci1jb250cm9sbGVyL3YyLjUvZ3VpZGUvc2VydmljZS9hbm5vdGF0aW9ucy8nLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXdzLWxvYWQtYmFsYW5jZXItdHlwZScsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgTG9hZEJhbGFuY2VyIFNlcnZpY2UgQ29udHJvbGxlciBpbiB1c2UnLFxuICAgICAgICAgIHpoOiAn5oyH5a6a5omA5L2/55So55qEIExvYWRCYWxhbmNlciDnsbvlnovlhoXpg6jot6/nlLHmjqfliLblmagnLFxuICAgICAgICB9LFxuICAgICAgICBkb2M6IHtcbiAgICAgICAgICB0aXA6IHtcbiAgICAgICAgICAgIGVuOiAnQ29udHJvbGxlciBJbnN0YWxsYXRpb24nLFxuICAgICAgICAgICAgemg6ICfmjqfliLblmajlronoo4UnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvZHVjdDogJ3BsYXRmb3JtJyxcbiAgICAgICAgICBwYXRoOiAncGxhdGZvcm0tdXNlcm1hbnVhbC9jbHVzdGVyYWxsLzFjbHVzdGVyL2Nsb3VkaW5pdC9uZXR3b3JrMS9la3NpbmdyZXNzY29udHJvbGxlci8jMicsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXh0ZXJuYWwnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnVXNpbmcgdGhlIG9mZmljaWFsIEFXUyBMb2FkQmFsYW5jZXIgQ29udHJvbGxlcicsXG4gICAgICAgICAgICAgIHpoOiAn5L2/55SoIEFXUyDlrpjmlrnnmoQgQVdTIExvYWRCYWxhbmNlciBDb250cm9sbGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NlcnZpY2UuYmV0YS5rdWJlcm5ldGVzLmlvL2F3cy1sb2FkLWJhbGFuY2VyLW5sYi10YXJnZXQtdHlwZScsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3BlY2lmeSB0aGUgd2F5IHRyYWZmaWMgaXMgZGVsaXZlcmVkIHRvIHRoZSBwb2RzJyxcbiAgICAgICAgICB6aDogJ+aMh+Wumua1gemHj+mAgei+vuWuueWZqOe7hOeahOaWueW8jycsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnaW5zdGFuY2UnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnVHJhZmZpYyB3aWxsIGJlIHNlbnQgdG8gdGhlIHBvZHMgdmlhIE5vZGVQb3J0JyxcbiAgICAgICAgICAgICAgemg6ICfmtYHph4/lsIbpgJrov4cgTm9kZVBvcnQg6YCB5b6A5a655Zmo57uEJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2lwJyxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ1RyYWZmaWMgaXMgZGlyZWN0bHkgcm91dGVkIHRvIHRoZSBwb2RzIChBbWF6b24gVlBDIENOSSBpcyByZXF1aXJlZCBmb3IgdGhlIGNsdXN0ZXIpJyxcbiAgICAgICAgICAgICAgemg6ICfmtYHph4/nm7TmjqXot6/nlLHliLDlrrnlmajnu4TvvIjpm4bnvqTpnIDkvb/nlKggQW1hem9uIFZQQyBDTknvvIknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmljZS5iZXRhLmt1YmVybmV0ZXMuaW8vYXdzLWxvYWQtYmFsYW5jZXItc2NoZW1lJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSB1c2Ugb2YgaW50cmFuZXQvcHVibGljIG5ldHdvcmsnLFxuICAgICAgICAgIHpoOiAn5oyH5a6a5L2/55So5YaF572RL+WFrOe9kScsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnaW50ZXJuYWwnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnSW50cmFuZXQnLFxuICAgICAgICAgICAgICB6aDogJ+WGhee9kScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdpbnRlcm5ldC1mYWNpbmcnLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnUHVibGljIG5ldHdvcmsnLFxuICAgICAgICAgICAgICB6aDogJ+WFrOe9kScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzZXJ2aWNlLmJldGEua3ViZXJuZXRlcy5pby9hd3MtbG9hZC1iYWxhbmNlci1pcC1hZGRyZXNzLXR5cGUnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1NwZWNpZnkgdGhlIHN1cHBvcnRlZCBJUCBwcm90b2NvbCBzdGFjaycsXG4gICAgICAgICAgemg6ICfmjIflrprmlK/mjIHnmoQgSVAg5Y2P6K6u5qCIJyxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdpcHY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZHVhbHN0YWNrJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBbQ2x1c3RlclR5cGUuSHVhd2VpQ2xvdWRDQ0VdOiB7XG4gICAgbGFiZWw6ICdDQ0UnLFxuICAgIGRvY0xpbms6XG4gICAgICAnaHR0cHM6Ly9zdXBwb3J0Lmh1YXdlaWNsb3VkLmNvbS9pbnRsL2VuLXVzL3VzZXJtYW51YWwtY2NlL2NjZV8xMF8wMzg1Lmh0bWwnLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAna3ViZXJuZXRlcy5pby9lbGIuaWQnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1BsZWFzZSBwcm92aWRlIHRoZSBJRCBvZiB0aGUgY2xvdWQgTG9hZEJhbGFuY2VyLCBZb3Ugc2hvdWxkIHVzZSBhbiBleGlzdGluZyBjbG91ZCBMb2FkQmFsYW5jZXIuJyxcbiAgICAgICAgICB6aDogJ+Whq+WGmeS6keS4iui0n+i9veWdh+ihoeWZqOeahCBJRO+8jOmcgOS9v+eUqOW3suacieS6keS4iui0n+i9veWdh+ihoeWZqCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdrdWJlcm5ldGVzLmlvL2VsYi5hdXRvY3JlYXRlJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdDcmVhdGUgYSBuZXcgY2xvdWQgTG9hZEJhbGFuY2VyJyxcbiAgICAgICAgICB6aDogJ+aWsOWIm+W7uuS6keS4iui0n+i9veWdh+ihoeWZqCcsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgZXhhbXBsZTogYHtcInR5cGVcIjpcInB1YmxpY1wiLFwiYmFuZHdpZHRoX25hbWVcIjpcImNjZS1iYW5kd2lkdGgtMTU1MTE2MzM3OTYyN1wiLFwiYmFuZHdpZHRoX2NoYXJnZW1vZGVcIjpcImJhbmR3aWR0aFwiLFwiYmFuZHdpZHRoX3NpemVcIjo1LFwiYmFuZHdpZHRoX3NoYXJldHlwZVwiOlwiUEVSXCIsXCJlaXBfdHlwZVwiOlwiNV9iZ3BcIixcImF2YWlsYWJsZV96b25lXCI6W1wiY24tbm9ydGgtNGJcIl0sXCJsNF9mbGF2b3JfbmFtZVwiOlwiTDRfZmxhdm9yLmVsYi5zMS5zbWFsbFwifWAsXG4gICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICBlbjogJ0ZvciBleGFtcGxlOiB7eyBleGFtcGxlIH19JyxcbiAgICAgICAgICAgIHpoOiAn5L6L5aaC77yae3sgZXhhbXBsZSB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkb2NMaW5rOlxuICAgICAgICAgICAgJ2h0dHBzOi8vc3VwcG9ydC5odWF3ZWljbG91ZC5jb20vaW50bC9lbi11cy91c2VybWFudWFsLWNjZS9jY2VfMTBfMDM4NS5odG1sI3NlY3Rpb244JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2t1YmVybmV0ZXMuaW8vZWxiLnN1Ym5ldC1pZCcsXG4gICAgICAgIHRpcDoge1xuICAgICAgICAgIGVuOiAnU3VibmV0IElEIG9mIHRoZSBjbHVzdGVyLCB3aGljaCBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IGNsb3VkIExvYWRCYWxhbmNlciBhbmQgS3ViZXJuZXRlcyB2ZXJzaW9uIGlzIDEuMTEuNy1yMCBhbmQgYmVsb3cuJyxcbiAgICAgICAgICB6aDogJ+mbhue+pOaJgOWcqOWtkOe9keeahCBJRO+8jOW9kyBLdWJlcm5ldGVzIOeJiOacrOS4uiAxLjExLjctcjAg5Y+K5Lul5LiL77yM5paw5Yib5bu65LqR5LiK6LSf6L295Z2H6KGh5Zmo5pe25b+F6aG75aGr5YaZ5q2k6aG5JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2t1YmVybmV0ZXMuaW8vZWxiLmNsYXNzJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSB0eXBlIG9mIHRoZSBuZXdseSBjcmVhdGVkIGNsb3VkIExvYWRCYWxhbmNlcicsXG4gICAgICAgICAgemg6ICfmjIflrprmlrDliJvlu7rnmoTkupHkuIrotJ/ovb3lnYfooaHlmajnmoTnsbvlnosnLFxuICAgICAgICB9LFxuICAgICAgICBkb2M6IHtcbiAgICAgICAgICB0aXA6IHtcbiAgICAgICAgICAgIGVuOiAnRGlmZmVyZW5jZXMgQmV0d2VlbiBEZWRpY2F0ZWQgYW5kIFNoYXJlZCBMb2FkIEJhbGFuY2VycycsXG4gICAgICAgICAgICB6aDogJ+WFseS6q+Wei+W8ueaAp+i0n+i9veWdh+ihoeS4jueLrOS6q+Wei+i0n+i9veWdh+ihoeeahOWKn+iDveWMuuWIqycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByYXdVcmw6XG4gICAgICAgICAgICAnaHR0cHM6Ly9zdXBwb3J0Lmh1YXdlaWNsb3VkLmNvbS9pbnRsL3poLWNuL3Byb2R1Y3RkZXNjLWVsYi9lbGJfcHJvXzAwMDQuaHRtbCcsXG4gICAgICAgICAgdGlwUHJlZml4OiB7XG4gICAgICAgICAgICBlbjogJ0ZvciBtb3JlIGRldGFpbHMsIHBsZWFzZSByZWZlciB0byAnLFxuICAgICAgICAgICAgemg6ICfor6bmg4Xor7flj4Lop4EnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAndW5pb24nLFxuICAgICAgICAgICAgdGlwOiB7XG4gICAgICAgICAgICAgIGVuOiAnU2hhcmVkIExvYWRCYWxhbmNlcicsXG4gICAgICAgICAgICAgIHpoOiAn5YWx5Lqr5Z6L6LSf6L295Z2H6KGhJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ3BlcmZvcm1hbmNlJyxcbiAgICAgICAgICAgIHRpcDoge1xuICAgICAgICAgICAgICBlbjogJ0RlZGljYXRlZCBMb2FkQmFsYW5jZXIsIHdoaWNoIGNhbiBiZSB1c2VkIG9ubHkgaW4gY2x1c3RlcnMgb2YgdjEuMTcgYW5kIGxhdGVyJyxcbiAgICAgICAgICAgICAgemg6ICfni6zkuqvlnovotJ/ovb3lnYfooaHvvIzku4XmlK/mjIHlnKggS3ViZXJuZXRlcyDniYjmnKzkuLogMS4xNyDlj4rku6XkuIrnmoTpm4bnvqTkuK3kvb/nlKgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAna3ViZXJuZXRlcy5pby9lbGIuZW50ZXJwcmlzZUlEJyxcbiAgICAgICAgdGlwOiB7XG4gICAgICAgICAgZW46ICdTcGVjaWZ5IHRoZSBlbnRlcnByaXNlIHByb2plY3QgdG8gd2hpY2ggdGhlIG5ld2x5IGNyZWF0ZWQgY2xvdWQgTG9hZEJhbGFuY2VyIHdpbGwgYmVsb25nJyxcbiAgICAgICAgICB6aDogJ+aMh+WumuaWsOWIm+W7uuS6keS4iui0n+i9veWdh+ihoeWZqOaJgOWxnueahOS8geS4mumhueebricsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIFtDbHVzdGVyVHlwZS5Hb29nbGVDbG91ZEdLRV06IHtcbiAgICBsYWJlbDogJ0dLRScsXG4gICAgZG9jTGluazpcbiAgICAgICdodHRwczovL2Nsb3VkLmdvb2dsZS5jb20va3ViZXJuZXRlcy1lbmdpbmUvZG9jcy9jb25jZXB0cy9zZXJ2aWNlLWxvYWQtYmFsYW5jZXItcGFyYW1ldGVycycsXG4gICAgb3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBrZXk6ICduZXR3b3JraW5nLmdrZS5pby9sb2FkLWJhbGFuY2VyLXR5cGUnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1NwZWNpZnkgdGhlIHVzZSBvZiBJbnRyYW5ldCcsXG4gICAgICAgICAgemg6ICfmjIflrprkvb/nlKjlhoXnvZEnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ0ludGVybmFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnY2xvdWQuZ29vZ2xlLmNvbS9sNC1yYnMnLFxuICAgICAgICB0aXA6IHtcbiAgICAgICAgICBlbjogJ1RoZSBkZWZhdWx0IGlzIHB1YmxpYyBuZXR3b3JrLCB3aGVuIHRoaXMgcGFyYW1ldGVyIGlzIGNvbmZpZ3VyZWQsIHRyYWZmaWMgd2lsbCBiZSByb3V0ZWQgZGlyZWN0bHkgdG8gdGhlIHBvZHMnLFxuICAgICAgICAgIHpoOiAn6buY6K6k5Li65YWs572R77yM6YWN572u5q2k5Y+C5pWw5pe277yM5rWB6YeP5bCG55u05o6l6Lev55Sx6Iez5a655Zmo57uEJyxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlbmFibGVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXNlcnZpY2UtYW5ub3RhdGlvbnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnYW5ub3RhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYW5ub3RhdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgTmdJZixcbiAgICBOZ0Zvck9mLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIEFycmF5Rm9ybVRhYmxlQ29tcG9uZW50LFxuICAgIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLFxuICAgIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLFxuICAgIEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSxcbiAgICBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gICAgSGVscERvY3VtZW50TW9kdWxlLFxuICAgIFB1cmVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQW5ub3RhdGlvbnNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBpc1VwZGF0ZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjbHVzdGVyVHlwZTogQ2x1c3RlclR5cGU7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJhc2VIcmVmID0gaW5qZWN0KFRPS0VOX0JBU0VfSFJFRik7XG5cbiAgLy8g56aB55So5o6J5YyF5ZCrIGNwYWFzLmlvIOWPiiBvdm4ua3ViZXJuZXRlcy5pbyDnmoQga2V5XG4gIHJlYWRvbmx5IHJlYWRvbmx5UGFydGlhbEtleXMgPSBbJ292bi5rdWJlcm5ldGVzLmlvJywgdGhpcy5iYXNlRG9tYWluXTtcblxuICBhbm5vdGF0aW9uc0Vycm9yc01hcHBlciA9IGdldEs4c1Jlc291cmNlQW5ub3RhdGlvbkVycm9yTWFwcGVyJChcbiAgICB0aGlzLnRyYW5zbGF0ZSxcbiAgKTtcblxuICBLTk9XTl9BTk5PVEFUSU9OUyA9IEtOT1dOX0FOTk9UQVRJT05TO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KFRPS0VOX0JBU0VfRE9NQUlOKSBwcml2YXRlIHJlYWRvbmx5IGJhc2VEb21haW46IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyhvcHRpb25zOiBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uW10gfCB1bmRlZmluZWQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBrZXlzID0gKHRoaXMuZm9ybS52YWx1ZSBhcyBLZXlWYWx1ZVR1cGxlW10pLm1hcCgoW2tleV0pID0+IGtleSk7XG4gICAgcmV0dXJuIG9wdGlvbnM/LmZpbHRlcihvID0+IHtcbiAgICAgIGNvbnN0IGtleUluZGV4ID0ga2V5cy5pbmRleE9mKG8ua2V5KTtcbiAgICAgIHJldHVybiBrZXlJbmRleCA9PT0gLTEgfHwga2V5SW5kZXggPT09IGluZGV4O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29uZmlnT3B0aW9uKG9wdGlvbnM6IEFubm90YXRpb25Db25maWdPcHRpb25bXSB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb3B0aW9ucz8uZmluZChvcHRpb24gPT4gb3B0aW9uLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIGlzUmVhZG9ubHkoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pc1VwZGF0ZSAmJiB0aGlzLnJlYWRvbmx5UGFydGlhbEtleXMuc29tZShrID0+IGtleS5pbmNsdWRlcyhrKSk7XG4gIH1cblxuICBvdmVycmlkZSBnZXREZWZhdWx0Rm9ybU1vZGVsKCk6IEtleVZhbHVlVHVwbGVbXSB7XG4gICAgcmV0dXJuIFtbJycsICcnXV07XG4gIH1cblxuICBvdmVycmlkZSBhZGFwdFJlc291cmNlTW9kZWwocmVzb3VyY2U6IFN0cmluZ01hcCkge1xuICAgIGxldCBuZXdGb3JtTW9kZWwgPSBPYmplY3QuZW50cmllcyhyZXNvdXJjZSB8fCB7fSk7XG4gICAgLy8g5o6S5bqP77yM5YWI5oyJ5a2X5q+N5o6S5bqP77yM5YaN5oqKIHJlYWRvbmx5IOeahOaUvuWJjemdolxuICAgIG5ld0Zvcm1Nb2RlbCA9IHNvcnRCeShuZXdGb3JtTW9kZWwsIChhcnI6IFtzdHJpbmcsIHN0cmluZ10pID0+IGFyclswXSk7XG4gICAgbmV3Rm9ybU1vZGVsLnNvcnQoKGFycjE6IFtzdHJpbmcsIHN0cmluZ10sIGFycjI6IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgIGNvbnN0IGZsYWcxID0gdGhpcy5pc1JlYWRvbmx5KGFycjFbMF0pO1xuICAgICAgY29uc3QgZmxhZzIgPSB0aGlzLmlzUmVhZG9ubHkoYXJyMlswXSk7XG4gICAgICBpZiAoKGZsYWcxICYmIGZsYWcyKSB8fCAoIWZsYWcxICYmICFmbGFnMikpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmxhZzEgPyAtMSA6IDE7XG4gICAgfSk7XG5cbiAgICBpZiAobmV3Rm9ybU1vZGVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbmV3Rm9ybU1vZGVsID0gdGhpcy5nZXREZWZhdWx0Rm9ybU1vZGVsKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0Zvcm1Nb2RlbDtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldEtleVZhbGlkYXRvcnMoKSB7XG4gICAgcmV0dXJuIGs4c1Jlc291cmNlQW5ub3RhdGlvbktleVZhbGlkYXRvcjtcbiAgfVxuXG4gIGlzTGFiZWxSZWFkb25seShjb250cm9sOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8c3RyaW5nPj4pIHtcbiAgICByZXR1cm4gY29udHJvbC52YWxpZCAmJiB0aGlzLmlzUmVhZG9ubHkoY29udHJvbC5nZXQoJzAnKS52YWx1ZSk7XG4gIH1cblxuICBnZXRBY3RpdmVDb25maWdPcHRpb24oXG4gICAgb3B0aW9uczogQW5ub3RhdGlvbkNvbmZpZ09wdGlvbltdIHwgdW5kZWZpbmVkLFxuICAgIGtleTogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gb3B0aW9ucz8uZmluZChvID0+IG8ua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgb25LZXlTZWxlY3RlZChjb250cm9sOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8c3RyaW5nPj4pIHtcbiAgICBjb25zdCBrZXlDdHJsID0gY29udHJvbC5nZXQoJzAnKTtcbiAgICBrZXlDdHJsLm1hcmtBc0RpcnR5KCk7XG4gICAga2V5Q3RybC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICAvLyBBbm5vdGF0aW9uQ29uZmlnT3B0aW9uLmRvYyDphY3nva7kuobkuqflk4Eg77yIcHJvZHVjdO+8ieWxnuaAp+S5i+WQjumcgOimgeW9k+WJjeinhuWbvumatuWxnuS6juivpeS6p+WTgeaXtuaJjeWxleekuiBkb2Mg6ZO+5o6l77yM5pyq6YWN572u55qE6K+d5LiN5Y+X6ZmQ5Yi2XG4gIHNob3dEb2NMaW5rKGJhc2VIcmVmOiBzdHJpbmcsIHByb2R1Y3Q/OiBrZXlvZiB0eXBlb2YgUFJPRFVDVF9CQVNFX0hSRUZfTUFQKSB7XG4gICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gUFJPRFVDVF9CQVNFX0hSRUZfTUFQW3Byb2R1Y3RdID09PSBiYXNlSHJlZjtcbiAgfVxufVxuIiwiPGFjbC1hcnJheS1mb3JtLXRhYmxlXG4gIFtmb3JtR3JvdXBdPVwiJGFueShmb3JtKVwiXG4gIFtyb3dzXT1cImZvcm0uY29udHJvbHNcIlxuICAoYWRkKT1cImZvcm0ucHVzaChjcmVhdGVOZXdDb250cm9sKCkpXCJcbiAgKHJlbW92ZSk9XCJyZW1vdmUoJGV2ZW50KVwiXG4gIFtyZXNvdXJjZU5hbWVdPVwicmVzb3VyY2VOYW1lXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVIZWFkZXI+XG4gICAgPHRoIGNsYXNzPVwiY29sdW1uXCI+e3sgJ2tleScgfCB0cmFuc2xhdGUgfX08L3RoPlxuICAgIDx0aCBjbGFzcz1cImNvbHVtblwiPnt7ICd2YWx1ZScgfCB0cmFuc2xhdGUgfX08L3RoPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyXG4gICAgKmFjbEFycmF5Rm9ybVRhYmxlUm93PVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICBbZm9ybUdyb3VwTmFtZV09XCJpbmRleFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIntcbiAgICAgICAgY29uZmlnOiBLTk9XTl9BTk5PVEFUSU9OU1tjbHVzdGVyVHlwZV0sXG4gICAgICAgIHJlYWRvbmx5OiBpc0xhYmVsUmVhZG9ubHkoY29udHJvbCksXG4gICAgICB9IGFzIF9cIlxuICAgID5cbiAgICAgIDx0ZCBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICBbcmVhZG9ubHldPVwiXy5yZWFkb25seVwiXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIjBcIlxuICAgICAgICAgIFthdWlBdXRvY29tcGxldGVdPVwia2V5U3VnZ2VzdGlvblwiXG4gICAgICAgICAgKGF1aUF1dG9jb21wbGV0ZVNlbGVjdGVkKT1cIm9uS2V5U2VsZWN0ZWQoY29udHJvbClcIlxuICAgICAgICAvPlxuICAgICAgICA8YXVpLWF1dG9jb21wbGV0ZSAja2V5U3VnZ2VzdGlvbj5cbiAgICAgICAgICA8YXVpLXN1Z2dlc3Rpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgb3B0aW9uIG9mIF8ucmVhZG9ubHlcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IGZpbHRlck9wdGlvbnMoXy5jb25maWc/Lm9wdGlvbnMsIGluZGV4KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ua2V5XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24ua2V5IH19XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnRpcCB8IHRyYW5zbGF0ZSBhcyB0aXBcIlxuICAgICAgICAgICAgICBjbGFzcz1cInR3LXRleHQtaGVscC10ZXh0IHR3LXRleHQtc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHRpcCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hdWktc3VnZ2VzdGlvbj5cbiAgICAgICAgPC9hdWktYXV0b2NvbXBsZXRlPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgXy5jb25maWc/Lm9wdGlvbnNcbiAgICAgICAgICAgICAgfCBwdXJlOiBnZXRBY3RpdmVDb25maWdPcHRpb24gOiBjb250cm9sLmdldCgnMCcpLnZhbHVlXG4gICAgICAgICAgICApPy5kb2MgYXMgZG9jXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiYmFzZUhyZWYgfCBwdXJlOiBzaG93RG9jTGluayA6IGRvYy5wcm9kdWN0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctdGV4dC1zIHR3LW10LTRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2MudGlwUHJlZml4XCI+XG4gICAgICAgICAgICAgIHt7IGRvYy50aXBQcmVmaXggfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW2FjbERvY3NdPVwie1xuICAgICAgICAgICAgICAgIHBhdGg6IGRvYy5wYXRoLFxuICAgICAgICAgICAgICAgIHJhd1VybDogZG9jLnJhd1VybCxcbiAgICAgICAgICAgICAgICB0eXBlOiAncGFnZScsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBkb2MudGlwIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwianVtcFwiPjwvYXVpLWljb24+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICBbcmVhZG9ubHldPVwiXy5yZWFkb25seVwiXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIjFcIlxuICAgICAgICAgIFthdWlBdXRvY29tcGxldGVdPVwidmFsdWVTdWdnZXN0aW9uXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGF1aS1hdXRvY29tcGxldGUgI3ZhbHVlU3VnZ2VzdGlvbj5cbiAgICAgICAgICA8YXVpLXN1Z2dlc3Rpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgb3B0aW9uIG9mIF8ucmVhZG9ubHlcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IChcbiAgICAgICAgICAgICAgICAgICAgXy5jb25maWc/Lm9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgfCBwdXJlOiBnZXRDb25maWdPcHRpb24gOiBjb250cm9sLmdldCgnMCcpLnZhbHVlXG4gICAgICAgICAgICAgICAgICApPy52YWx1ZXNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24udGlwIHwgdHJhbnNsYXRlIGFzIHRpcFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctdGV4dC1zXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgdGlwIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2F1aS1zdWdnZXN0aW9uPlxuICAgICAgICA8L2F1aS1hdXRvY29tcGxldGU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBfLmNvbmZpZz8ub3B0aW9uc1xuICAgICAgICAgICAgICB8IHB1cmU6IGdldEFjdGl2ZUNvbmZpZ09wdGlvbiA6IGNvbnRyb2wuZ2V0KCcwJykudmFsdWVcbiAgICAgICAgICAgICk/LnZhbHVlIGFzIHZhbHVlQ29uZmlnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cInR3LXRleHQtaGVscC10ZXh0IHR3LXRleHQtc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbnRyb2wuZ2V0KCcxJykudmFsdWUgPT09IHZhbHVlQ29uZmlnLmV4YW1wbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LXllbGxvdyB0dy1tdC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnbmV0d29yay5yZWFkX2ZpbGxpbmdfaW5zdHJ1Y3Rpb25zX3RpcCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctYnJlYWstYWxsIHR3LW15LTRcIj5cbiAgICAgICAgICAgIHt7IHZhbHVlQ29uZmlnLnRpcCB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiB2YWx1ZUNvbmZpZy5leGFtcGxlIH0gfX1cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInR3LXRleHQtcHJpbWFyeSB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIGljb249XCJhcnJvd190dXJuX3VwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRyb2wuZ2V0KCcxJykuc2V0VmFsdWUodmFsdWVDb25maWcuZXhhbXBsZSlcIlxuICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtocmVmXT1cInZhbHVlQ29uZmlnLmRvY0xpbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICduZXR3b3JrLmZpbGxpbmdfaW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPGF1aS1pY29uIGljb249XCJqdW1wXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dFcnJvcj1cImxldCBjb250cm9sXCI+XG4gICAgPHRkXG4gICAgICAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiXG4gICAgICBjb2xzcGFuPVwiM1wiXG4gICAgICBjbGFzcz1cImFjbC10YWJsZS1mb3JtLWVycm9yLWhpbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmVycm9ycz8ua2V5SXNNaXNzaW5nXCI+XG4gICAgICAgIHt7ICdrOHNfcmVzb3VyY2VfbGFiZWxfa2V5X3JlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmVycm9ycz8uZHVwbGljYXRlRXJyb3JcIj5cbiAgICAgICAge3sgJ2s4c19yZXNvdXJjZV9sYWJlbF9rZXlfZHVwbGljYXRlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICAgICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgICAgICBbZXJyb3JzXT1cImNvbnRyb2wuZ2V0KCcwJykuZXJyb3JzXCJcbiAgICAgICAgW2Vycm9yc01hcHBlcl09XCIoYW5ub3RhdGlvbnNFcnJvcnNNYXBwZXIgfCBhc3luYykua2V5XCJcbiAgICAgID48L2FjbC1lcnJvcnMtbWFwcGVyPlxuICAgICAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICAgICAgW2Vycm9yc109XCJjb250cm9sLmdldCgnMScpLmVycm9yc1wiXG4gICAgICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICphY2xBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2w9XCJsZXQgaXRlbTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNMYWJlbFJlYWRvbmx5KGl0ZW0pXCJcbiAgICAgIChjbGljayk9XCJyZW1vdmUoaW5kZXgpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtYXJyYXktZm9ybS10YWJsZT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2XG4gICpuZ0lmPVwiS05PV05fQU5OT1RBVElPTlNbY2x1c3RlclR5cGVdIGFzIGNvbmZpZ1wiXG4gIGNsYXNzPVwidHctdGV4dC1oZWxwLXRleHQgdHctdGV4dC1zIHR3LW10LTRcIlxuPlxuICA8bmctY29udGFpbmVyIFthY2xUcmFuc2xhdGVdPVwiJ2RvY3VtZW50YXRpb25fZm9yX2xiX3NlcnZpY2VfYW5ub3RhdGlvbnMnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYWNsVHJhbnNsYXRlVGV4dD1cImxldCB0ZXh0XCI+e3sgdGV4dCB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmFjbFRyYW5zbGF0ZU1hdGNoPVwiJ3R5cGUnXCI+e3sgY29uZmlnLmxhYmVsIH19PC9uZy1jb250YWluZXI+XG4gICAgPGFcbiAgICAgICphY2xUcmFuc2xhdGVNYXRjaD1cIidkb2N1bWVudGF0aW9uJ1wiXG4gICAgICBbaHJlZl09XCJjb25maWcuZG9jTGlua1wiXG4gICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgPlxuICAgICAge3sgJ2RvY3VtZW50YXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8YXVpLWljb24gaWNvbj1cImp1bXBcIj48L2F1aS1pY29uPiA8L2FcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|