@lowcodeunit/applications-flow-common 1.39.15-hardening-bugs → 1.39.17-hardening-bugs
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/esm2020/lib/controls/processor-details-form/processor-details-form.component.mjs +15 -8
- package/esm2020/lib/dialogs/new-application-dialog/new-application-dialog.component.mjs +4 -2
- package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +2 -2
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +19 -9
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +18 -9
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts +1 -0
- package/package.json +1 -1
@@ -111,7 +111,7 @@ export class ProcessorDetailsFormComponent {
|
|
111
111
|
if (!this.EditingApplication) {
|
112
112
|
this.CreateNewApplication();
|
113
113
|
}
|
114
|
-
else {
|
114
|
+
else if (!this.ProcessorDetailsFormGroup) {
|
115
115
|
this.SetupProcessorDetailsForm();
|
116
116
|
}
|
117
117
|
// else if (this.EditingApplication && !this.ProcessorDetailsFormGroup) {
|
@@ -279,14 +279,17 @@ export class ProcessorDetailsFormComponent {
|
|
279
279
|
}
|
280
280
|
listBuildPaths() {
|
281
281
|
// this.Loading = true;
|
282
|
-
console.log(
|
282
|
+
// console.log(
|
283
|
+
// 'Source Control: ',
|
284
|
+
// this.SourceControls[this.SourceControlFormControl.value]
|
285
|
+
// );
|
283
286
|
this.appsFlowSvc
|
284
287
|
.ListBuildPaths(this.SourceControls[this.SourceControlFormControl.value]
|
285
288
|
?.Organization, this.SourceControls[this.SourceControlFormControl.value]
|
286
289
|
?.Repository)
|
287
290
|
.subscribe((response) => {
|
288
291
|
this.BuildPathOptions = response.Model;
|
289
|
-
console.log('build path options: ', this.BuildPathOptions);
|
292
|
+
// console.log('build path options: ', this.BuildPathOptions);
|
290
293
|
// this.Loading = false;
|
291
294
|
// if (this.BuildPathOptions?.length === 1) {
|
292
295
|
// this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);
|
@@ -295,6 +298,7 @@ export class ProcessorDetailsFormComponent {
|
|
295
298
|
}
|
296
299
|
setupLcuTypeSubForm() {
|
297
300
|
this.cleanupLcuTypeSubForm();
|
301
|
+
// console.log('LCU Type: ', this.LCUType);
|
298
302
|
if (this.LCUType) {
|
299
303
|
switch (this.LCUType) {
|
300
304
|
case 'API':
|
@@ -312,9 +316,9 @@ export class ProcessorDetailsFormComponent {
|
|
312
316
|
case 'WordPress':
|
313
317
|
this.setupLCUWordPressForm();
|
314
318
|
break;
|
315
|
-
|
316
|
-
|
317
|
-
|
319
|
+
case 'NPM':
|
320
|
+
this.setupLCUNPMForm();
|
321
|
+
break;
|
318
322
|
case 'SPA':
|
319
323
|
this.setupLCUSPAForm();
|
320
324
|
break;
|
@@ -338,7 +342,7 @@ export class ProcessorDetailsFormComponent {
|
|
338
342
|
}
|
339
343
|
}
|
340
344
|
setupLCUGitHubForm() {
|
341
|
-
console.log('EditingApplication: ', this.EditingApplication);
|
345
|
+
// console.log('EditingApplication: ', this.EditingApplication);
|
342
346
|
this.ProcessorDetailsFormGroup.addControl('sourceControl', this.formBldr.control(this.EditingApplication.LowCodeUnit?.SourceControlLookup || '', [Validators.required]));
|
343
347
|
this.IsSourceControlValid = this.SourceControlFormControl.valid;
|
344
348
|
this.ProcessorDetailsFormGroup.addControl('buildPath', this.formBldr.control(this.EditingApplication.LowCodeUnit?.Path || '', [Validators.required]));
|
@@ -356,6 +360,9 @@ export class ProcessorDetailsFormComponent {
|
|
356
360
|
this.ProcessorDetailsFormGroup.addControl('apiRoot', this.formBldr.control(this.EditingApplication.LowCodeUnit?.APIRoot || '', [Validators.required]));
|
357
361
|
this.ProcessorDetailsFormGroup.addControl('security', this.formBldr.control(this.EditingApplication.LowCodeUnit?.Security || '', [Validators.required]));
|
358
362
|
}
|
363
|
+
setupLCUNPMForm() {
|
364
|
+
this.ProcessorDetailsFormGroup.addControl('sourceControl', this.formBldr.control(this.EditingApplication.LowCodeUnit?.SourceControlLookup || '', [Validators.required]));
|
365
|
+
}
|
359
366
|
setupLCUGitHubOAuthForm() {
|
360
367
|
this.ProcessorDetailsFormGroup.addControl('clientId', this.formBldr.control(this.EditingApplication.LowCodeUnit?.ClientID || '', [Validators.required]));
|
361
368
|
this.ProcessorDetailsFormGroup.addControl('clientSecret', this.formBldr.control(this.EditingApplication.LowCodeUnit?.ClientSecret || '', [Validators.required]));
|
@@ -443,4 +450,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
443
450
|
type: Output,
|
444
451
|
args: ['save-form-event']
|
445
452
|
}] } });
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9wcm9jZXNzb3ItZGV0YWlscy1mb3JtL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvcHJvY2Vzc29yLWRldGFpbHMtZm9ybS9wcm9jZXNzb3ItZGV0YWlscy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlILFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBdUIsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hELE9BQU8sRUFDSCxvQkFBb0IsR0FHdkIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVk1QixNQUFNLE9BQU8sNkJBQTZCO0lBaUp0QyxZQUNjLFdBQW9DLEVBQ3BDLFFBQXFCLEVBQ3JCLE1BQWtCO1FBRmxCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUEvSEQsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUM1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QUk1QixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsYUFBYTtnQkFJYixvQkFBb0I7c0JBRDFCLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUl4QixhQUFhO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVM7Z0JBSVQsYUFBYTtzQkFEbkIsTUFBTTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtR3JvdXAsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEJhc2VNb2RlbGVkUmVzcG9uc2UsIEd1aWQgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ1NvdXJjZUNvbnRyb2wsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBFYUNTZXJ2aWNlLFxuICAgIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdlZGl0aW5nLWFwcGxpY2F0aW9uJylcbiAgICBwdWJsaWMgRWRpdGluZ0FwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICAgIEBJbnB1dCgnZWRpdGluZy1hcHBsaWNhdGlvbi1sb29rdXAnKVxuICAgIHB1YmxpYyBFZGl0aW5nQXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnZW52aXJvbm1lbnQnKVxuICAgIHB1YmxpYyBFbnZpcm9ubWVudDogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgICBASW5wdXQoJ2hhcy1zYXZlLWJ1dHRvbicpXG4gICAgcHVibGljIEhhc1NhdmVCdXR0b246IGJvb2xlYW47XG5cbiAgICBASW5wdXQoJ2lzLWRpc2FibGVkJylcbiAgICBwdWJsaWMgSXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgnc291cmNlLWNvbnRyb2wtbG9va3VwcycpXG4gICAgcHVibGljIFNvdXJjZUNvbnRyb2xMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgQElucHV0KCdwcm9qZWN0LWxvb2t1cCcpXG4gICAgcHVibGljIFByb2plY3RMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCdzYXZlLWZvcm0tZXZlbnQnKVxuICAgIHB1YmxpYyBTYXZlRm9ybUV2ZW50OiBFdmVudEVtaXR0ZXI8e30+O1xuXG4gICAgcHVibGljIGdldCBBUElSb290Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuYXBpUm9vdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IEJ1aWxkRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuYnVpbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBCdWlsZFBhdGhGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5idWlsZFBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBDbGllbnRJREZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmNsaWVudElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQ2xpZW50U2VjcmV0Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuY2xpZW50U2VjcmV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRGVmYXVsdEZpbGVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5kZWZhdWx0RmlsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERlZmF1bHRTb3VyY2VDb250cm9sKCk6IEVhQ1NvdXJjZUNvbnRyb2wge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgT3JnYW5pemF0aW9uOiB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uTG93Q29kZVVuaXQ/Lk9yZ2FuaXphdGlvbixcbiAgICAgICAgICAgIFJlcG9zaXRvcnk6IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Mb3dDb2RlVW5pdD8uUmVwb3NpdG9yeSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IEluYm91bmRQYXRoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuaW5ib3VuZFBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBJbmNsdWRlUmVxdWVzdEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmluY2x1ZGVSZXF1ZXN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgTWV0aG9kc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLm1ldGhvZHM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBQYWNrYWdlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMucGFja2FnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFBlcm1hbmVudEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnBlcm1hbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMucHJlc2VydmVNZXRob2Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBSZWRpcmVjdEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnJlZGlyZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU2NvcGVzRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuc2NvcGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU2VjdXJpdHlGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5zZWN1cml0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5zb3VyY2VDb250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU1BBUm9vdEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnNwYVJvb3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBUb2tlbkxvb2t1cEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnRva2VuTG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgVmFsaWRGb3JtQ29udHJvbHMoKTogQXJyYXk8QWJzdHJhY3RDb250cm9sPiB7XG4gICAgICAgIGxldCB2ZmM6IEFycmF5PEFic3RyYWN0Q29udHJvbD4gPSBuZXcgQXJyYXk8QWJzdHJhY3RDb250cm9sPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHZmYy5wdXNoKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiVkZDPVwiLCB2ZmMpXG4gICAgICAgIHJldHVybiB2ZmM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBWZXJzaW9uRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMudmVyc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFppcEZpbGVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy56aXBGaWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBCdWlsZFBhdGhPcHRpb25zOiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBJc1Blcm1hbmVudDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBJc1ByZXNlcnZlOiBib29sZWFuO1xuXG4gICAgcHVibGljIElzU291cmNlQ29udHJvbFZhbGlkOiBib29sZWFuO1xuXG4gICAgcHVibGljIExDVVR5cGU6IHN0cmluZztcblxuICAgIHB1YmxpYyByZWRpcmVjdFRvb2x0aXA6IHN0cmluZztcblxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNTb3VyY2VDb250cm9sIH07XG5cbiAgICBwdWJsaWMgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFByb2Nlc3NvclR5cGU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybUJsZHI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVkaXJlY3RUb29sdGlwID0gJyc7XG5cbiAgICAgICAgdGhpcy5IYXNTYXZlQnV0dG9uID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLlNhdmVGb3JtRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMpIHtcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHMgPSB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5FZGl0aW5nQXBwbGljYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuQ3JlYXRlTmV3QXBwbGljYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuU2V0dXBQcm9jZXNzb3JEZXRhaWxzRm9ybSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2UgaWYgKHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uICYmICF0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXApIHtcbiAgICAgICAgLy8gICAgIHRoaXMuU2V0dXBQcm9jZXNzb3JEZXRhaWxzRm9ybSgpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gaWYgKHRoaXMuSXNEaXNhYmxlZCkge1xuICAgICAgICAvLyAgICAgdGhpcy5zZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk7XG4gICAgICAgIC8vICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgcHVibGljIENyZWF0ZU5ld0FwcGxpY2F0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlNldEVkaXRpbmdBcHBsaWNhdGlvbihHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgRGV0ZXJtaW5lVG9vbHRpcFRleHQoKSB7XG4gICAgICAgIGxldCBwZXJtYW5lbnRWYWx1ZSA9IHRoaXMuUGVybWFuZW50Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGxldCBwcmVzZXJ2ZVZhbHVlID0gdGhpcy5QcmVzZXJ2ZU1ldGhvZEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGlmIChwZXJtYW5lbnRWYWx1ZSA9PT0gdHJ1ZSAmJiBwcmVzZXJ2ZVZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvb2x0aXAgPSAnMzAxIOKAkyBQZXJtYW5lbnQgYW5kIE5vdCBQcmVzZXJ2ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAocGVybWFuZW50VmFsdWUgPT09IGZhbHNlICYmIHByZXNlcnZlVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICczMDIg4oCTIE5vdCBQZXJtYW5lbnQgYW5kIE5vdCBQcmVzZXJ2ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAocGVybWFuZW50VmFsdWUgPT09IGZhbHNlICYmIHByZXNlcnZlVmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb29sdGlwID0gJzMwNyDigJMgTm90IFBlcm1hbmVudCBhbmQgUHJlc2VydmUnO1xuICAgICAgICB9IGVsc2UgaWYgKHBlcm1hbmVudFZhbHVlID09PSB0cnVlICYmIHByZXNlcnZlVmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb29sdGlwID0gJzMwOCDigJMgUGVybWFuZW50IGFuZCBQcmVzZXJ2ZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZVByb2Nlc3NvckRldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFwcDogRWFDQXBwbGljYXRpb25Bc0NvZGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbjtcbiAgICAgICAgYXBwLkxvb2t1cENvbmZpZy5BbGxvd2VkTWV0aG9kcyA9IHRoaXMuTWV0aG9kc0Zvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICAgICAgPy5zcGxpdCgnICcpXG4gICAgICAgICAgICAuZmlsdGVyKCh2OiBzdHJpbmcpID0+ICEhdik7XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuVHlwZSA9IHRoaXMuUHJvY2Vzc29yVHlwZTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Qcm9jZXNzb3IuVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnREZTJzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkRlZmF1bHRGaWxlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5EZWZhdWx0RmlsZUZvcm1Db250cm9sLnZhbHVlIHx8ICdpbmRleC5odG1sJztcblxuICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuT3JnYW5pemF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0/Lk9yZ2FuaXphdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlJlcG9zaXRvcnkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXT8uUmVwb3NpdG9yeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkJ1aWxkID0gdGhpcy5CdWlsZEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUGF0aCA9IHRoaXMuQnVpbGRQYXRoRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5Tb3VyY2VDb250cm9sTG9va3VwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05QTSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUGFja2FnZSA9IHRoaXMuUGFja2FnZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuVmVyc2lvbiA9IHRoaXMuVmVyc2lvbkZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnV29yZFByZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID0gdGhpcy5BUElSb290Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdaaXAnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlppcEZpbGUgPSB0aGlzLlppcEZpbGVGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnT0F1dGgnOlxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuU2NvcGVzID0gdGhpcy5TY29wZXNGb3JtQ29udHJvbC52YWx1ZS5zcGxpdCgnICcpO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5Ub2tlbkxvb2t1cCA9IHRoaXMuVG9rZW5Mb29rdXBGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yk9BdXRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5DbGllbnRJRCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5DbGllbnRJREZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50U2VjcmV0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkNsaWVudFNlY3JldEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdQcm94eSc6XG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5JbmJvdW5kUGF0aCA9IHRoaXMuSW5ib3VuZFBhdGhGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0FQSSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQVBJUm9vdCA9IHRoaXMuQVBJUm9vdEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuU2VjdXJpdHkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2VjdXJpdHlGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TUEFSb290ID0gdGhpcy5TUEFSb290Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1JlZGlyZWN0JzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkluY2x1ZGVSZXF1ZXN0ID1cbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLkluY2x1ZGVSZXF1ZXN0Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlBlcm1hbmVudCA9ICEhdGhpcy5QZXJtYW5lbnRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuUHJlc2VydmVNZXRob2QgPVxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuUHJlc2VydmVNZXRob2RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuUmVkaXJlY3QgPSB0aGlzLlJlZGlyZWN0Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWFwcC5Mb29rdXBDb25maWcuUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXggPSBgLyR7YXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXh9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNhdmVBcHBSZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgICAgIFByb2plY3RMb29rdXA6IHRoaXMuUHJvamVjdExvb2t1cCxcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uOiBhcHAsXG4gICAgICAgICAgICBBcHBsaWNhdGlvbkxvb2t1cDpcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbkxvb2t1cCB8fCBHdWlkLkNyZWF0ZVJhdygpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZWFjU3ZjLlNhdmVBcHBsaWNhdGlvbkFzQ29kZShzYXZlQXBwUmVxKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU2F2ZUZvcm1FdmVudC5lbWl0KHJlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBTZXRFZGl0aW5nQXBwbGljYXRpb24oYXBwTG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24gPSBuZXcgRWFDQXBwbGljYXRpb25Bc0NvZGUoKTtcbiAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb25Mb29rdXAgPSBhcHBMb29rdXA7XG5cbiAgICAgICAgdGhpcy5TZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFNvdXJjZUNvbnRyb2xDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5Jc1NvdXJjZUNvbnRyb2xWYWxpZCA9IHRoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbGlkO1xuICAgICAgICB0aGlzLmxpc3RCdWlsZFBhdGhzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFByb2Nlc3NvclR5cGVDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JUeXBlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5zZXR1cFByb2Nlc3NvclR5cGVTdWJGb3JtKCk7XG4gICAgfVxuXG4gICAgcHVibGljIExDVVR5cGVDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5MQ1VUeXBlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5zZXR1cExjdVR5cGVTdWJGb3JtKCk7XG4gICAgfVxuXG4gICAgLy9IRUxQRVJTXG5cbiAgICBwcm90ZWN0ZWQgY2xlYW51cExjdVR5cGVTdWJGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbWV0aG9kcycpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnYXBpUm9vdCcpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc2VjdXJpdHknKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc3BhUm9vdCcpO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdhcHBsaWNhdGlvbklkJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzb3VyY2VDb250cm9sJyk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2J1aWxkJyk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2NsaWVudElkJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdjbGllbnRTZWNyZXQnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3BhY2thZ2UnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3ZlcnNpb24nKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnemlwRmlsZScpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhbnVwUHJvY2Vzc29yVHlwZVN1YkZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdkZWZhdWx0RmlsZScpO1xuXG4gICAgICAgIC8vIHRoaXMuQXBwbGljYXRpb25Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnZGZzTGN1VHlwZScpO1xuXG4gICAgICAgIC8vIHRoaXMuQXBwbGljYXRpb25Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnb2F1dGhMY3VUeXBlJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzY29wZXMnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3Rva2VuTG9va3VwJyk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2luYm91bmRQYXRoJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwcm94eUxjdVR5cGUnKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnaW5jbHVkZVJlcXVlc3QnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3JlZGlyZWN0Jyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwZXJtYW5lbnQnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3ByZXNlcnZlTWV0aG9kJyk7XG5cbiAgICAgICAgdGhpcy5jbGVhbnVwTGN1VHlwZVN1YkZvcm0oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdEJ1aWxkUGF0aHMoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAnU291cmNlIENvbnRyb2w6ICcsXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW3RoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgIC5MaXN0QnVpbGRQYXRocyhcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW3RoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXVxuICAgICAgICAgICAgICAgICAgICA/Lk9yZ2FuaXphdGlvbixcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW3RoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXVxuICAgICAgICAgICAgICAgICAgICA/LlJlcG9zaXRvcnlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZ1tdPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoT3B0aW9ucyA9IHJlc3BvbnNlLk1vZGVsO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdidWlsZCBwYXRoIG9wdGlvbnM6ICcsIHRoaXMuQnVpbGRQYXRoT3B0aW9ucyk7XG5cbiAgICAgICAgICAgICAgICAvLyB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIC8vIGlmICh0aGlzLkJ1aWxkUGF0aE9wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5CdWlsZFBhdGhGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLkJ1aWxkUGF0aE9wdGlvbnNbMF0pO1xuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cExjdVR5cGVTdWJGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFudXBMY3VUeXBlU3ViRm9ybSgpO1xuXG4gICAgICAgIGlmICh0aGlzLkxDVVR5cGUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5MQ1VUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVUFQSUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdBcHBsaWNhdGlvblBvaW50ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTENVQXBwbGljYXRpb25Qb2ludGVyRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBMQ1VHaXRIdWJGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnR2l0SHViT0F1dGgnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTENVR2l0SHViT0F1dGhGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnV29yZFByZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVVdvcmRQcmVzc0Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAvLyBjYXNlICdOUE0nOlxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXR1cExDVU5QTUZvcm0oKTtcbiAgICAgICAgICAgICAgICAvLyAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVVNQQUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdaaXAnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTENVWmlwRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBTZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvclR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uUHJvY2Vzc29yPy5UeXBlIHx8ICcnO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdFRElUSU5HIEFQUCA9ICcsIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwO1xuICAgICAgICBpZiAodGhpcy5FZGl0aW5nQXBwbGljYXRpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICAgICAgICAgICAgcHJvY1R5cGU6IFt0aGlzLlByb2Nlc3NvclR5cGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2V0dXBEZnNGb3JtKCk7XG5cbiAgICAgICAgICAgIC8vIHRoaXMuc2V0dXBMY3VUeXBlU3ViRm9ybSgpO1xuICAgICAgICAgICAgdGhpcy5zZXR1cFByb2Nlc3NvclR5cGVTdWJGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VHaXRIdWJGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zb2xlLmxvZygnRWRpdGluZ0FwcGxpY2F0aW9uOiAnLCB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbik7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnc291cmNlQ29udHJvbCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlNvdXJjZUNvbnRyb2xMb29rdXAgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Jc1NvdXJjZUNvbnRyb2xWYWxpZCA9IHRoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbGlkO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2J1aWxkUGF0aCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlBhdGggfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnYnVpbGQnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5CdWlsZCB8fCAnbGF0ZXN0JyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxpc3RCdWlsZFBhdGhzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTENVQXBwbGljYXRpb25Qb2ludGVyRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnYXBwbGljYXRpb25JZCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LkFwcGxpY2F0aW9uSUQgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTENVU1BBRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnc3BhUm9vdCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlNQQVJvb3QgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTENVQVBJRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnbWV0aG9kcycsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG9va3VwQ29uZmlnPy5BbGxvd2VkTWV0aG9kcz8uam9pbihcbiAgICAgICAgICAgICAgICAgICAgJyAnXG4gICAgICAgICAgICAgICAgKSB8fCAnJyxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2FwaVJvb3QnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5BUElSb290IHx8ICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ3NlY3VyaXR5JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU2VjdXJpdHkgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTENVR2l0SHViT0F1dGhGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdjbGllbnRJZCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LkNsaWVudElEIHx8ICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2NsaWVudFNlY3JldCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LkNsaWVudFNlY3JldCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VXb3JkUHJlc3NGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcGlSb290JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQVBJUm9vdCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBQcm94eUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTENVVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5UeXBlIHx8ICcnO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2luYm91bmRQYXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Qcm9jZXNzb3I/LkluYm91bmRQYXRoIHx8ICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2xjdVR5cGUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKHRoaXMuTENVVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFJlZGlyZWN0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAncmVkaXJlY3QnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uUmVkaXJlY3QgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAncGVybWFuZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Qcm9jZXNzb3I/LlBlcm1hbmVudCB8fCBmYWxzZSxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ3ByZXNlcnZlTWV0aG9kJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Qcm9jZXNzb3I/LlByZXNlcnZlTWV0aG9kIHx8IGZhbHNlLFxuICAgICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnaW5jbHVkZVJlcXVlc3QnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uSW5jbHVkZVJlcXVlc3QgfHwgZmFsc2UsXG4gICAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkRldGVybWluZVRvb2x0aXBUZXh0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwT0F1dGhGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxDVVR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uVHlwZSB8fCAnJztcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdzY29wZXMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uU2NvcGVzPy5Kb2luKCcgJykgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAndG9rZW5Mb29rdXAnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uVG9rZW5Mb29rdXAgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnbGN1VHlwZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5MQ1VUeXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTENVWmlwRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnemlwRmlsZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlppcEZpbGUgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwRGZzRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5MQ1VUeXBlID0gdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlR5cGUgfHwgJyc7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnZGVmYXVsdEZpbGUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uRGVmYXVsdEZpbGUgfHwgJ2luZGV4Lmh0bWwnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2xjdVR5cGUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKHRoaXMuTENVVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFByb2Nlc3NvclR5cGVTdWJGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFudXBQcm9jZXNzb3JUeXBlU3ViRm9ybSgpO1xuXG4gICAgICAgIGlmICh0aGlzLlByb2Nlc3NvclR5cGUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5Qcm9jZXNzb3JUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnREZTJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cERmc0Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdPQXV0aCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBPQXV0aEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdQcm94eSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBQcm94eUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBSZWRpcmVjdEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldHVwTGN1VHlwZVN1YkZvcm0oKTtcbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIGNsYXNzPVwicHJvY2Vzc29yLWRldGFpbHMtZm9ybVwiXG4gICAgW2Zvcm1Hcm91cF09XCJQcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwXCJcbiAgICAobmdTdWJtaXQpPVwiU2F2ZVByb2Nlc3NvckRldGFpbHMoKVwiXG4+XG4gICAgPCEtLSA8bWF0LWNhcmQgY2xhc3M9XCJzcHJlYWQgZmxvdy1jYXJkXCI+IC0tPlxuICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC10aXRsZT4gUHJvY2Vzc29yIERldGFpbHMgPC9tYXQtY2FyZC10aXRsZT5cbiAgICA8L21hdC1jYXJkLWhlYWRlcj4gLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZjIG9mIFZhbGlkRm9ybUNvbnRyb2xzXCI+IC0tPlxuICAgICAgICA8c2tlbGV0b24tYmxvY2tcbiAgICAgICAgICAgIFtpZF09XCJmY1wiXG4gICAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgICAgZWZmZWN0PVwid2F2ZVwiXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuICAgICAgICA8c2tlbGV0b24tYmxvY2tcbiAgICAgICAgICAgIFtpZF09XCJmY1wiXG4gICAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgICAgZWZmZWN0PVwid2F2ZVwiXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuICAgICAgICA8c2tlbGV0b24tYmxvY2tcbiAgICAgICAgICAgIFtpZF09XCJmY1wiXG4gICAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgICAgZWZmZWN0PVwid2F2ZVwiXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuICAgICAgICA8c2tlbGV0b24tYmxvY2tcbiAgICAgICAgICAgIFtpZF09XCJmY1wiXG4gICAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgICAgZWZmZWN0PVwid2F2ZVwiXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cblxuICAgICAgICA8bGN1LWxvYWRlclxuICAgICAgICAgICAgKm5nSWY9XCJMQ1VUeXBlID09PSAnUmVkaXJlY3QnXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cIkxvYWRpbmdcIlxuICAgICAgICA+PC9sY3UtbG9hZGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gRU5EIFNLRUxFVE9OIC0tPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nXCI+XG4gICAgICAgIDwhLS0gPG1hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGVcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2NUeXBlXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlByb2Nlc3NvclR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJERlNcIj5WaWV3IFBhY2thZ2U8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlJlZGlyZWN0XCI+UmVkaXJlY3Q8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlByb3h5XCI+UHJveHk8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIk9BdXRoXCI+T0F1dGg8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiUHJvY2Vzc29yVHlwZVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0RGUydcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRlZmF1bHQgRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0RmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxjdVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJMQ1VUeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiTlBNXCI+TlBNPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkdpdEh1YlwiPkdpdEh1YjwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJXb3JkUHJlc3NcIj5Xb3JkUHJlc3M8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiWmlwXCI+WmlwPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxkaXYgW25nU3dpdGNoXT1cIkxDVVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0dpdEh1YidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxjdS1zb3VyY2UtY29udHJvbC1mb3JtLWNvbnRyb2xzXG4gICAgICAgICAgICAgICAgW2J1aWxkLXBhdGhdPVwiRWRpdGluZ0FwcGxpY2F0aW9uPy5Mb3dDb2RlVW5pdD8uUGF0aFwiXG4gICAgICAgICAgICAgICAgW2Zvcm0tZ3JvdXBdPVwiUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgW3NvdXJjZS1jb250cm9sXT1cIkRlZmF1bHRTb3VyY2VDb250cm9sXCJcbiAgICAgICAgICAgICAgICBbdXNlLWJyYW5jaGVzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbdXNlLWJ1aWxkLXBhdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2xjdS1zb3VyY2UtY29udHJvbC1mb3JtLWNvbnRyb2xzPiAtLT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNvdXJjZSBDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic291cmNlQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiU291cmNlQ29udHJvbENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjTG9va3VwIG9mIFNvdXJjZUNvbnRyb2xMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNjTG9va3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2NMb29rdXAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1vcHRpb24gdmFsdWU9XCJaaXBcIj5aaXA8L21hdC1vcHRpb24+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIklzU291cmNlQ29udHJvbFZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidWlsZFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1aWxkIFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ1aWxkUGF0aCBvZiBCdWlsZFBhdGhPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImJ1aWxkUGF0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1aWxkUGF0aCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBidWlsZCBwYXRoIGlkZW50aWZpZXMgd2hpY2ggYnVpbGQgYWN0aW9uIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBmb3IgeW91ciBjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIklzU291cmNlQ29udHJvbFZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCdWlsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1aWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IEJ1aWxkOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZ0FwcGxpY2F0aW9uPy5Mb3dDb2RlVW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uQ3VycmVudEJ1aWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidOUE0nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU291cmNlIENvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzb3VyY2VDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJTb3VyY2VDb250cm9sQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NMb29rdXAgb2YgU291cmNlQ29udHJvbExvb2t1cHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2NMb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzY0xvb2t1cCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsY3UtbnBtLXBhY2thZ2Utc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25wbS1wYWNrYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0Py5QYWNrYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnBtLXBhY2thZ2UtdmVyc2lvbl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZ0FwcGxpY2F0aW9uPy5Mb3dDb2RlVW5pdD8uVmVyc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm0tZ3JvdXBdPVwiUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9sY3UtbnBtLXBhY2thZ2Utc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVudCBWZXJzaW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRpbmdBcHBsaWNhdGlvbj8uTG93Q29kZVVuaXQ/LkN1cnJlbnRWZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidXb3JkUHJlc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFQSSBSb290XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBpUm9vdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidaaXAnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlppcCBGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiemlwRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidPQXV0aCdcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNjb3BlcyAoc3BhY2Ugc2VwYXJhdGVkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzY29wZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUb2tlbiBMb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidG9rZW5Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsY3VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiTENVVHlwZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkdpdEh1Yk9BdXRoXCI+R2l0SHViPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxkaXYgW25nU3dpdGNoXT1cIkxDVVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0dpdEh1Yk9BdXRoJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDbGllbnQgSURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjbGllbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ2xpZW50IFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNsaWVudFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidQcm94eSdcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkluYm91bmQgUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbmJvdW5kUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxjdVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJMQ1VUeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQVBJXCI+QVBJPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNQQVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlNpbmdsZSBQYWdlIEFwcGxpY2F0aW9uPC9tYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiTENVVHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInQVBJJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBUEkgUm9vdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFwaVJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFsbG93ZWQgTWV0aG9kcyAoc2VwYXJhdGUgd2l0aCBzcGFjZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VjdXJpdHkgKHtoZWFkZXJ9fnt2YWx1ZX0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VjdXJpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInU1BBJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTUEEgUm9vdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNwYVJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInUmVkaXJlY3QnXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJSZWRpcmVjdCBVUkxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVkaXJlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBlcm1hbmVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIElzIFBlcm1hbmVudD9cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwcmVhZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmVzZXJ2ZU1ldGhvZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFByZXNlcnZlIE1ldGhvZD9cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcHJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJEZXRlcm1pbmVUb29sdGlwVGV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyByZWRpcmVjdFRvb2x0aXAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwcmVhZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbmNsdWRlUmVxdWVzdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGUgUGF0aCBhbmQgUXVlcnk/XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlNob3VsZCB0aGUgcmVkaXJlY3QgaW5jbHVkZSB0aGUgcGF0aCBhbmQgcXVlcnk/XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPC9tYXQtY2FyZC1jb250ZW50PiAtLT5cbiAgICAgICAgPCEtLSA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPiAtLT5cblxuICAgICAgICA8IS0tIDxidXR0b24gXG4gICAgICAgICAgKm5nSWY9XCJIYXNTYXZlQnV0dG9uICYmICFMb2FkaW5nXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICAgICAgZnhGbGV4PVwiMTAwJVwiIFxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC52YWxpZCB8fCAhUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5kaXJ0eVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgICAgICBTYXZlIFByb2Nlc3NvciBEZXRhaWxzXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICAgICAgPCEtLSA8bGN1LWxvYWRlciAqbmdJZj1cIkhhc1NhdmVCdXR0b25cIiBbbG9hZGluZ109XCJMb2FkaW5nXCI+PC9sY3UtbG9hZGVyPiAtLT5cblxuICAgICAgICA8IS0tIDwvbWF0LWNhcmQtYWN0aW9ucz4gLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIDwvbWF0LWNhcmQ+IC0tPlxuPC9mb3JtPlxuIl19
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9wcm9jZXNzb3ItZGV0YWlscy1mb3JtL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvcHJvY2Vzc29yLWRldGFpbHMtZm9ybS9wcm9jZXNzb3ItZGV0YWlscy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlILFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBdUIsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hELE9BQU8sRUFDSCxvQkFBb0IsR0FHdkIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVk1QixNQUFNLE9BQU8sNkJBQTZCO0lBaUp0QyxZQUNjLFdBQW9DLEVBQ3BDLFFBQXFCLEVBQ3JCLE1BQWtCO1FBRmxCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUEvSEQsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUM1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O2tCQUx6QyxTQUFTOytCQUNJLDRCQUE0QjtpS0FNL0Isa0JBQWtCO3NCQUR4QixLQUFLO3VCQUFDLHFCQUFxQjtnQkFJckIsd0JBQXdCO3NCQUQ5QixLQUFLO3VCQUFDLDRCQUE0QjtnQkFJNUIsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxhQUFhO2dCQUliLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUlqQixVQUFVO3NCQURoQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsb0JBQW9CO3NCQUQxQixLQUFLO3VCQUFDLHdCQUF3QjtnQkFJeEIsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWhCLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBHdWlkIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBFYUNBcHBsaWNhdGlvbkFzQ29kZSxcbiAgICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgICBFYUNTb3VyY2VDb250cm9sLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRWFDU2VydmljZSxcbiAgICBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgnZWRpdGluZy1hcHBsaWNhdGlvbicpXG4gICAgcHVibGljIEVkaXRpbmdBcHBsaWNhdGlvbjogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBASW5wdXQoJ2VkaXRpbmctYXBwbGljYXRpb24tbG9va3VwJylcbiAgICBwdWJsaWMgRWRpdGluZ0FwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50JylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gICAgQElucHV0KCdoYXMtc2F2ZS1idXR0b24nKVxuICAgIHB1YmxpYyBIYXNTYXZlQnV0dG9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdpcy1kaXNhYmxlZCcpXG4gICAgcHVibGljIElzRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoJ3NvdXJjZS1jb250cm9sLWxvb2t1cHMnKVxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwczogQXJyYXk8c3RyaW5nPjtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXAnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2xvYWRpbmcnKVxuICAgIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgnc2F2ZS1mb3JtLWV2ZW50JylcbiAgICBwdWJsaWMgU2F2ZUZvcm1FdmVudDogRXZlbnRFbWl0dGVyPHt9PjtcblxuICAgIHB1YmxpYyBnZXQgQVBJUm9vdEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmFwaVJvb3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBCdWlsZEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmJ1aWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQnVpbGRQYXRoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuYnVpbGRQYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQ2xpZW50SURGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5jbGllbnRJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IENsaWVudFNlY3JldEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmNsaWVudFNlY3JldDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERlZmF1bHRGaWxlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuZGVmYXVsdEZpbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZWZhdWx0U291cmNlQ29udHJvbCgpOiBFYUNTb3VyY2VDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIE9yZ2FuaXphdGlvbjogdGhpcy5FZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0Py5Pcmdhbml6YXRpb24sXG4gICAgICAgICAgICBSZXBvc2l0b3J5OiB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uTG93Q29kZVVuaXQ/LlJlcG9zaXRvcnksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBJbmJvdW5kUGF0aEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmluYm91bmRQYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgSW5jbHVkZVJlcXVlc3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5pbmNsdWRlUmVxdWVzdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE1ldGhvZHNGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5tZXRob2RzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUGFja2FnZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnBhY2thZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBQZXJtYW5lbnRGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5wZXJtYW5lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBQcmVzZXJ2ZU1ldGhvZEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnByZXNlcnZlTWV0aG9kO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUmVkaXJlY3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5yZWRpcmVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNjb3Blc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnNjb3BlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNlY3VyaXR5Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuc2VjdXJpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTb3VyY2VDb250cm9sRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuc291cmNlQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNQQVJvb3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5zcGFSb290O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgVG9rZW5Mb29rdXBGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy50b2tlbkxvb2t1cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFZhbGlkRm9ybUNvbnRyb2xzKCk6IEFycmF5PEFic3RyYWN0Q29udHJvbD4ge1xuICAgICAgICBsZXQgdmZjOiBBcnJheTxBYnN0cmFjdENvbnRyb2w+ID0gbmV3IEFycmF5PEFic3RyYWN0Q29udHJvbD4oKTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBpbiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgICAgICB2ZmMucHVzaChjb250cm9sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlZGQz1cIiwgdmZjKVxuICAgICAgICByZXR1cm4gdmZjO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgVmVyc2lvbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnZlcnNpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBaaXBGaWxlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuemlwRmlsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoT3B0aW9uczogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgSXNQZXJtYW5lbnQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgSXNQcmVzZXJ2ZTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBJc1NvdXJjZUNvbnRyb2xWYWxpZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBMQ1VUeXBlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmVkaXJlY3RUb29sdGlwOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgU291cmNlQ29udHJvbHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDU291cmNlQ29udHJvbCB9O1xuXG4gICAgcHVibGljIFByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBQcm9jZXNzb3JUeXBlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGFwcHNGbG93U3ZjOiBBcHBsaWNhdGlvbnNGbG93U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICcnO1xuXG4gICAgICAgIHRoaXMuSGFzU2F2ZUJ1dHRvbiA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5TYXZlRm9ybUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzKSB7XG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzID0gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLkNyZWF0ZU5ld0FwcGxpY2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cCkge1xuICAgICAgICAgICAgdGhpcy5TZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZWxzZSBpZiAodGhpcy5FZGl0aW5nQXBwbGljYXRpb24gJiYgIXRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cCkge1xuICAgICAgICAvLyAgICAgdGhpcy5TZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyBpZiAodGhpcy5Jc0Rpc2FibGVkKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNldHVwUHJvY2Vzc29yRGV0YWlsc0Zvcm0oKTtcbiAgICAgICAgLy8gICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlTmV3QXBwbGljYXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU2V0RWRpdGluZ0FwcGxpY2F0aW9uKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBEZXRlcm1pbmVUb29sdGlwVGV4dCgpIHtcbiAgICAgICAgbGV0IHBlcm1hbmVudFZhbHVlID0gdGhpcy5QZXJtYW5lbnRGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgbGV0IHByZXNlcnZlVmFsdWUgPSB0aGlzLlByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKHBlcm1hbmVudFZhbHVlID09PSB0cnVlICYmIHByZXNlcnZlVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICczMDEg4oCTIFBlcm1hbmVudCBhbmQgTm90IFByZXNlcnZlJztcbiAgICAgICAgfSBlbHNlIGlmIChwZXJtYW5lbnRWYWx1ZSA9PT0gZmFsc2UgJiYgcHJlc2VydmVWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb29sdGlwID0gJzMwMiDigJMgTm90IFBlcm1hbmVudCBhbmQgTm90IFByZXNlcnZlJztcbiAgICAgICAgfSBlbHNlIGlmIChwZXJtYW5lbnRWYWx1ZSA9PT0gZmFsc2UgJiYgcHJlc2VydmVWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvb2x0aXAgPSAnMzA3IOKAkyBOb3QgUGVybWFuZW50IGFuZCBQcmVzZXJ2ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAocGVybWFuZW50VmFsdWUgPT09IHRydWUgJiYgcHJlc2VydmVWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvb2x0aXAgPSAnMzA4IOKAkyBQZXJtYW5lbnQgYW5kIFByZXNlcnZlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlUHJvY2Vzc29yRGV0YWlscygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXBwOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uO1xuICAgICAgICBhcHAuTG9va3VwQ29uZmlnLkFsbG93ZWRNZXRob2RzID0gdGhpcy5NZXRob2RzRm9ybUNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgICAgIC5maWx0ZXIoKHY6IHN0cmluZykgPT4gISF2KTtcbiAgICAgICAgYXBwLlByb2Nlc3Nvci5UeXBlID0gdGhpcy5Qcm9jZXNzb3JUeXBlO1xuXG4gICAgICAgIHN3aXRjaCAoYXBwLlByb2Nlc3Nvci5UeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdERlMnOlxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuRGVmYXVsdEZpbGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLkRlZmF1bHRGaWxlRm9ybUNvbnRyb2wudmFsdWUgfHwgJ2luZGV4Lmh0bWwnO1xuXG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLkxDVVR5cGUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnR2l0SHViJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5Pcmdhbml6YXRpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXT8uT3JnYW5pemF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUmVwb3NpdG9yeSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdPy5SZXBvc2l0b3J5O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQnVpbGQgPSB0aGlzLkJ1aWxkRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5QYXRoID0gdGhpcy5CdWlsZFBhdGhGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTlBNJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5QYWNrYWdlID0gdGhpcy5QYWNrYWdlRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5WZXJzaW9uID0gdGhpcy5WZXJzaW9uRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdXb3JkUHJlc3MnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkFQSVJvb3QgPSB0aGlzLkFQSVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuWmlwRmlsZSA9IHRoaXMuWmlwRmlsZUZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdPQXV0aCc6XG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5TY29wZXMgPSB0aGlzLlNjb3Blc0Zvcm1Db250cm9sLnZhbHVlLnNwbGl0KCcgJyk7XG5cbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlRva2VuTG9va3VwID0gdGhpcy5Ub2tlbkxvb2t1cEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLkxDVVR5cGUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnR2l0SHViT0F1dGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkNsaWVudElEID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkNsaWVudElERm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5DbGllbnRTZWNyZXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQ2xpZW50U2VjcmV0Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1Byb3h5JzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkluYm91bmRQYXRoID0gdGhpcy5JbmJvdW5kUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLkxDVVR5cGUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID0gdGhpcy5BUElSb290Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TZWN1cml0eSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdTUEEnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNQQVJvb3QgPSB0aGlzLlNQQVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnUmVkaXJlY3QnOlxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5jbHVkZVJlcXVlc3QgPVxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuSW5jbHVkZVJlcXVlc3RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuUGVybWFuZW50ID0gISF0aGlzLlBlcm1hbmVudEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5QcmVzZXJ2ZU1ldGhvZCA9XG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5QcmVzZXJ2ZU1ldGhvZEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5SZWRpcmVjdCA9IHRoaXMuUmVkaXJlY3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAvJHthcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2F2ZUFwcFJlcTogU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgUHJvamVjdExvb2t1cDogdGhpcy5Qcm9qZWN0TG9va3VwLFxuICAgICAgICAgICAgQXBwbGljYXRpb246IGFwcCxcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwOlxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uTG9va3VwIHx8IEd1aWQuQ3JlYXRlUmF3KCksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5lYWNTdmMuU2F2ZUFwcGxpY2F0aW9uQXNDb2RlKHNhdmVBcHBSZXEpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5TYXZlRm9ybUV2ZW50LmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFNldEVkaXRpbmdBcHBsaWNhdGlvbihhcHBMb29rdXA6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbiA9IG5ldyBFYUNBcHBsaWNhdGlvbkFzQ29kZSgpO1xuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbkxvb2t1cCA9IGFwcExvb2t1cDtcblxuICAgICAgICB0aGlzLlNldHVwUHJvY2Vzc29yRGV0YWlsc0Zvcm0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU291cmNlQ29udHJvbENoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLklzU291cmNlQ29udHJvbFZhbGlkID0gdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsaWQ7XG4gICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUHJvY2Vzc29yVHlwZUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvclR5cGUgPSBldmVudC52YWx1ZTtcblxuICAgICAgICB0aGlzLnNldHVwUHJvY2Vzc29yVHlwZVN1YkZvcm0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgTENVVHlwZUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLkxDVVR5cGUgPSBldmVudC52YWx1ZTtcblxuICAgICAgICB0aGlzLnNldHVwTGN1VHlwZVN1YkZvcm0oKTtcbiAgICB9XG5cbiAgICAvL0hFTFBFUlNcblxuICAgIHByb3RlY3RlZCBjbGVhbnVwTGN1VHlwZVN1YkZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdtZXRob2RzJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdhcGlSb290Jyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzZWN1cml0eScpO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzcGFSb290Jyk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2FwcGxpY2F0aW9uSWQnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3NvdXJjZUNvbnRyb2wnKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnYnVpbGQnKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnY2xpZW50SWQnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2NsaWVudFNlY3JldCcpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgncGFja2FnZScpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgndmVyc2lvbicpO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCd6aXBGaWxlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNsZWFudXBQcm9jZXNzb3JUeXBlU3ViRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2RlZmF1bHRGaWxlJyk7XG5cbiAgICAgICAgLy8gdGhpcy5BcHBsaWNhdGlvbkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdkZnNMY3VUeXBlJyk7XG5cbiAgICAgICAgLy8gdGhpcy5BcHBsaWNhdGlvbkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdvYXV0aExjdVR5cGUnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3Njb3BlcycpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgndG9rZW5Mb29rdXAnKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnaW5ib3VuZFBhdGgnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3Byb3h5TGN1VHlwZScpO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdpbmNsdWRlUmVxdWVzdCcpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgncmVkaXJlY3QnKTtcbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3Blcm1hbmVudCcpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgncHJlc2VydmVNZXRob2QnKTtcblxuICAgICAgICB0aGlzLmNsZWFudXBMY3VUeXBlU3ViRm9ybSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0QnVpbGRQYXRocygpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAgICAgLy8gICAgICdTb3VyY2UgQ29udHJvbDogJyxcbiAgICAgICAgLy8gICAgIHRoaXMuU291cmNlQ29udHJvbHNbdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVdXG4gICAgICAgIC8vICk7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkxpc3RCdWlsZFBhdGhzKFxuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVdXG4gICAgICAgICAgICAgICAgICAgID8uT3JnYW5pemF0aW9uLFxuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVdXG4gICAgICAgICAgICAgICAgICAgID8uUmVwb3NpdG9yeVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nW10+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2J1aWxkIHBhdGggb3B0aW9uczogJywgdGhpcy5CdWlsZFBhdGhPcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIC8vIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuQnVpbGRQYXRoT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuQnVpbGRQYXRoT3B0aW9uc1swXSk7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwTGN1VHlwZVN1YkZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYW51cExjdVR5cGVTdWJGb3JtKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdMQ1UgVHlwZTogJywgdGhpcy5MQ1VUeXBlKTtcblxuICAgICAgICBpZiAodGhpcy5MQ1VUeXBlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuTENVVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0FQSSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBMQ1VBUElGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnQXBwbGljYXRpb25Qb2ludGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVUFwcGxpY2F0aW9uUG9pbnRlckZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdHaXRIdWInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTENVR2l0SHViRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yk9BdXRoJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVUdpdEh1Yk9BdXRoRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ1dvcmRQcmVzcyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBMQ1VXb3JkUHJlc3NGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnTlBNJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cExDVU5QTUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdTUEEnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTENVU1BBRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBMQ1VaaXBGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNldHVwUHJvY2Vzc29yRGV0YWlsc0Zvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Qcm9jZXNzb3I/LlR5cGUgfHwgJyc7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0VESVRJTkcgQVBQID0gJywgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24pO1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA7XG4gICAgICAgIGlmICh0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBwcm9jVHlwZTogW3RoaXMuUHJvY2Vzc29yVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gdGhpcy5zZXR1cERmc0Zvcm0oKTtcblxuICAgICAgICAgICAgLy8gdGhpcy5zZXR1cExjdVR5cGVTdWJGb3JtKCk7XG4gICAgICAgICAgICB0aGlzLnNldHVwUHJvY2Vzc29yVHlwZVN1YkZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cExDVUdpdEh1YkZvcm0oKTogdm9pZCB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdFZGl0aW5nQXBwbGljYXRpb246ICcsIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdzb3VyY2VDb250cm9sJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLklzU291cmNlQ29udHJvbFZhbGlkID0gdGhpcy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsaWQ7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnYnVpbGRQYXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uUGF0aCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdidWlsZCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LkJ1aWxkIHx8ICdsYXRlc3QnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VBcHBsaWNhdGlvblBvaW50ZXJGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbklkJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQXBwbGljYXRpb25JRCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VTUEFGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdzcGFSb290JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU1BBUm9vdCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VBUElGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdtZXRob2RzJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb29rdXBDb25maWc/LkFsbG93ZWRNZXRob2RzPy5qb2luKFxuICAgICAgICAgICAgICAgICAgICAnICdcbiAgICAgICAgICAgICAgICApIHx8ICcnLFxuICAgICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnYXBpUm9vdCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LkFQSVJvb3QgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnc2VjdXJpdHknLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5TZWN1cml0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VOUE1Gb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdzb3VyY2VDb250cm9sJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VHaXRIdWJPQXV0aEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2NsaWVudElkJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQ2xpZW50SUQgfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnY2xpZW50U2VjcmV0JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQ2xpZW50U2VjcmV0IHx8ICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cExDVVdvcmRQcmVzc0Zvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2FwaVJvb3QnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5BUElSb290IHx8ICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFByb3h5Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5MQ1VUeXBlID0gdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlR5cGUgfHwgJyc7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnaW5ib3VuZFBhdGgnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uSW5ib3VuZFBhdGggfHwgJycsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnbGN1VHlwZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5MQ1VUeXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwUmVkaXJlY3RGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdyZWRpcmVjdCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5SZWRpcmVjdCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdwZXJtYW5lbnQnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uUGVybWFuZW50IHx8IGZhbHNlLFxuICAgICAgICAgICAgICAgIFtdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAncHJlc2VydmVNZXRob2QnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uUHJlc2VydmVNZXRob2QgfHwgZmFsc2UsXG4gICAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdpbmNsdWRlUmVxdWVzdCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5JbmNsdWRlUmVxdWVzdCB8fCBmYWxzZSxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV0ZXJtaW5lVG9vbHRpcFRleHQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBPQXV0aEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTENVVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5UeXBlIHx8ICcnO1xuXG4gICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ3Njb3BlcycsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5TY29wZXM/LkpvaW4oJyAnKSB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICd0b2tlbkxvb2t1cCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5Ub2tlbkxvb2t1cCB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdsY3VUeXBlJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbCh0aGlzLkxDVVR5cGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBMQ1VaaXBGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICd6aXBGaWxlJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uWmlwRmlsZSB8fCAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBEZnNGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxDVVR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uVHlwZSB8fCAnJztcblxuICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdkZWZhdWx0RmlsZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5EZWZhdWx0RmlsZSB8fCAnaW5kZXguaHRtbCcsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnbGN1VHlwZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5MQ1VUeXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwUHJvY2Vzc29yVHlwZVN1YkZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYW51cFByb2Nlc3NvclR5cGVTdWJGb3JtKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuUHJvY2Vzc29yVHlwZSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLlByb2Nlc3NvclR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdERlMnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHVwRGZzRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ09BdXRoJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cE9BdXRoRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ1Byb3h5JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cFByb3h5Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ1JlZGlyZWN0JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cFJlZGlyZWN0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0dXBMY3VUeXBlU3ViRm9ybSgpO1xuICAgIH1cbn1cbiIsIjxmb3JtXG4gICAgY2xhc3M9XCJwcm9jZXNzb3ItZGV0YWlscy1mb3JtXCJcbiAgICBbZm9ybUdyb3VwXT1cIlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTYXZlUHJvY2Vzc29yRGV0YWlscygpXCJcbj5cbiAgICA8IS0tIDxtYXQtY2FyZCBjbGFzcz1cInNwcmVhZCBmbG93LWNhcmRcIj4gLS0+XG4gICAgPCEtLSA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgPG1hdC1jYXJkLXRpdGxlPiBQcm9jZXNzb3IgRGV0YWlscyA8L21hdC1jYXJkLXRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPiAtLT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJMb2FkaW5nXCI+XG4gICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmMgb2YgVmFsaWRGb3JtQ29udHJvbHNcIj4gLS0+XG4gICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgW2lkXT1cImZjXCJcbiAgICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgICBlZmZlY3Q9XCJ3YXZlXCJcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgW2lkXT1cImZjXCJcbiAgICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgICBlZmZlY3Q9XCJ3YXZlXCJcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgW2lkXT1cImZjXCJcbiAgICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgICBlZmZlY3Q9XCJ3YXZlXCJcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgIDxza2VsZXRvbi1ibG9ja1xuICAgICAgICAgICAgW2lkXT1cImZjXCJcbiAgICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgICBlZmZlY3Q9XCJ3YXZlXCJcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgIDwhLS0gPC9uZy1jb250YWluZXI+IC0tPlxuXG4gICAgICAgIDxsY3UtbG9hZGVyXG4gICAgICAgICAgICAqbmdJZj1cIkxDVVR5cGUgPT09ICdSZWRpcmVjdCdcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiTG9hZGluZ1wiXG4gICAgICAgID48L2xjdS1sb2FkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBFTkQgU0tFTEVUT04gLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUxvYWRpbmdcIj5cbiAgICAgICAgPCEtLSA8bWF0LWNhcmQtY29udGVudD4gLS0+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZVwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJvY1R5cGVcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiUHJvY2Vzc29yVHlwZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkRGU1wiPlZpZXcgUGFja2FnZTwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUmVkaXJlY3RcIj5SZWRpcmVjdDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUHJveHlcIj5Qcm94eTwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiT0F1dGhcIj5PQXV0aDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJQcm9jZXNzb3JUeXBlXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInREZTJ1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRGVmYXVsdCBGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGN1VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkxDVVR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJOUE1cIj5OUE08L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiR2l0SHViXCI+R2l0SHViPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIldvcmRQcmVzc1wiPldvcmRQcmVzczwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJaaXBcIj5aaXA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiTENVVHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInR2l0SHViJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGN1LXNvdXJjZS1jb250cm9sLWZvcm0tY29udHJvbHNcbiAgICAgICAgICAgICAgICBbYnVpbGQtcGF0aF09XCJFZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0Py5QYXRoXCJcbiAgICAgICAgICAgICAgICBbZm9ybS1ncm91cF09XCJQcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwXCJcbiAgICAgICAgICAgICAgICBbc291cmNlLWNvbnRyb2xdPVwiRGVmYXVsdFNvdXJjZUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFt1c2UtYnJhbmNoZXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt1c2UtYnVpbGQtcGF0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvbGN1LXNvdXJjZS1jb250cm9sLWZvcm0tY29udHJvbHM+IC0tPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU291cmNlIENvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzb3VyY2VDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJTb3VyY2VDb250cm9sQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NMb29rdXAgb2YgU291cmNlQ29udHJvbExvb2t1cHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2NMb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzY0xvb2t1cCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bWF0LW9wdGlvbiB2YWx1ZT1cIlppcFwiPlppcDwvbWF0LW9wdGlvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiSXNTb3VyY2VDb250cm9sVmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1aWxkUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQnVpbGQgUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnVpbGRQYXRoIG9mIEJ1aWxkUGF0aE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnVpbGRQYXRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYnVpbGRQYXRoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGJ1aWxkIHBhdGggaWRlbnRpZmllcyB3aGljaCBidWlsZCBhY3Rpb24gdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGZvciB5b3VyIGNvbmZpZ3VyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiSXNTb3VyY2VDb250cm9sVmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1aWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnVpbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgQnVpbGQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5DdXJyZW50QnVpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ05QTSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTb3VyY2UgQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNvdXJjZUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlNvdXJjZUNvbnRyb2xDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzY0xvb2t1cCBvZiBTb3VyY2VDb250cm9sTG9va3Vwc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzY0xvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNjTG9va3VwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxjdS1ucG0tcGFja2FnZS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbnBtLXBhY2thZ2VdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRpbmdBcHBsaWNhdGlvbj8uTG93Q29kZVVuaXQ/LlBhY2thZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtucG0tcGFja2FnZS12ZXJzaW9uXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0Py5WZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybS1ncm91cF09XCJQcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2xjdS1ucG0tcGFja2FnZS1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IFZlcnNpb246XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZ0FwcGxpY2F0aW9uPy5Mb3dDb2RlVW5pdD8uQ3VycmVudFZlcnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1dvcmRQcmVzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQVBJIFJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcGlSb290XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1ppcCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWmlwIEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ6aXBGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ09BdXRoJ1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2NvcGVzIChzcGFjZSBzZXBhcmF0ZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNjb3Blc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRva2VuIExvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0b2tlbkxvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxjdVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJMQ1VUeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiR2l0SHViT0F1dGhcIj5HaXRIdWI8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiTENVVHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInR2l0SHViT0F1dGgnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNsaWVudCBJRFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNsaWVudElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDbGllbnQgU2VjcmV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2xpZW50U2VjcmV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1Byb3h5J1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSW5ib3VuZCBQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluYm91bmRQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGN1VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkxDVVR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJBUElcIj5BUEk8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU1BBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+U2luZ2xlIFBhZ2UgQXBwbGljYXRpb248L21hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJMQ1VUeXBlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidBUEknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFQSSBSb290XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBpUm9vdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWxsb3dlZCBNZXRob2RzIChzZXBhcmF0ZSB3aXRoIHNwYWNlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWN1cml0eSAoe2hlYWRlcn1+e3ZhbHVlfSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidTUEEnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNQQSBSb290XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3BhUm9vdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidSZWRpcmVjdCdcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlJlZGlyZWN0IFVSTFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWRpcmVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcHJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGVybWFuZW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSXMgUGVybWFuZW50P1xuICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByZXNlcnZlTWV0aG9kXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJlc2VydmUgTWV0aG9kP1xuICAgICAgICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwcmVhZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIkRldGVybWluZVRvb2x0aXBUZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IHJlZGlyZWN0VG9vbHRpcCB9fVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9fb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluY2x1ZGVSZXF1ZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZSBQYXRoIGFuZCBRdWVyeT9cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcHJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiU2hvdWxkIHRoZSByZWRpcmVjdCBpbmNsdWRlIHRoZSBwYXRoIGFuZCBxdWVyeT9cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSA8L21hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuICAgICAgICA8IS0tIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+IC0tPlxuXG4gICAgICAgIDwhLS0gPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cIkhhc1NhdmVCdXR0b24gJiYgIUxvYWRpbmdcIlxuICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIiBcbiAgICAgICAgICBmeEZsZXg9XCIxMDAlXCIgXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFQcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnZhbGlkIHx8ICFQcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmRpcnR5XCI+XG4gICAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICAgIFNhdmUgUHJvY2Vzc29yIERldGFpbHNcbiAgICAgICAgPC9idXR0b24+IC0tPlxuICAgICAgICA8IS0tIDxsY3UtbG9hZGVyICpuZ0lmPVwiSGFzU2F2ZUJ1dHRvblwiIFtsb2FkaW5nXT1cIkxvYWRpbmdcIj48L2xjdS1sb2FkZXI+IC0tPlxuXG4gICAgICAgIDwhLS0gPC9tYXQtY2FyZC1hY3Rpb25zPiAtLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gPC9tYXQtY2FyZD4gLS0+XG48L2Zvcm0+XG4iXX0=
|
@@ -35,7 +35,9 @@ export class NewApplicationDialogComponent {
|
|
35
35
|
this.SourceControlLookups = Object.keys(this.Environment.Sources || {});
|
36
36
|
}
|
37
37
|
});
|
38
|
-
this.
|
38
|
+
if (!this.NewApplicationLookup) {
|
39
|
+
this.SetupApplication(Guid.CreateRaw());
|
40
|
+
}
|
39
41
|
}
|
40
42
|
ngOnDestroy() {
|
41
43
|
this.StateSub.unsubscribe();
|
@@ -204,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
204
206
|
type: ViewChild,
|
205
207
|
args: [ProcessorDetailsFormComponent]
|
206
208
|
}] } });
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsb0JBQW9CLEdBR3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7Ozs7Ozs7Ozs7OztBQWtCdkgsTUFBTSxPQUFPLDZCQUE2QjtJQXlCdEMsWUFDYyxNQUFrQixFQUNyQixTQUFzRCxFQUM3QixJQUE4QixFQUNwRCxRQUFxQjtRQUhyQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTZDO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQ3BELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FB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LEVBQUU7WUFDWixHQUFHLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUM5QztRQUVELHFEQUFxRDtRQUVyRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxTQUFTLEVBQUU7Z0JBQzdELFFBQVEsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7MEhBcFBRLDZCQUE2Qix3RUE0QjFCLGVBQWU7OEdBNUJsQiw2QkFBNkIsMkhBQzNCLDRCQUE0QiwrRkFHNUIsNkJBQTZCLGdEQ2pDNUMsdWtFQXVFQTsyRkQxQ2EsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNJLDRCQUE0Qjs7MEJBZ0NqQyxNQUFNOzJCQUFDLGVBQWU7c0VBMUJwQix1QkFBdUI7c0JBRDdCLFNBQVM7dUJBQUMsNEJBQTRCO2dCQUloQyw0QkFBNEI7c0JBRGxDLFNBQVM7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEd1aWQsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRW52aXJvbm1lbnRBc0NvZGUsXG4gICAgRWFDU291cmNlQ29udHJvbCxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWRpdEFwcGxpY2F0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2VkaXQtYXBwbGljYXRpb24tZm9ybS9lZGl0LWFwcGxpY2F0aW9uLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcHJvY2Vzc29yLWRldGFpbHMtZm9ybS9wcm9jZXNzb3ItZGV0YWlscy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEVhQ1NlcnZpY2UsXG4gICAgU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3QXBwbGljYXRpb25EaWFsb2dEYXRhIHtcbiAgICBlbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuICAgIHByb2plY3RMb29rdXA6IHN0cmluZztcbiAgICBjdXJyZW50Um91dGU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtbmV3LWFwcGxpY2F0aW9uLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmV3QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZChFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50KVxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkZvcm1Db250cm9sczogRWRpdEFwcGxpY2F0aW9uRm9ybUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQpXG4gICAgcHVibGljIFByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHM6IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50O1xuXG4gICAgcHVibGljIEVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICAgcHVibGljIEVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIHB1YmxpYyBIYXNTYXZlQnV0dG9uOiBib29sZWFuO1xuXG4gICAgcHVibGljIE5ld0FwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICAgIHB1YmxpYyBOZXdBcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgcHVibGljIFNvdXJjZUNvbnRyb2xzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfTtcblxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwczogQXJyYXk8c3RyaW5nPjtcblxuICAgIHB1YmxpYyBTdGF0ZTogQXBwbGljYXRpb25zRmxvd1N0YXRlO1xuXG4gICAgcHVibGljIFN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5ld0FwcGxpY2F0aW9uRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBOZXdBcHBsaWNhdGlvbkRpYWxvZ0RhdGEsXG4gICAgICAgIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5IYXNTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLlN0YXRlU3ViID0gdGhpcy5lYWNTdmMuU3RhdGUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5TdGF0ZSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHRoaXMuU3RhdGU/LkVhQz8uRW52aXJvbm1lbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5FbnZpcm9ubWVudCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU3RhdGU/LkVhQz8uRW52aXJvbm1lbnRzW3RoaXMuZGF0YS5lbnZpcm9ubWVudExvb2t1cF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5FbnZpcm9ubWVudD8uU291cmNlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHMgPSB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzO1xuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbExvb2t1cHMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuU2V0dXBBcHBsaWNhdGlvbihHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFNldHVwQXBwbGljYXRpb24oYXBwTG9va3VwOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5OZXdBcHBsaWNhdGlvbiA9IG5ldyBFYUNBcHBsaWNhdGlvbkFzQ29kZSgpO1xuICAgICAgICB0aGlzLk5ld0FwcGxpY2F0aW9uTG9va3VwID0gYXBwTG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlQXBwbGljYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFwcDogRWFDQXBwbGljYXRpb25Bc0NvZGUgPSB7XG4gICAgICAgICAgICBBcHBsaWNhdGlvbjoge1xuICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLkRlc2NyaXB0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgUHJpb3JpdHlTaGlmdDogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBBY2Nlc3NSaWdodExvb2t1cHM6IFtdLFxuICAgICAgICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICAgICAgICBMaWNlbnNlQ29uZmlndXJhdGlvbkxvb2t1cHM6IFtdLFxuICAgICAgICAgICAgTG9va3VwQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgSXNQcml2YXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJc1RyaWdnZXJTaWduSW46IGZhbHNlLFxuICAgICAgICAgICAgICAgIFBhdGhSZWdleDogYCR7dGhpcy5BcHBsaWNhdGlvbkZvcm1Db250cm9scy5Sb3V0ZUZvcm1Db250cm9sLnZhbHVlfS4qYCxcbiAgICAgICAgICAgICAgICBRdWVyeVJlZ2V4OiAnJyxcbiAgICAgICAgICAgICAgICBIZWFkZXJSZWdleDogJycsXG4gICAgICAgICAgICAgICAgQWxsb3dlZE1ldGhvZHM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5NZXRob2RzRm9ybUNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHY6IHN0cmluZykgPT4gISF2KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBQcm9jZXNzb3I6IHtcbiAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUHJvY2Vzc29yVHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMb3dDb2RlVW5pdDoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgc3dpdGNoIChhcHAuUHJvY2Vzc29yLlR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0RGUyc6XG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5CYXNlSHJlZiA9XG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0vYC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJy8vJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICcvJ1xuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5EZWZhdWx0RmlsZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5EZWZhdWx0RmlsZUZvcm1Db250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsdWUgfHwgJ2luZGV4Lmh0bWwnO1xuXG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgc3dpdGNoIChhcHAuTG93Q29kZVVuaXQuVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdHaXRIdWInOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0Lk9yZ2FuaXphdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uT3JnYW5pemF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUmVwb3NpdG9yeSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uUmVwb3NpdG9yeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkJ1aWxkID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQnVpbGRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhdGggPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5CdWlsZFBhdGhGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05QTSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUGFja2FnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlBhY2thZ2VGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlZlcnNpb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5WZXJzaW9uRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdaaXAnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlppcEZpbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5aaXBGaWxlRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ09BdXRoJzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlNjb3BlcyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5TY29wZXNGb3JtQ29udHJvbC52YWx1ZS5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgICAgICcgJ1xuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5Ub2tlbkxvb2t1cCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Ub2tlbkxvb2t1cEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgc3dpdGNoIChhcHAuTG93Q29kZVVuaXQuVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdHaXRIdWJPQXV0aCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50SUQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5DbGllbnRJREZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50U2VjcmV0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQ2xpZW50U2VjcmV0Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1Byb3h5JzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkluYm91bmRQYXRoID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkluYm91bmRQYXRoRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0FQSSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQVBJUm9vdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkFQSVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNlY3VyaXR5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU2VjdXJpdHlGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TUEFSb290ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU1BBUm9vdEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5QZXJtYW5lbnQgPVxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5QZXJtYW5lbnRGb3JtQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5QcmVzZXJ2ZU1ldGhvZCA9XG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAuUHJlc2VydmVNZXRob2RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuUmVkaXJlY3QgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUmVkaXJlY3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAvJHthcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2F2ZUFwcFJlcTogU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgICAgICAgUHJvamVjdExvb2t1cDogdGhpcy5kYXRhLnByb2plY3RMb29rdXAsXG4gICAgICAgICAgICBBcHBsaWNhdGlvbjogYXBwLFxuICAgICAgICAgICAgQXBwbGljYXRpb25Mb29rdXA6IHRoaXMuTmV3QXBwbGljYXRpb25Mb29rdXAsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHRoaXMuSGFzQnVpbGRGb3JtQ29udHJvbC52YWx1ZSAmJiAgdGFrZW4gb3V0IGZyb20gYmVsb3cgaWYgc3RhdGVtZW50XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JUeXBlICE9PSAncmVkaXJlY3QnICYmXG4gICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSA9PT0gJ0dpdEh1YidcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoYXBwKSB7XG4gICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFwcCkge1xuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTYXZlIG5ldyBBcHAgcmVxdWVzdDogXCIsIHNhdmVBcHBSZXEpO1xuXG4gICAgICAgIHRoaXMuZWFjU3ZjLlNhdmVBcHBsaWNhdGlvbkFzQ29kZShzYXZlQXBwUmVxKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2F2ZVN0YXR1cyhyZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlU2F2ZVN0YXR1cyhzdGF0dXM6IFN0YXR1cykge1xuICAgICAgICBjb25zb2xlLmxvZygnZXZlbnQgdG8gc2F2ZTogJywgc3RhdHVzKTtcbiAgICAgICAgaWYgKHN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0FwcGxpY2F0aW9uIFN1Y2Nlc2Z1bGx5IENyZWF0ZWQnLCAnRGlzbWlzcycsIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5DbG9zZURpYWxvZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSBzdGF0dXMuTWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+Q3JlYXRlIEFwcGxpY2F0aW9uPC9oMj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxsY3UtZWRpdC1hcHBsaWNhdGlvbi1mb3JtXG4gICAgICAgIFtjdXJyZW50LXJvdXRlXT1cImRhdGEuY3VycmVudFJvdXRlXCJcbiAgICAgICAgW2VkaXRpbmctYXBwbGljYXRpb25dPVwiTmV3QXBwbGljYXRpb25cIlxuICAgICAgICBbaGFzLXNhdmUtYnV0dG9uXT1cIkhhc1NhdmVCdXR0b25cIlxuICAgICAgICBbbG9hZGluZ109XCJTdGF0ZT8uTG9hZGluZ1wiXG4gICAgPlxuICAgIDwvbGN1LWVkaXQtYXBwbGljYXRpb24tZm9ybT5cblxuICAgIDxsY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybVxuICAgICAgICBbZWRpdGluZy1hcHBsaWNhdGlvbl09XCJOZXdBcHBsaWNhdGlvblwiXG4gICAgICAgIFtlZGl0aW5nLWFwcGxpY2F0aW9uLWxvb2t1cF09XCJOZXdBcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgICAgIFtlbnZpcm9ubWVudF09XCJcbiAgICAgICAgICAgIFN0YXRlPy5FYUM/LkVudmlyb25tZW50c1tTdGF0ZT8uRWFDPy5FbnRlcnByaXNlPy5QcmltYXJ5RW52aXJvbm1lbnRdXG4gICAgICAgIFwiXG4gICAgICAgIFtoYXMtc2F2ZS1idXR0b25dPVwiSGFzU2F2ZUJ1dHRvblwiXG4gICAgICAgIFtzb3VyY2UtY29udHJvbC1sb29rdXBzXT1cIlNvdXJjZUNvbnRyb2xMb29rdXBzXCJcbiAgICAgICAgW3Byb2plY3QtbG9va3VwXT1cImRhdGEucHJvamVjdExvb2t1cFwiXG4gICAgICAgIFtsb2FkaW5nXT1cIlN0YXRlPy5Mb2FkaW5nXCJcbiAgICA+XG4gICAgPC9sY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybT5cblxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJFcnJvck1lc3NhZ2VcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICB7eyBFcnJvck1lc3NhZ2UgfX1cbiAgICA8L21hdC1lcnJvcj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zXG4gICAgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgZGl2XG4gICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCJcbiAgICBmeExheW91dEFsaWduLmx0LW1kPVwiY2VudGVyIGNlbnRlclwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICBmeEZsZXg9XCIyNSVcIlxuICAgICAgICBmeEZsZXgubHQtbWQ9XCIzMCVcIlxuICAgICAgICAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiXG4gICAgPlxuICAgICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIFByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMgJiZcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzICYmXG4gICAgICAgICAgICAhU3RhdGU/LkxvYWRpbmdcbiAgICAgICAgXCJcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgZnhGbGV4PVwiMjUlXCJcbiAgICAgICAgZnhGbGV4Lmx0LW1kPVwiNjAlXCJcbiAgICAgICAgY2xhc3M9XCJuZXctYXBwLXN1Ym1pdFwiXG4gICAgICAgIChjbGljayk9XCJTYXZlQXBwbGljYXRpb24oKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICFQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzPy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy52YWxpZCB8fFxuICAgICAgICAgICAgIUFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzPy5BcHBsaWNhdGlvbkZvcm1Hcm91cD8udmFsaWRcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIFNhdmUgQXBwbGljYXRpb25cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsb0JBQW9CLEdBR3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7Ozs7Ozs7Ozs7OztBQWtCdkgsTUFBTSxPQUFPLDZCQUE2QjtJQXlCdEMsWUFDYyxNQUFrQixFQUNyQixTQUFzRCxFQUM3QixJQUE4QixFQUNwRCxRQUFxQjtRQUhyQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQTZDO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQ3BELGFBQVEsR0FBUixRQUFRLENBQWE7UUFFL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FB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d0IsQ0FBQyxLQUFLLENBQUM7YUFDeEU7U0FDSjthQUFNLElBQUksR0FBRyxFQUFFO1lBQ1osR0FBRyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDOUM7UUFFRCxxREFBcUQ7UUFFckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsTUFBYztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsU0FBUyxFQUFFO2dCQUM3RCxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUN0QztJQUNMLENBQUM7OzBIQXRQUSw2QkFBNkIsd0VBNEIxQixlQUFlOzhHQTVCbEIsNkJBQTZCLDJIQUMzQiw0QkFBNEIsK0ZBRzVCLDZCQUE2QixnRENqQzVDLHVrRUF1RUE7MkZEMUNhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDSSw0QkFBNEI7OzBCQWdDakMsTUFBTTsyQkFBQyxlQUFlO3NFQTFCcEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLDRCQUE0QjtnQkFJaEMsNEJBQTRCO3NCQURsQyxTQUFTO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBHdWlkLCBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ1NvdXJjZUNvbnRyb2wsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVkaXRBcHBsaWNhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9lZGl0LWFwcGxpY2F0aW9uLWZvcm0vZWRpdC1hcHBsaWNhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0vcHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFYUNTZXJ2aWNlLFxuICAgIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ld0FwcGxpY2F0aW9uRGlhbG9nRGF0YSB7XG4gICAgZW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcbiAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmc7XG4gICAgY3VycmVudFJvdXRlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LW5ldy1hcHBsaWNhdGlvbi1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5ld0FwcGxpY2F0aW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoRWRpdEFwcGxpY2F0aW9uRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgQXBwbGljYXRpb25Gb3JtQ29udHJvbHM6IEVkaXRBcHBsaWNhdGlvbkZvcm1Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50KVxuICAgIHB1YmxpYyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzOiBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudDtcblxuICAgIHB1YmxpYyBFcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICAgIHB1YmxpYyBFbnZpcm9ubWVudDogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgICBwdWJsaWMgSGFzU2F2ZUJ1dHRvbjogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBOZXdBcHBsaWNhdGlvbjogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBwdWJsaWMgTmV3QXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNTb3VyY2VDb250cm9sIH07XG5cbiAgICBwdWJsaWMgU291cmNlQ29udHJvbExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgU3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZTtcblxuICAgIHB1YmxpYyBTdGF0ZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogTmV3QXBwbGljYXRpb25EaWFsb2dEYXRhLFxuICAgICAgICBwcm90ZWN0ZWQgc25hY2tCYXI6IE1hdFNuYWNrQmFyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuSGFzU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TdGF0ZVN1YiA9IHRoaXMuZWFjU3ZjLlN0YXRlLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuRW52aXJvbm1lbnQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50c1t0aGlzLmRhdGEuZW52aXJvbm1lbnRMb29rdXBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzID0gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlcztcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xMb29rdXBzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRW52aXJvbm1lbnQuU291cmNlcyB8fCB7fVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuTmV3QXBwbGljYXRpb25Mb29rdXApIHtcbiAgICAgICAgICAgIHRoaXMuU2V0dXBBcHBsaWNhdGlvbihHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBDbG9zZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0dXBBcHBsaWNhdGlvbihhcHBMb29rdXA6IHN0cmluZykge1xuICAgICAgICB0aGlzLk5ld0FwcGxpY2F0aW9uID0gbmV3IEVhQ0FwcGxpY2F0aW9uQXNDb2RlKCk7XG4gICAgICAgIHRoaXMuTmV3QXBwbGljYXRpb25Mb29rdXAgPSBhcHBMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVBcHBsaWNhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXBwOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSA9IHtcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgTmFtZTogdGhpcy5BcHBsaWNhdGlvbkZvcm1Db250cm9scy5OYW1lRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuRGVzY3JpcHRpb25Gb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBQcmlvcml0eVNoaWZ0OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEFjY2Vzc1JpZ2h0TG9va3VwczogW10sXG4gICAgICAgICAgICBEYXRhVG9rZW5zOiB7fSxcbiAgICAgICAgICAgIExpY2Vuc2VDb25maWd1cmF0aW9uTG9va3VwczogW10sXG4gICAgICAgICAgICBMb29rdXBDb25maWc6IHtcbiAgICAgICAgICAgICAgICBJc1ByaXZhdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIElzVHJpZ2dlclNpZ25JbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgUGF0aFJlZ2V4OiBgJHt0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLlJvdXRlRm9ybUNvbnRyb2wudmFsdWV9LipgLFxuICAgICAgICAgICAgICAgIFF1ZXJ5UmVnZXg6ICcnLFxuICAgICAgICAgICAgICAgIEhlYWRlclJlZ2V4OiAnJyxcbiAgICAgICAgICAgICAgICBBbGxvd2VkTWV0aG9kczpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLk1ldGhvZHNGb3JtQ29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgID8uc3BsaXQoJyAnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigodjogc3RyaW5nKSA9PiAhIXYpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFByb2Nlc3Nvcjoge1xuICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JUeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExvd0NvZGVVbml0OiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Qcm9jZXNzb3IuVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnREZTJzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkJhc2VIcmVmID1cbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5BcHBsaWNhdGlvbkZvcm1Db250cm9scy5Sb3V0ZUZvcm1Db250cm9sLnZhbHVlfS9gLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAnLy8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJy8nXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLkRlZmF1bHRGaWxlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkRlZmF1bHRGaWxlRm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZSB8fCAnaW5kZXguaHRtbCc7XG5cbiAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuT3JnYW5pemF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5Pcmdhbml6YXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5SZXBvc2l0b3J5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5SZXBvc2l0b3J5O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQnVpbGQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5CdWlsZEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuUGF0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTlBNJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5QYWNrYWdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUGFja2FnZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuVmVyc2lvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlZlcnNpb25Gb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuWmlwRmlsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlppcEZpbGVGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnT0F1dGgnOlxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuU2NvcGVzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNjb3Blc0Zvcm1Db250cm9sLnZhbHVlLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJyAnXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlRva2VuTG9va3VwID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlRva2VuTG9va3VwRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0dpdEh1Yk9BdXRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5DbGllbnRJRCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkNsaWVudElERm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5DbGllbnRTZWNyZXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5DbGllbnRTZWNyZXRGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnUHJveHknOlxuICAgICAgICAgICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5ib3VuZFBhdGggPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuSW5ib3VuZFBhdGhGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkxDVVR5cGUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQVBJUm9vdEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuU2VjdXJpdHkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5TZWN1cml0eUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdTUEEnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNQQVJvb3QgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5TUEFSb290Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1JlZGlyZWN0JzpcbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlBlcm1hbmVudCA9XG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlBlcm1hbmVudEZvcm1Db250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBhcHAuUHJvY2Vzc29yLlByZXNlcnZlTWV0aG9kID1cbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5QcmVzZXJ2ZU1ldGhvZEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYXBwLlByb2Nlc3Nvci5SZWRpcmVjdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5SZWRpcmVjdEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIGFwcC5Mb29rdXBDb25maWcuUGF0aFJlZ2V4ID0gYC8ke2FwcC5Mb29rdXBDb25maWcuUGF0aFJlZ2V4fWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYXZlQXBwUmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBQcm9qZWN0TG9va3VwOiB0aGlzLmRhdGEucHJvamVjdExvb2t1cCxcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uOiBhcHAsXG4gICAgICAgICAgICBBcHBsaWNhdGlvbkxvb2t1cDogdGhpcy5OZXdBcHBsaWNhdGlvbkxvb2t1cCxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gdGhpcy5IYXNCdWlsZEZvcm1Db250cm9sLnZhbHVlICYmICB0YWtlbiBvdXQgZnJvbSBiZWxvdyBpZiBzdGF0ZW1lbnRcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByb2Nlc3NvclR5cGUgIT09ICdyZWRpcmVjdCcgJiZcbiAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlID09PSAnR2l0SHViJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChhcHApIHtcbiAgICAgICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuU291cmNlQ29udHJvbExvb2t1cCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYXBwKSB7XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuU291cmNlQ29udHJvbExvb2t1cCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNhdmUgbmV3IEFwcCByZXF1ZXN0OiBcIiwgc2F2ZUFwcFJlcSk7XG5cbiAgICAgICAgdGhpcy5lYWNTdmMuU2F2ZUFwcGxpY2F0aW9uQXNDb2RlKHNhdmVBcHBSZXEpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTYXZlU3RhdHVzKHJlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVTYXZlU3RhdHVzKHN0YXR1czogU3RhdHVzKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdldmVudCB0byBzYXZlOiAnLCBzdGF0dXMpO1xuICAgICAgICBpZiAoc3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQXBwbGljYXRpb24gU3VjY2VzZnVsbHkgQ3JlYXRlZCcsICdEaXNtaXNzJywge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLkNsb3NlRGlhbG9nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLkVycm9yTWVzc2FnZSA9IHN0YXR1cy5NZXNzYWdlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT5DcmVhdGUgQXBwbGljYXRpb248L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDbG9zZURpYWxvZygpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGxjdS1lZGl0LWFwcGxpY2F0aW9uLWZvcm1cbiAgICAgICAgW2N1cnJlbnQtcm91dGVdPVwiZGF0YS5jdXJyZW50Um91dGVcIlxuICAgICAgICBbZWRpdGluZy1hcHBsaWNhdGlvbl09XCJOZXdBcHBsaWNhdGlvblwiXG4gICAgICAgIFtoYXMtc2F2ZS1idXR0b25dPVwiSGFzU2F2ZUJ1dHRvblwiXG4gICAgICAgIFtsb2FkaW5nXT1cIlN0YXRlPy5Mb2FkaW5nXCJcbiAgICA+XG4gICAgPC9sY3UtZWRpdC1hcHBsaWNhdGlvbi1mb3JtPlxuXG4gICAgPGxjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtXG4gICAgICAgIFtlZGl0aW5nLWFwcGxpY2F0aW9uXT1cIk5ld0FwcGxpY2F0aW9uXCJcbiAgICAgICAgW2VkaXRpbmctYXBwbGljYXRpb24tbG9va3VwXT1cIk5ld0FwcGxpY2F0aW9uTG9va3VwXCJcbiAgICAgICAgW2Vudmlyb25tZW50XT1cIlxuICAgICAgICAgICAgU3RhdGU/LkVhQz8uRW52aXJvbm1lbnRzW1N0YXRlPy5FYUM/LkVudGVycHJpc2U/LlByaW1hcnlFbnZpcm9ubWVudF1cbiAgICAgICAgXCJcbiAgICAgICAgW2hhcy1zYXZlLWJ1dHRvbl09XCJIYXNTYXZlQnV0dG9uXCJcbiAgICAgICAgW3NvdXJjZS1jb250cm9sLWxvb2t1cHNdPVwiU291cmNlQ29udHJvbExvb2t1cHNcIlxuICAgICAgICBbcHJvamVjdC1sb29rdXBdPVwiZGF0YS5wcm9qZWN0TG9va3VwXCJcbiAgICAgICAgW2xvYWRpbmddPVwiU3RhdGU/LkxvYWRpbmdcIlxuICAgID5cbiAgICA8L2xjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtPlxuXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIkVycm9yTWVzc2FnZVwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgICAgIHt7IEVycm9yTWVzc2FnZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnNcbiAgICBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCJcbiAgICBkaXZcbiAgICBmeExheW91dD1cInJvd1wiXG4gICAgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIlxuICAgIGZ4TGF5b3V0QWxpZ24ubHQtbWQ9XCJjZW50ZXIgY2VudGVyXCJcbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIGZ4RmxleD1cIjI1JVwiXG4gICAgICAgIGZ4RmxleC5sdC1tZD1cIjMwJVwiXG4gICAgICAgIChjbGljayk9XCJDbG9zZURpYWxvZygpXCJcbiAgICA+XG4gICAgICAgIENhbmNlbFxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scyAmJlxuICAgICAgICAgICAgQXBwbGljYXRpb25Gb3JtQ29udHJvbHMgJiZcbiAgICAgICAgICAgICFTdGF0ZT8uTG9hZGluZ1xuICAgICAgICBcIlxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBmeEZsZXg9XCIyNSVcIlxuICAgICAgICBmeEZsZXgubHQtbWQ9XCI2MCVcIlxuICAgICAgICBjbGFzcz1cIm5ldy1hcHAtc3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cIlNhdmVBcHBsaWNhdGlvbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgIVByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHM/LlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LnZhbGlkIHx8XG4gICAgICAgICAgICAhQXBwbGljYXRpb25Gb3JtQ29udHJvbHM/LkFwcGxpY2F0aW9uRm9ybUdyb3VwPy52YWxpZFxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgU2F2ZSBBcHBsaWNhdGlvblxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
|