@annalib/anna-core 20.2.44 → 20.2.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +2 -2
- package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +1 -7
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +1 -1
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +1 -1
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +1 -1
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +1 -1
- package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +3 -9
- package/fesm2022/annalib-anna-core.mjs +32 -44
- package/fesm2022/annalib-anna-core.mjs.map +1 -1
- package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +1 -1
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.d.ts +3 -3
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.d.ts +3 -3
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.d.ts +3 -3
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.d.ts +3 -3
- package/package.json +1 -1
|
@@ -3,7 +3,6 @@ import { Component, Input, ViewChildren, QueryList, Output, EventEmitter, Change
|
|
|
3
3
|
// Third party import statements
|
|
4
4
|
import { cloneDeep, isEqual, uniq } from 'lodash-es';
|
|
5
5
|
import { AnnaDateTimeFormatService } from '../../../anna-core-shared-lib/services/anna-date-time-format.service';
|
|
6
|
-
import { radioButtonModel } from '../../../anna-core-shared-lib/models/anna-tooltip.model';
|
|
7
6
|
import { AnnaSortService } from '../../../anna-core-shared-lib/services/anna-sort.service';
|
|
8
7
|
import { AnnaFilterService } from '../../../anna-core-shared-lib/services/anna-filter.service';
|
|
9
8
|
import { BehaviorSubject } from 'rxjs';
|
|
@@ -21,6 +20,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
|
|
21
20
|
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
|
|
22
21
|
import { MatTableModule } from '@angular/material/table';
|
|
23
22
|
import { NgClass, NgStyle, NgFor, NgIf, NgTemplateOutlet, NgSwitch, NgSwitchCase, NgSwitchDefault, AsyncPipe, } from '@angular/common';
|
|
23
|
+
import { RadioButtonModel } from '../../../anna-core-shared-lib/models/anna-tooltip.model';
|
|
24
24
|
import * as i0 from "@angular/core";
|
|
25
25
|
import * as i1 from "../../../anna-core-shared-lib/services/anna-sort.service";
|
|
26
26
|
import * as i2 from "../../../anna-core-shared-lib/services/anna-date-time-format.service";
|
|
@@ -260,12 +260,6 @@ export class AnnaNonEditableGenericTableComponent {
|
|
|
260
260
|
this.tooltipRadioTextMap.set('revision', 'Revision');
|
|
261
261
|
this.tooltipRadioTextMap.set('buyerOrderId', 'ALT/REP Order#');
|
|
262
262
|
this.tooltipRadioTextMap.set('demo', 'Demo');
|
|
263
|
-
this.tooltipRadioTextMap.set('averageRateThisYear', 'Avg. Rate (TY)');
|
|
264
|
-
this.tooltipRadioTextMap.set('averageRateLastYear', 'Avg. Rat (LY)');
|
|
265
|
-
this.tooltipRadioTextMap.set('averageCPP', 'Avg. CPP');
|
|
266
|
-
this.tooltipRadioTextMap.set('averageCPM', 'Avg. CPM');
|
|
267
|
-
this.tooltipRadioTextMap.set('IMPSDiff', "IMPS ('000) Diff.");
|
|
268
|
-
this.tooltipRadioTextMap.set('RTGDiff', 'RTG Diff.');
|
|
269
263
|
this.tooltipRadioTextMap.set('postedAdu', '$ Posted ADUs');
|
|
270
264
|
this.tooltipRadioTextMap.set('scheduledAdu', '$ Scheduled ADUs');
|
|
271
265
|
this.tooltipRadioTextMap.set('audienceDeficit', '$ O/S Audience');
|
|
@@ -500,7 +494,7 @@ export class AnnaNonEditableGenericTableComponent {
|
|
|
500
494
|
//convert key into the header
|
|
501
495
|
this.filterTabObjects = header.map((key, index) => {
|
|
502
496
|
let value = this.tooltipRadioTextMap.has(key) ? this.tooltipRadioTextMap.get(key) : key; //change to display name
|
|
503
|
-
return new
|
|
497
|
+
return new RadioButtonModel(key, value, columnHeader.isSortRequired[index], columnHeader.isFilterRequired[index]);
|
|
504
498
|
});
|
|
505
499
|
}
|
|
506
500
|
disableEnableEachColumnTooltipIcon() {
|
|
@@ -868,4 +862,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
868
862
|
type: ViewChildren,
|
|
869
863
|
args: ['tableHeader']
|
|
870
864
|
}] } });
|
|
871
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL2NvbXBvbmVudHMvYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtZ2VuZXJpYy10YWJsZS1saWIvY29tcG9uZW50cy9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlL2FubmEtbm9uLWVkaXRhYmxlLWdlbmVyaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEJBQTRCO0FBQzVCLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFHWixpQkFBaUIsRUFHakIsdUJBQXVCLEdBQzFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLGdDQUFnQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFTckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFNakgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JB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Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyw2QkFBNkI7c0JBQXRDLE1BQU07Z0JBbUNzQixxQkFBcUI7c0JBQWpELFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIE9uSW5pdCxcclxuICAgIElucHV0LFxyXG4gICAgVmlld0NoaWxkcmVuLFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcblxyXG4vL3N1Yi1lbnRyaWVzIG9mIGFubmEgbGliIGltcG9ydCBzdGF0ZW1lbnRcclxuaW1wb3J0IHtcclxuICAgIElHdEdlbmVyYWxDb25maWcsXHJcbiAgICBJR3RUYWJsZUhlYWRlcixcclxuICAgIElIZWFkZXJJbmZvLFxyXG4gICAgSVRvdGFsUm93SW5mbyxcclxufSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9tb2RlbHMvYW5uYS1ub24tZWRpdGFibGUtZ3QtbW9kZWxzJztcclxuaW1wb3J0IHsgQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FubmEtY29yZS1zaGFyZWQtbGliL3NlcnZpY2VzL2FubmEtZGF0ZS10aW1lLWZvcm1hdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVdlZWtDYWxlbmRhciB9IGZyb20gJy4uLy4uLy4uL2FubmEtY29yZS1zaGFyZWQtbGliL21vZGVscy9hbm5hLWdsb2JhbC1kcm9wZG93bi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgR3RDb2x1bW5JY29uRW1pdHRlZERhdGEsXHJcbiAgICBSYXRpbmdTZWxsZXJHcm91cEhpZXJhcmNoeSxcclxufSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9tb2RlbHMvYW5uYS1nZW5lcmljLWRhdGEtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IHJhZGlvQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9tb2RlbHMvYW5uYS10b29sdGlwLm1vZGVsJztcclxuaW1wb3J0IHsgQW5uYVNvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1zb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbm5hRmlsdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FubmEtY29yZS1zaGFyZWQtbGliL3NlcnZpY2VzL2FubmEtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSB9IGZyb20gJ25nLWNpcmNsZS1wcm9ncmVzcyc7XHJcbmltcG9ydCB7IEFubmFDb2x1bW5UaW1lRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYW5uYS1jb2x1bW4tZmlsdGVycy9hbm5hLWNvbHVtbi10aW1lLWZpbHRlci9hbm5hLWNvbHVtbi10aW1lLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hQ29sdW1uRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYW5uYS1jb2x1bW4tZmlsdGVycy9hbm5hLWNvbHVtbi1kYXRlLXJhbmdlLWZpbHRlci9hbm5hLWNvbHVtbi1kYXRlLXJhbmdlLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hQ29sdW1uU2xpZGVyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYW5uYS1jb2x1bW4tZmlsdGVycy9hbm5hLWNvbHVtbi1zbGlkZXItZmlsdGVyL2FubmEtY29sdW1uLXNsaWRlci1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5uYUNvbHVtbkNoZWNrYm94RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYW5uYS1jb2x1bW4tZmlsdGVycy9hbm5hLWNvbHVtbi1jaGVja2JveC1maWx0ZXIvYW5uYS1jb2x1bW4tY2hlY2tib3gtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFubmFOb0RhdGFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtbm8tZGF0YS9hbm5hLW5vLWRhdGEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbm5hSWNvbkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1pY29uLWNvbHVtbi9hbm5hLWljb24tY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHNob3dFbGxpcHNpc1RleHRPbkhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvZGlyZWN0aXZlcy9zaG93LWVsbGlwc2lzLXRleHQvc2hvdy1lbGxpcHNpcy10ZXh0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nU3R5bGUsXHJcbiAgICBOZ0ZvcixcclxuICAgIE5nSWYsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdTd2l0Y2gsXHJcbiAgICBOZ1N3aXRjaENhc2UsXHJcbiAgICBOZ1N3aXRjaERlZmF1bHQsXHJcbiAgICBBc3luY1BpcGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmludGVyZmFjZSBrZXlWYWx1ZVRvb2x0aXBUeXBlIHtcclxuICAgIGtleTogc3RyaW5nO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgdGFibGVUb29sdGlwVHlwZSB7XHJcbiAgICB0b29sdGlwVGFibGVIZWFkZXI6IHN0cmluZ1tdO1xyXG4gICAgdG9vbHRpcFRhYmxlQm9keTogc3RyaW5nW11bXTtcclxuICAgIHRhYmxlSGVhZGVyTXNnOiBzdHJpbmdbXTtcclxuICAgIHRhYmxlRm9vdGVyTXNnOiBzdHJpbmdbXTtcclxuICAgIGlubmVySHRtbDogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYW5uYS1jb3JlLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlLWxpYicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTmdDbGFzcyxcclxuICAgICAgICBOZ1N0eWxlLFxyXG4gICAgICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgICAgIE5nRm9yLFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBOZ2JUb29sdGlwLFxyXG4gICAgICAgIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLFxyXG4gICAgICAgIHNob3dFbGxpcHNpc1RleHRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgICAgIE5nU3dpdGNoLFxyXG4gICAgICAgIE5nU3dpdGNoQ2FzZSxcclxuICAgICAgICBBbm5hSWNvbkNvbHVtbkNvbXBvbmVudCxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgICAgICBOZ1N3aXRjaERlZmF1bHQsXHJcbiAgICAgICAgQW5uYU5vRGF0YUNvbXBvbmVudCxcclxuICAgICAgICBBbm5hQ29sdW1uQ2hlY2tib3hGaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgQW5uYUNvbHVtblNsaWRlckZpbHRlckNvbXBvbmVudCxcclxuICAgICAgICBBbm5hQ29sdW1uRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEFubmFDb2x1bW5UaW1lRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIE5nQ2lyY2xlUHJvZ3Jlc3NNb2R1bGUsXHJcbiAgICAgICAgQXN5bmNQaXBlLFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFOb25FZGl0YWJsZUdlbmVyaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIEBJbnB1dCgpIHNob3dTa2VsZXRvbkxvYWRpbmc6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0YWJsZUhlYWRlcnM6IElHdFRhYmxlSGVhZGVyW107XHJcbiAgICBASW5wdXQoKSB0YWJsZURhdGE6IGFueVtdO1xyXG4gICAgQElucHV0KCkgY2xvbmVkVGFibGVEYXRhOiBhbnlbXTtcclxuICAgIEBJbnB1dCgpIGd0R2VuZXJhbENvbmZpZzogSUd0R2VuZXJhbENvbmZpZztcclxuICAgIEBJbnB1dCgpIHRvdGFsUm93SW5mbz86IElUb3RhbFJvd0luZm9bXTtcclxuICAgIEBJbnB1dCgpIGd0RGltZW5zaW9uOiB7XHJcbiAgICAgICAgcm93SGVpZ2h0OiBudW1iZXI7XHJcbiAgICAgICAgaGVhZGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgICAgICAgZGF0YU9uVG9wSGVpZ2h0OiBudW1iZXI7XHJcbiAgICAgICAgbWFyZ2luRnJvbUJvdHRvbTogbnVtYmVyO1xyXG4gICAgICAgIHRhYmxlSGVpZ2h0Pzogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIHRhYmxlQ2xhc3M6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIG1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbDogbnVtYmVyID0gNTtcclxuICAgIEBJbnB1dCgpIGZpeE51bWJlck9mUm93c0ZvclBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBsaW1pdDogbnVtYmVyID0gMzA7XHJcbiAgICBASW5wdXQoKSBpbmNsdWRlQm9yZGVySW5UYWJsZUhlaWdodDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBkb3dubG9hZEluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBwZXJjZW50RG9uZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgc3RhcnJlZEluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjbGlja2FibGVSb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldFRhYmxlSGVpZ2h0V2hlblJvd1NpemVJc0ZpeGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHRhYmxlQm9yZGVyQm90dG9tQ2xhc3NSZXF1aXJlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBoaWRlU29tZVRkczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGRzSGF2ZVJvd1NwYW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG11bHRpcGxlVGFibGVzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBPdXRwdXQoKSB0b2dnbGVDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSB0b2dnbGVSb3dDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSB0b2dnbGVIZWFkZXJDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSB1bmRvSWNvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZmlsdGVyQXBwbGllZFRvVGFibGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgc29ydGluZ0FwcGxpZWRUb1RhYmxlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHJvd0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgcmFkaW9CdXR0b25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjb2x1bW5GaWx0ZXJPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY29sdW1uRmlsdGVyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGd0SWNvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZ3RTVkdJY29uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBndFRleHRBY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGd0Vmlld0RldGFpbENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZ3RJbm5lckhUTUxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGRvd25sb2FkU3BvdERldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2xpY2thYmxlRGF0YUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdG90YWxSb3dJY29uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBub3RpZmljYXRpb25JY29uSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uSWNvbkhvdmVyTGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdGFibGVJbnB1dEVkaXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSByYWRpb0J1dHRvbk1lc3NhZ2VJY29uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBudW1iZXJPZlNrZWxldG9uUm93czogbnVtYmVyW11bXSA9IEFycmF5KDIwKS5maWxsKDApO1xyXG4gICAgdGFibGVEYXRhV3JhcHBlcjogYW55W107XHJcbiAgICByb3dDaGVja2VkOiBib29sZWFuO1xyXG4gICAgaXNBbGxSb3dzQ2hlY2tlZDogYm9vbGVhbjtcclxuICAgIG5vRGF0YVdpZHRoOiBzdHJpbmcgPSAnNTAlJztcclxuICAgIG1hcmtlZEZvckNyZWRpdFN0YXR1czogc3RyaW5nO1xyXG4gICAgbWFya2VkRm9yTUdTdGF0dXM6IHN0cmluZztcclxuICAgIGZpbHRlckFsaWdubWVudDogc3RyaW5nID0gJ2JvdHRvbSBhdXRvJztcclxuXHJcbiAgICAvL1NvcnQgYW5kIEZpbHRlclxyXG4gICAgdG9vbHRpcFJhZGlvVGV4dE1hcDogTWFwPGFueSwgYW55PjtcclxuICAgIGZpbHRlclRhYk9iamVjdHM6IGFueVtdO1xyXG4gICAgdG9vbHRpcDogYW55O1xyXG4gICAgZGlzYWJsZUNvbHVtbkNsZWFyQWxsQnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIG1hcmdpbiA9IDU7XHJcblxyXG4gICAgLy9XZWVrIEZpbHRlclxyXG4gICAgbXVsdGlXZWVrUGlja2VyQ29uZmlnOiBJV2Vla0NhbGVuZGFyO1xyXG5cclxuICAgIHRhYmxlQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuICAgIHRvdGFsUm93Q29sdW1uczogc3RyaW5nW10gPSBudWxsO1xyXG4gICAgYmluZFZhbHVlRnVuY0NhbGxlZDogYm9vbGVhbjtcclxuXHJcbiAgICBoaWVyYXJjaHlUb29sdGlwOiB7IG9wZW46ICgpID0+IHZvaWQ7IGNsb3NlOiAoKSA9PiB2b2lkIH07XHJcbiAgICBzZWxsZXJHcm91cEhpZXJhcmNoeTogUmF0aW5nU2VsbGVyR3JvdXBIaWVyYXJjaHlbXTtcclxuICAgIHNob3dGaWx0ZXJUb29sdGlwVGFiczogYm9vbGVhbjsgLy9DaGFuZ2UgdGhlIE5hbWVcclxuXHJcbiAgICBpc1Njcm9sbGVkTGVmdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcm93Qm9yZGVyV2lkdGg6IG51bWJlciA9IDI7XHJcblxyXG4gICAgc2FtZVRvb2x0aXBDbGlja2VkOiBib29sZWFuO1xyXG4gICAgaXNTY3JvbGxFbmRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBtYXJnaW5Ub3A6IHN0cmluZyA9ICcnO1xyXG4gICAgQFZpZXdDaGlsZHJlbigndGFibGVIZWFkZXInKSB2aWV3Q2hpbGRUYWJsZUhlYWRlcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuXHJcbiAgICBpc0RpZmZlcmVuY2VMZXNzVGhhbjI1UGVyY2VudDogYm9vbGVhbjtcclxuICAgIHN0YXJ0OiBudW1iZXIgPSAwO1xyXG4gICAgZW5kOiBudW1iZXIgPSB0aGlzLmxpbWl0ICsgdGhpcy5zdGFydDtcclxuICAgIHJlbmRlcmVkRGF0YTogYW55W107XHJcbiAgICBzZWxlY3RlZEludmVudG9yeUlkRm9yRG93bmxvYWQ6IG51bWJlcjtcclxuICAgIHNlbGVjdGVkRGVtb2dyYXBoaWNGb3JEb3dubG9hZDogYW55O1xyXG4gICAgc2VsZWN0ZWRSb3dUeXBlRm9yRG93bmxvYWQ6IHN0cmluZztcclxuICAgIGhlaWdodE9mQ2hlY2tib3hUb29sdGlwRmlsdGVyOiBudW1iZXI7XHJcbiAgICBpc05vRGF0YVRvRGlzcGxheVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBzZWxlY3RlZFN0YXJyZWRPcmRlcklkOiBzdHJpbmc7XHJcblxyXG4gICAgdGV4dEFjdGlvblRvb2x0aXA6IGtleVZhbHVlVG9vbHRpcFR5cGVbXSA9IFtdO1xyXG4gICAgdG9vbHRpcENvbnRhaW5pbmdUYWJsZTogdGFibGVUb29sdGlwVHlwZSA9IG51bGw7XHJcbiAgICB0YWJsZUJvdHRvbUJvcmRlckNsYXNzOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgc2hvd0NoZWNrYm94ZXNGb3JUaW1lRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhbm5hU29ydFNlcnZpY2U6IEFubmFTb3J0U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZTogQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgYW5uYUZpbHRlclNlcnZpY2U6IEFubmFGaWx0ZXJTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwUmFkaW9OYW1lcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldE1hcmdpbkxlZnRGb3JGaWx0ZXJJY29uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGaWx0ZXJBbGlnbm1lbnRCYXNlZE9uU2NyZWVuUmVzb2x1dGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdENoYW5nZXMoKSB7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgY2hhbmdlcyAmJlxyXG4gICAgICAgICAgICBjaGFuZ2VzWydndERpbWVuc2lvbiddICYmXHJcbiAgICAgICAgICAgIGNoYW5nZXNbJ2d0RGltZW5zaW9uJ10uY3VycmVudFZhbHVlICYmXHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVIZWlnaHRXaGVuUm93U2l6ZUlzRml4ZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUhlaWdodCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlQm90dG9tQm9yZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3dTa2VsZXRvbkxvYWRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLm51bWJlck9mU2tlbGV0b25Sb3dzO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVkRGF0YSA9IHRoaXMubnVtYmVyT2ZTa2VsZXRvblJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUJvdHRvbUJvcmRlcigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgIGNoYW5nZXNbJ3BlcmNlbnREb25lJ10gfHxcclxuICAgICAgICAgICAgY2hhbmdlc1snZG93bmxvYWRJblByb2dyZXNzJ10gfHxcclxuICAgICAgICAgICAgKGNoYW5nZXNbJ3N0YXJyZWRJblByb2dyZXNzJ10gJiYgY2hhbmdlc1snc3RhcnJlZEluUHJvZ3Jlc3MnXS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvL25vIHRhc2sgd2lsbCBiZSBwZXJmb3JtZWRcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNldEluaXRpYWxSb3dzRm9yVGFibGUoKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlRW5hYmxlRWFjaENvbHVtblRvb2x0aXBJY29uKCk7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy50YWJsZUhlYWRlcnMuZmlsdGVyKCh4KSA9PiB4LnZpc2libGUpLm1hcCgoeCkgPT4geC5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSk7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICh0aGlzLnRhYmxlRGF0YSAmJiB0aGlzLnRhYmxlRGF0YS5sZW5ndGggPT0gMCkgfHxcclxuICAgICAgICAgICAgICAgICh0aGlzLnRhYmxlRGF0YS5sZW5ndGggPT0gMiAmJiB0aGlzLmNoZWNrSWZBbGxUaGVFbGVtZW50c0FyZVplcm8oKSlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IEFycmF5KDIpLmZpbGwoMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVkRGF0YSA9IGNsb25lRGVlcCh0aGlzLnRhYmxlRGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmdpblRvcCA9IC10aGlzLmd0RGltZW5zaW9uLnJvd0hlaWdodCAtIHRoaXMuZ3REaW1lbnNpb24ucm93SGVpZ2h0IC8gMiArICdweCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTm9EYXRhVG9EaXNwbGF5U3ViamVjdCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zaG93U2tlbGV0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVCb3R0b21Cb3JkZXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vc2V0dGluZyB0YWJsZSBjb2x1bW4gaGVyZSBhcyB3ZWxsIGJlY2F1c2Ugd2hpbGUgc2hvd2luZyBza2VsZXRvbiBsb2FkZXIsIHdlIHNob3VsZCBzaG93IHRhYmxlIGhlYWRlcnMuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjaGFuZ2VzWyd0YWJsZUhlYWRlcnMnXSAmJlxyXG4gICAgICAgICAgICAhaXNFcXVhbChjaGFuZ2VzWyd0YWJsZUhlYWRlcnMnXS5jdXJyZW50VmFsdWUsIGNoYW5nZXNbJ3RhYmxlSGVhZGVycyddLnByZXZpb3VzVmFsdWUpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy50YWJsZUhlYWRlcnMuZmlsdGVyKCh4KSA9PiB4LnZpc2libGUpLm1hcCgoeCkgPT4geC5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSk7XHJcbiAgICAgICAgICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pbml0aWFsVmFsdWVNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2V0Q29sdW1uU29ydFN0YXRlTWFwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlU3RhdGVPYmplY3QoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzWyd0b3RhbFJvd0luZm8nXSAmJiBjaGFuZ2VzWyd0b3RhbFJvd0luZm8nXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy50b3RhbFJvd0NvbHVtbnMgPSB0aGlzLnRvdGFsUm93SW5mby5tYXAoKHgpID0+IHguY29sTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbHRlckFsaWdubWVudEJhc2VkT25TY3JlZW5SZXNvbHV0aW9uKCkge1xyXG4gICAgICAgIGxldCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgPCA3NDApIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJBbGlnbm1lbnQgPSAnbGVmdCByaWdodCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJBbGlnbm1lbnQgPSAnYm90dG9tIGxlZnQgcmlnaHQnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRUYWJsZUJvdHRvbUJvcmRlcigpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGVCb3JkZXJCb3R0b21DbGFzc1JlcXVpcmVkICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICB0aGlzLm1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbCA8IHRoaXMudGFibGVEYXRhLmxlbmd0aFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQm90dG9tQm9yZGVyQ2xhc3MgPSAnYm90dG9tLWJvcmRlcic7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUJvdHRvbUJvcmRlckNsYXNzID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tJZkFsbFRoZUVsZW1lbnRzQXJlWmVybygpIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMudGFibGVEYXRhLnNvbWUoKGl0ZW0pID0+IGl0ZW0gIT0gMCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGFibGVIZWlnaHQoKSB7XHJcbiAgICAgICAgbGV0IHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgIGxldCByb3dIZWlnaHQgPSB0aGlzLmd0RGltZW5zaW9uLnJvd0hlaWdodDtcclxuICAgICAgICBsZXQgaGVhZGVySGVpZ2h0ID0gdGhpcy5ndERpbWVuc2lvbi5oZWFkZXJIZWlnaHQ7XHJcbiAgICAgICAgbGV0IGRhdGFPblRvcEhlaWdodCA9IHRoaXMuZ3REaW1lbnNpb24uZGF0YU9uVG9wSGVpZ2h0O1xyXG4gICAgICAgIGxldCBtYXJnaW5Gcm9tQm90dG9tID0gdGhpcy5ndERpbWVuc2lvbi5tYXJnaW5Gcm9tQm90dG9tO1xyXG4gICAgICAgIGxldCBhY3R1YWxUYWJsZUhlaWdodDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZml4TnVtYmVyT2ZSb3dzRm9yUG9wdXApIHtcclxuICAgICAgICAgICAgbGV0IG1heE5vT2ZSb3dzVG9EaXNwbGF5ID0gdmlld3BvcnRIZWlnaHQgPCA3NDAgPyA1IDogMTA7XHJcbiAgICAgICAgICAgIHRoaXMubWF4aW11bVJvd3NXaGljaENhbkJlUmVuZGVyZWRXaXRob3V0U2Nyb2xsID0gbWF4Tm9PZlJvd3NUb0Rpc3BsYXk7XHJcbiAgICAgICAgICAgIGFjdHVhbFRhYmxlSGVpZ2h0ID0gdGhpcy5tYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGwgKiByb3dIZWlnaHQgKyBoZWFkZXJIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IG1pbkhlaWdodEZvclRhYmxlID0gaGVhZGVySGVpZ2h0ICsgMyAqIHJvd0hlaWdodDtcclxuICAgICAgICAgICAgdmlld3BvcnRIZWlnaHQgPSB2aWV3cG9ydEhlaWdodCA8PSBkYXRhT25Ub3BIZWlnaHQgPyBkYXRhT25Ub3BIZWlnaHQgKyBtaW5IZWlnaHRGb3JUYWJsZSA6IHZpZXdwb3J0SGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgaGVpZ2h0TGVmdEZvclRhYmxlID0gdmlld3BvcnRIZWlnaHQgLSBkYXRhT25Ub3BIZWlnaHQgLSBtYXJnaW5Gcm9tQm90dG9tO1xyXG4gICAgICAgICAgICB0aGlzLm1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbCA9XHJcbiAgICAgICAgICAgICAgICBNYXRoLmNlaWwoKGhlaWdodExlZnRGb3JUYWJsZSAtIGhlYWRlckhlaWdodCAtIHJvd0hlaWdodCkgLyByb3dIZWlnaHQpICsgMTtcclxuICAgICAgICAgICAgYWN0dWFsVGFibGVIZWlnaHQgPSB2aWV3cG9ydEhlaWdodCAtIGRhdGFPblRvcEhlaWdodCAtIG1hcmdpbkZyb21Cb3R0b207XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsZXQgYWN0dWFsVGFibGVIZWlnaHQgPSBoZWlnaHRMZWZ0Rm9yVGFibGUgLSAoKGhlaWdodExlZnRGb3JUYWJsZSAtIGhlYWRlckhlaWdodCAtIHJvd0hlaWdodCkgJSByb3dIZWlnaHQpO1xyXG5cclxuICAgICAgICB0aGlzLmd0RGltZW5zaW9uLnRhYmxlSGVpZ2h0ID0gYCR7YWN0dWFsVGFibGVIZWlnaHR9cHhgO1xyXG5cclxuICAgICAgICB0aGlzLm51bWJlck9mU2tlbGV0b25Sb3dzID0gdGhpcy5tYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGxcclxuICAgICAgICAgICAgPyBBcnJheSh0aGlzLm1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbCkuZmlsbCgwKVxyXG4gICAgICAgICAgICA6IEFycmF5KDUpLmZpbGwoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG9vbHRpcFJhZGlvTmFtZXMoKSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1N0YXJ0VGltZUZvckZpbHRlcicsICdTdGFydCBUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnRW5kVGltZUZvckZpbHRlcicsICdFbmQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3N0YXJ0VGltZUZvckZpbHRlcicsICdTdGFydCBUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZW5kVGltZUZvckZpbHRlcicsICdFbmQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3N0YXJ0X3RpbWVfZm9yX2ZpbHRlcicsICdTdGFydCBUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZW5kX3RpbWVfZm9yX2ZpbHRlcicsICdFbmQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3ByaW1hcnlBRU5hbWUnLCAnUHJpbWFyeSBBRScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JlZ2lvbicsICdSZWdpb24nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhZ2VuY3lOYW1lJywgJ0FnZW5jeScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2xvY2F0aW9uJywgJ0xvY2F0aW9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYWR2ZXJ0aXNlck5hbWUnLCAnQWR2ZXJ0aXNlcicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3Byb2R1Y3RDb2RlJywgJ1Byb2R1Y3QgQ29kZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ZsaWdodFN0YXJ0RGF0ZScsICdTdGFydCBEYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZmxpZ2h0RW5kRGF0ZScsICdFbmQgRGF0ZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ29yZGVySWRBbmRSZXZOdW1iZXInLCAnU1ROIE9yZGVyIy1SZXYjJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnc3RhdGlvbk9yZGVyTnVtYmVyJywgJ1NUTiBPcmRlciMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhbHRlcm5hdGVPcmRlcklkJywgJ0FsdC9SZXAgT3JkZXIgIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2dycCcsICdHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdjcHAnLCAnQ1BQJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnaW1wcycsICdJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnY3BtJywgJ0NQTScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ29mZmVyZWRNR3MnLCAnT2ZmZXJlZCBNRycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ291dHN0YW5kaW5nUEUnLCAnTy9TIFBFJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb2ZmZXJlZEFEVXMnLCAnT2ZmZXJlZCBBRFVzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndWREZWZpY2l0VmFsdWUnLCAnTy9TIEF1ZCBEZWx0YScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3N0YXJ0RW5kVGltZU11bHRpJywgJ1RpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRWYWx1ZScsICdCb29rZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRTcG90cycsICdTcG90cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1VzZXJDcmVkaXRlZFZhbHVlJywgJ1VzZXIgQ3JlZGl0ZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdVc2VyVW5yZXNvbHZlZFZhbHVlJywgJ1VzZXIgVW5yZXNvbHZlZCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0J1eWVyQWRkZWRWYWx1ZScsICdCdXllciBBZGRlZCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0J1eWVyRGVsZXRlZFZhbHVlJywgJ0J1eWVyIERlbGV0ZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1c2VyQ2hhbmdlcycsICdVc2VyIENoYW5nZXMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdidXllckNoYW5nZXMnLCAnQnV5ZXIgQ2hhbmdlcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3VzZXJNRycsICdVc2VyIE1HJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndXNlckFEVXMnLCAnVXNlciBBRFVzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnaW52ZW50b3J5Q29kZScsICdJbnZlbnRvcnkgQ29kZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3Byb2dyYW0nLCAnUHJvZ3JhbScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2FnZW5jeScsICdBZ2VuY3knKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhZHZlcnRpc2VyJywgJ0FkdmVydGlzZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGFydERhdGUnLCAnU3RhcnQgRGF0ZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2VuZERhdGUnLCAnRW5kIERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkYXRlJywgJ0RhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyY3ZQcmVlbXB0JywgJyQgTWFkZWdvb2QgUEVzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3NQcmVlbXB0JywgJyQgTy9TIFBFcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JjdlVuZGVyRGx5JywgJ1JlY292ZXJlZCBVRCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ29zVW5kZXJEbHknLCAnTy9zIFVuZGVyIERseScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3ByaW1hcnlBZScsICdQcmltYXJ5IEFFJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmVnaW9uJywgJ1JlZ2lvbicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JldkNvZGUxJywgJ1JldiBjb2RlIDEnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvcmRlck5vUmV2Tm8nLCAnU1ROIE9yZGVyIy1SZXYjJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmV2Q29kZTInLCAnUmV2IGNvZGUgMicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JldkNvZGUzJywgJ1JldiBjb2RlIDMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWQnLCAnJCBCb29rZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzcG90cycsICdTcG90cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3Bvc3RlZEF1ZFBlcmNlbnQnLCAnUG9zdGVkICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyZXZpc2lvbicsICdSZXZpc2lvbicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2J1eWVyT3JkZXJJZCcsICdBTFQvUkVQIE9yZGVyIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2RlbW8nLCAnRGVtbycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhdmVyYWdlUmF0ZVRoaXNZZWFyJywgJ0F2Zy4gUmF0ZSAoVFkpJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZVJhdGVMYXN0WWVhcicsICdBdmcuIFJhdCAoTFkpJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZUNQUCcsICdBdmcuIENQUCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2F2ZXJhZ2VDUE0nLCAnQXZnLiBDUE0nKTtcclxuICAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnSU1QU0RpZmYnLCBcIklNUFMgKCcwMDApIERpZmYuXCIpO1xyXG4gICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdSVEdEaWZmJywgJ1JURyBEaWZmLicpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRBZHUnLCAnJCBQb3N0ZWQgQURVcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3NjaGVkdWxlZEFkdScsICckIFNjaGVkdWxlZCBBRFVzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXVkaWVuY2VEZWZpY2l0JywgJyQgTy9TIEF1ZGllbmNlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXVkUGVyY2VudCcsICdQb3N0ZWQgQXVkaWVuY2UgJScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3BvdGVudGlhbFVuaXRzVmFsdWUnLCAnUE9UIFVuaXRzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkVW5pdHNWYWx1ZScsICdCb29rZWQgRXEgVW5pdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRBbW91bnRXaXRoWmVyb1JhdGluZ1ZhbHVlJywgJ1RvdGFsICQgQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQW1vdW50UGVyY2VudGFnZVdpdGhaZXJvUmF0aW5nVmFsdWUnLCAnJSBBZ2FpbnN0IEFsbCBEZW1vcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEFtb3VudFdpdGhvdXRaZXJvUmF0aW5nVmFsdWUnLCAnJEJvb2tlZCBXaXRoIEltcHMo4oCZMDAwKScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEFtb3VudFBlcmNlbnRhZ2VXaXRob3V0WmVyb1JhdGluZ1ZhbHVlJywgJyUgQWdhaW5zdCBBbGwgRGVtb3MnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndG90YWxCb29rZWRBbW91bnRWYWx1ZScsICdUb3RhbCAkQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZVVuaXRSYXRlVmFsdWUnLCAnIEFVUicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3RvdGFsQm9va2VkQW1vdW50V2l0aFJhdGluZ1ZhbHVlJywgJyRCb29rZWQgV2l0aCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhdmVyYWdlVW5pdFJhdGVXaXRoUmF0aW5nVmFsdWUnLCAnQVVSIFdpdGggUmF0aW5nJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3RvdGFsQm9va2VkQW1vdW50V2l0aEltcHJlc3Npb25WYWx1ZScsICckQm9va2VkIFdpdGggSU1QUycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2F2ZXJhZ2VVbml0UmF0ZVdpdGhJbXByZXNzaW9uVmFsdWUnLCAnQVVSIFdpdGggSU1QUycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRVbml0c1dpdGhSYXRpbmdWYWx1ZScsICdCb29rZWQgVW5pdHMgV2l0aCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRVbml0c1dpdGhSYXRpbmdWYWx1ZScsICdQb3N0ZWQgVW5pdHMgV2l0aCBSYXRpbmcnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkVW5pdHNXaXRoSW1wcmVzc2lvblZhbHVlJywgJ0Jvb2tlZCBVbml0cyBXaXRoIElNUFMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRVbml0c1dpdGhJbXByZXNzaW9uVmFsdWUnLCAnUG9zdGVkIFVuaXRzIFdpdGggSU1QUycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRSYXRpbmdzJywgJ0Jvb2tlZCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRSYXRpbmdzJywgJ1BPU1RFRCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdQb3N0ZWRSYXRpbmcnLCAnUG9zdGVkIFJURycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRJbXByZXNzaW9ucycsIFwiQm9va2VkIElNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRJbXByZXNzaW9ucycsIFwiUG9zdGVkIElNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdQb3N0ZWRJbXByZXNzaW9ucycsIFwiUG9zdGVkIElNUCgnMDAwKVwiKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQXZlcmFnZVJhdGluZycsICdCb29rZWQgQVUgUmF0aW5nJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXZlcmFnZVJhdGluZycsICdQb3N0ZWQgQVUgUmF0aW5nJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEF2ZXJhZ2VJbXByZXNzaW9uJywgJ0Jvb2tlZCBBVSBJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXZlcmFnZUltcHJlc3Npb24nLCAnUG9zdGVkIEFVIElNUFMnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQ3BwVmFsdWUnLCAnQm9va2VkIENQUCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEVmZmVjdGl2ZUNwcFZhbHVlJywgJ0VmZmVjdGl2ZSBDUFAnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQ3BtVmFsdWUnLCAnQm9va2VkIENQTScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEVmZmVjdGl2ZUNwbVZhbHVlJywgJ0VmZmVjdGl2ZSBDUE0nKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3JkZXJTb3VyY2UnLCAnT3JkZXIgUm91dGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvcmRlckNhdGVnb3J5JywgJ1JldiBDYXRlZ29yeScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Nhc2hPclRyYWRlJywgJ0MvVCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JldmlzaW9uU3RhcnREYXRlJywgJ1JldmlzaW9uIFN0YXJ0IERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCduYW1lJywgJ25hbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyb2xlJywgJ3JvbGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGF0aW9uQ291bnQnLCAnc3RhdGlvbkNvdW50Jyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnc3RhdGlvbkxpc3QnLCAnc3RhdGlvbkxpc3QnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhcHByb3ZlZE9uJywgJ0FwcHJvdmVkIE9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXBwcm92ZWRCeScsICdBcHByb3ZlZCBCeScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ09ESW1wcycsICdQcm9qLiBPRCBJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnVURJbXBzJywgJ1Byb2ouIFVEIElNUFMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPREdycCcsICdQcm9qLiBPRCBHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdVREdycCcsICdQcm9qLiBVRCBHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1ZEltcHNQZXJjZW50JywgJ1Byb2ouIFVEICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1ZEdycFBlcmNlbnQnLCAnUHJvai4gVUQgR1JQICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvZEltcHNQZXJjZW50JywgJ1Byb2ouIE9EICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvZEdycFBlcmNlbnQnLCAnUHJvai4gT0QgR1JQICUnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnUmV2aXNpb25OdW1iZXInLCAnUmV2aXNpb24gIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1JldmlzaW9uVHlwZScsICdSZXZpc2lvbiBUeXBlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnR2VuZXJhdGVkT24nLCAnR2VuZXJhdGVkIE9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQm9va2VkVmFsdWVGb3JEaXNwbGF5JywgJyQgQk9PS0VEJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQm9va2VkVmFsdWUnLCAnJCBCb29rZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRTcG90cycsICdTcG90cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZEdSUCcsICdHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRJTVBTUmV2VGFiJywgXCJJTVBTJygwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZENQUCcsICdDUFAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRDUE0nLCAnQ1BNJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTUdzVmFsdWVGb3JEaXNwbGF5JywgJyQgTUdTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTUdzVmFsdWUnLCAnJCBNR1MnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBRFVzVmFsdWVGb3JEaXNwbGF5JywgJyQgQURVUycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0FEVXNWYWx1ZScsICckIEFEVVMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckNoYW5nZXNWYWx1ZUZvckRpc3BsYXknLCAnJCBCdXllciBDaGFuZ2UnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckNoYW5nZXNWYWx1ZScsICckIEJ1eWVyIENoYW5nZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1VzZXJDaGFuZ2VzVmFsdWVGb3JEaXNwbGF5JywgJyQgU2VsbGVyIFVzZXIgQ2hhbmdlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnVXNlckNoYW5nZXNWYWx1ZScsICckIFNlbGxlciBVc2VyIENoYW5nZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1NlbGxlckxpbmUnLCAnU2VsbGVyIExpbmUgIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0J1eWVyTGluZScsICdCdXkgTGluZSAjJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnU3BvdFN0YXR1cycsICdTcG90IFN0YXR1cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0ludmVudG9yeUNvZGUnLCAnSW52ZW50b3J5IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllclByb2dyYW1OYW1lJywgJ0J1eWVyIFByb2dyYW0gTmFtZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1JldmVudWVDbGFzcycsICdSZXZlbnVlIENsYXNzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnV2Vla2x5QVVSJywgJ0Jvb2tlZCBBdmcuIFJhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRSYXRlJywgJ0Jvb2tlZCBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZVJhdGUnLCAnQXZlcmFnZSBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQXZlcmFnZVJhdGUnLCAnQm9va2VkIEFWRy4gUmF0ZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2RvbGxhcklNUFNJbXBhY3QnLCAnJCBJTVBTIEltcGFjdCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2RvbGxhclJUR0ltcGFjdCcsICckIFJURyBJTVBBQ1QnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdJTVBTSW1wYWN0JywgXCJJTVBTICgnMDAwKSBJTVBBQ1RcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnUlRHSW1wYWN0JywgJ1JURyBJbXBhY3QnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnaW52ZW50b3J5RmlsbFBlcmNlbnRhZ2VTYW1lV2VlaycsICdJbnYgRmlsbCBTYW1lIFdlZWsgKExZKScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ludmVudG9yeUZpbGxQZXJjZW50YWdlRmluYWwnLCAnSW52IEZpbGwgRmluYWwgKExZKScpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcm9qZWN0ZWRSVEcnLCAnUHJvamVjdGVkIFJURycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3Byb2plY3RlZElNUFMnLCBcIlByb2plY3RlZCBJTVBTKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Rlc2lyZWRDUE0nLCAnRGVzaXJlZCBDUE0nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkZXNpcmVkQ1BQJywgJ0Rlc2lyZWQgQ1BQJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3JpZ2luJywgJ09yaWdpbicpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRSVEcnLCAnQm9va2VkIFJURycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZElNUFMnLCBcIkJvb2tlZCBJTVBTKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0lNUFMnLCBcIklNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBVVJURycsICdBdmcgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQVVJTVBTJywgXCJBdmcgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Bvc3RlZFJhdGluZ3NPckltcHJlc3Npb25zJywgJ1Bvc3RlZCBSVEcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdTY2hlZHVsZUZsaWdodFdlZWsnLCAnU2NoZWR1bGUgV2VlaycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1NjaGVkdWxlZERheScsICdTY2hlZHVsZWQgRGF5Jyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQWlyU3RhdHVzJywgJ0FpciBTdGF0dXMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBaXJEYXRlQW5kVGltZScsICdBaXIgRGF0ZSAmIFRpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBaXJEYXRlJywgJ0FpciBEYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZE9yZGVyZWRSYXRpbmcnLCAnTm9ybWFsaXplZCBCb29rZWQgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZE9yZGVyZWRJbXByZXNzaW9ucycsIFwiTm9ybWFsaXplZCBCb29rZWQgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ05vcm1hbGl6ZWRQb3N0ZWRSYXRpbmcnLCAnTm9ybWFsaXplZCBQb3N0ZWQgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZFBvc3RlZEltcHJlc3Npb25zJywgXCJOb3JtYWxpemVkIFBvc3RlZCBJTVAoJzAwMClcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQWRJZCcsICdBZC1JZCcpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkaXNwbGF5aW1wcycsICdJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZGlzcGxheUdycCcsICdHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRTcG90c0ZvckRpc3BsYXknLCAnU3BvdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkaXNwbGF5U3BvdHMnLCAnU3BvdHMnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZXN0aW1hdGVObycsICdFc3RpbWF0ZSMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcmltYXJ5QnV5ZXInLCAnUHJpbWFyeSBCdXllcicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3ByaW1hcnlCdXllck5hbWUnLCAnUHJpbWFyeSBCdXllcicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3NlY29uZGFyeUJ1eWVyTmFtZScsICdTZWNvbmRhcnkgQnV5ZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzZWNvbmRhcnlCdXllcicsICdTZWNvbmRhcnkgQnV5ZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd0aW1lb3V0RGF0ZScsICdUaW1lb3V0IERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdEaXNwbGF5dFNwb3RTdGF0dXNCSScsICdTcG90IFN0YXR1cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0xpbmVTcG90JywgJ0xpbmUuU3BvdCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0x1cldpbmRvd05hbWUnLCAnUG9saXRpY2FsIFdpbmRvdycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdsZW5ndGgnLCAnTGVuZ3RoJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmV2Q2xhc3MnLCAnUmV2IENsYXNzJyk7XHJcblxyXG4gICAgICAgIC8vIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoXCJ1ZFZhbHVlXCIsIFwiJCBVRFwiKTtcclxuICAgICAgICAvLyB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KFwib2RWYWx1ZVwiLCBcIiQgT0RcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndWRWYWx1ZScsICdQcm9qLiAkIFVEJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb2RWYWx1ZScsICdQcm9qLiAkIE9EJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZUludmVudG9yeUNvZGUnLCAnSW52ZW50b3J5IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVCdXllclByb2dyYW1OYW1lJywgJ0J1eWVyIFByb2dyYW0gTmFtZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZVN0YXJ0VGltZScsICdTdGFydCBUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnT3RoZXJBdmFpbGFibGVTcG90c1RhYmxlRW5kVGltZScsICdFbmQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZVdlZWtseUFVUicsICdCb29rZWQgQXZnLiBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnT3RoZXJBdmFpbGFibGVTcG90c1RhYmxlRGlzcGxheVJldmVudWVDbGFzcycsICdSZXYgQ2xhc3MnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVBY3R1YWxXZWVrU3RhcnREYXRlJywgJ1dlZWsnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVXZWVrRGF5JywgJ0RheScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZURpc3BsYXlMZW5ndGgnLCAnTGVuZ3RoJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Byb2plY3RlZEltcHJlc3Npb25zJywgXCJQcm9qZWN0ZWQgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Byb2plY3RlZFJ0ZycsICdQcm9qZWN0ZWQgUlRHJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0T3JVbnNlbGVjdENoZWNrYm94KHJvd0RhdGE6IGFueSwgY29sdW1uS2V5czogYW55LCBpc0NoZWNrYm94U2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgICAgIHJvd0RhdGFbY29sdW1uS2V5c10gPSAhcm93RGF0YVtjb2x1bW5LZXlzXTtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94LmVtaXQoeyByb3dEYXRhLCBjb2x1bW5LZXlzLCBpc0NoZWNrYm94U2VsZWN0ZWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0T3JVbnNlbGVjdFJhZGlvYm94KHJvd0RhdGE6IGFueSwgY29sdW1uS2V5czogYW55LCBpc0NoZWNrYm94U2VsZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAocm93RGF0YVtjb2x1bW5LZXlzXSA9PSBpc0NoZWNrYm94U2VsZWN0ZWQpIHJldHVybjtcclxuICAgICAgICByb3dEYXRhW2NvbHVtbktleXNdID0gaXNDaGVja2JveFNlbGVjdGVkO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3guZW1pdCh7IHJvd0RhdGEsIGNvbHVtbktleXMsIGlzQ2hlY2tib3hTZWxlY3RlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RVbnNlbGVjdEFsbFJvd3MoKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVIZWFkZXJDaGVja2JveC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VW5zZWxlY3RSb3cocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVSb3dDaGVja2JveC5lbWl0KHJvd0RhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHVuZG9DcmVkaXRlZFNwb3QoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bmRvSWNvbkNsaWNrZWQuZW1pdCh7IGRhdGEsIG1nT3JDcmVkaXQ6ICdDcmVkaXQnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVuZG9NZ1Nwb3QoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bmRvSWNvbkNsaWNrZWQuZW1pdCh7IGRhdGEsIG1nT3JDcmVkaXQ6ICdNYWtlR29vZCcgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Tb3J0IGFuZCBGaWx0ZXIgTG9naWMgYmVnaW5zIVxyXG4gICAgY2xvc2VUb29sdGlwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXAgJiYgdGhpcy50b29sdGlwLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSBudWxsO1xyXG4gICAgICAgIGlmICghdGhpcy5iaW5kVmFsdWVGdW5jQ2FsbGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1uRmlsdGVyQ2xvc2VkLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNUb29sdGlwQWN0aXZlKGhlYWRlcjogYW55W10pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc1Rvb2x0aXBBY3RpdmUoaGVhZGVyLCB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0b29sdGlwOiBhbnksIGhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmJpbmRWYWx1ZUZ1bmNDYWxsZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIGlmIHNhbWUgdG9vbHRpcCBvcGVuZWQgY2xvc2UgaXRcclxuICAgICAgICBpZiAodG9vbHRpcCA9PSB0aGlzLnRvb2x0aXApIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kVmFsdWVGdW5jQ2FsbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGVuYWJsZWRIZWFkZXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrSWZVbmlxdWVWYWx1ZVByZXNlbnRGb3JUaGVIZWFkZXIoaGVhZGVyLCBlbmFibGVkSGVhZGVycyk7XHJcbiAgICAgICAgICAgIHRoaXMub3BlblRvb2x0aXAodG9vbHRpcCwgZW5hYmxlZEhlYWRlcnMsIGhlYWRlcik7XHJcblxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8IDE1MDAgJiZcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCA8IDc2OCAmJlxyXG4gICAgICAgICAgICAgICAgIXRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2xpZGVyU2V0LmhhcyhoZWFkZXIuZmlsdGVyU29ydE9iamVjdEtleXNbMF0pXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJPcGVuZWQuZW1pdCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNob3dDaGVja2JveGVzRm9yVGltZUZpbHRlciA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1NQT1RERVRBSUxTJyB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdFWENMVURFSU5WRU5UT1JZUE9QVVAnIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLmd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlclRvb2x0aXBUYWJzID0gaGVhZGVyLmZpbHRlclNvcnRPYmplY3RLZXlzLmxlbmd0aCA+IDE7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZFZhbHVlRnVuY0NhbGxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja0lmVW5pcXVlVmFsdWVQcmVzZW50Rm9yVGhlSGVhZGVyKGhlYWRlcjogSUhlYWRlckluZm8sIGVuYWJsZWRIZWFkZXJzOiBhbnlbXSkge1xyXG4gICAgICAgIGhlYWRlci5maWx0ZXJTb3J0T2JqZWN0S2V5cy5mb3JFYWNoKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFUb0NoZWNrID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5nZXRGaWx0ZXJPcHRpb25zRGF0YSh0aGlzLnRhYmxlRGF0YSwgdGhpcy5jbG9uZWRUYWJsZURhdGEsIGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXRlbSA9PSAncGVyaW9kJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVuaXFTdGFydERhdGUgPSB1bmlxKGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ3N0YXJ0RGF0ZSddKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdW5pcUVuZERhdGUgPSB1bmlxKGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ2VuZERhdGUnXSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHVuaXFTdGFydERhdGUubGVuZ3RoID4gMSB8fCB1bmlxRW5kRGF0ZS5sZW5ndGggPiAxIHx8IHRoaXMuaXNUb29sdGlwQWN0aXZlKFtpdGVtXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVkSGVhZGVycy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbaXRlbV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgbGFzdCBhcHBsaWVkIGZpbHRlciBpcyB0aGlzIGhlYWRlciwgcHVzaCBpdCBhbG9zIGFzIGVuYWJsZWRIZWFkZXJcclxuICAgICAgICAgICAgICAgIGxldCBhY3RpdmVBbmRMYXN0bHlBcHBsaWVkSGVhZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXlbdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCAtIDFdID09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1cclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUFuZExhc3RseUFwcGxpZWRIZWFkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5maWx0ZXIgPT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh1bmlxKHZhbHVlcykuZmlsdGVyKChuKSA9PiBuICE9IG51bGwpLmxlbmd0aCA+IDEgfHwgYWN0aXZlQW5kTGFzdGx5QXBwbGllZEhlYWRlcilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZWRIZWFkZXJzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5maWx0ZXIgIT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh1bmlxKHZhbHVlcykuZmlsdGVyKChuKSA9PiBuICE9IG51bGwgJiYgbiAhPSAnLScpLmxlbmd0aCA+IDEgfHwgYWN0aXZlQW5kTGFzdGx5QXBwbGllZEhlYWRlcilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZWRIZWFkZXJzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuVG9vbHRpcCh0b29sdGlwOiBhbnksIGhlYWRlcjogYW55LCBjb2x1bW5IZWFkZXI6IElIZWFkZXJJbmZvKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2x0aXAoKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcC5vcGVuKCk7XHJcbiAgICAgICAgLy9jb252ZXJ0IGtleSBpbnRvIHRoZSBoZWFkZXJcclxuICAgICAgICB0aGlzLmZpbHRlclRhYk9iamVjdHMgPSBoZWFkZXIubWFwKChrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuaGFzKGtleSkgPyB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuZ2V0KGtleSkgOiBrZXk7IC8vY2hhbmdlIHRvIGRpc3BsYXkgbmFtZVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IHJhZGlvQnV0dG9uTW9kZWwoXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlci5pc1NvcnRSZXF1aXJlZFtpbmRleF0sXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIuaXNGaWx0ZXJSZXF1aXJlZFtpbmRleF0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUVuYWJsZUVhY2hDb2x1bW5Ub29sdGlwSWNvbigpIHtcclxuICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IHtcclxuICAgICAgICAgICAgaGVhZGVyLmhlYWRlckluZm8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uc2hvd1Rvb2x0aXBJY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJTb3J0T2JqZWN0S2V5cy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhdGVzdEZpbHRlcnMgPSB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlc3RGaWx0ZXJzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlc3RGaWx0ZXJzW2xhdGVzdEZpbHRlcnMubGVuZ3RoIC0gMV0gPT0ga2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlVG9vbHRpcEljb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICdwZXJpb2QnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVuaXFTdGFydERhdGUgPSB1bmlxKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YS5tYXAoKHU6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PiB1WydzdGFydERhdGUnXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5pcUVuZERhdGUgPSB1bmlxKHRoaXMudGFibGVEYXRhLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ2VuZERhdGUnXSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVUb29sdGlwSWNvbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXFTdGFydERhdGUubGVuZ3RoID4gMSB8fCB1bmlxRW5kRGF0ZS5sZW5ndGggPiAxID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSB0aGlzLnRhYmxlRGF0YS5tYXAoKHU6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PiB1W2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0uZmlsdGVyID09ICdDSEVDS0JPWCcgJiYgdW5pcSh2YWx1ZXMpLmZpbHRlcigobikgPT4gbiAhPSBudWxsKS5sZW5ndGggPiAxKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbS5maWx0ZXIgIT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcSh2YWx1ZXMpLmZpbHRlcigobikgPT4gbiAhPSBudWxsICYmIG4gIT0gJy0nKS5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVUb29sdGlwSWNvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRNYXJnaW5MZWZ0Rm9yRmlsdGVySWNvbigpIHtcclxuICAgICAgICBsZXQgZWxlbWVudEFyciA9IHRoaXMudmlld0NoaWxkVGFibGVIZWFkZXJzLnRvQXJyYXkoKTtcclxuICAgICAgICBlbGVtZW50QXJyLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoaWxkRGl2RWxlbWVudHMgPSBpdGVtLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XHJcblxyXG4gICAgICAgICAgICBpZiAoY2hpbGREaXZFbGVtZW50cy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGg6IG51bWJlciA9IGNoaWxkRGl2RWxlbWVudHNbMF0/LmNoaWxkcmVuWzBdPy5vZmZzZXRXaWR0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGREaXZFbGVtZW50c1swXT8uY2hpbGRyZW5bMF0/Lm9mZnNldFdpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlY29uZFBhcmFncmFwaE9mZnNldFdpZHRoOiBudW1iZXIgPSBjaGlsZERpdkVsZW1lbnRzWzFdLmNoaWxkcmVuWzBdPy5vZmZzZXRXaWR0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblswXT8ub2Zmc2V0V2lkdGhcclxuICAgICAgICAgICAgICAgICAgICA6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGggPiBzZWNvbmRQYXJhZ3JhcGhPZmZzZXRXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkaWZmID0gZmlyc3RQYXJhZ3JhcGhPZmZzZXRXaWR0aCAtIHNlY29uZFBhcmFncmFwaE9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZERpdkVsZW1lbnRzWzBdLmNoaWxkcmVuLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRGl2RWxlbWVudHNbMF0uY2hpbGRyZW5bMV0uc3R5bGUubWFyZ2luTGVmdCA9IDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMV0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gZGlmZiArIDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBzZWNvbmRQYXJhZ3JhcGhPZmZzZXRXaWR0aCAtIGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMF0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1swXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gZGlmZiArIDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMV0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gNCArICdweCc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YVJvd0NsaWNrZWQocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5yb3dDbGlja2VkLmVtaXQocm93RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmFkaW9CdXR0b25DbGlja2VkKGRhdGE6IGFueSwgYWN0aW9uOiBzdHJpbmcsIGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvblNlbGVjdGVkLmVtaXQoeyBkYXRhLCBhY3Rpb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJpbmRUaGVWYWx1ZVRvU2VsbGVyR3JvdXBUb29sdGlwKHNlbGxlckdyb3VwSGllcmFyY2h5OiBSYXRpbmdTZWxsZXJHcm91cEhpZXJhcmNoeVtdLCB0b29sdGlwOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHlUb29sdGlwICYmIHRoaXMuaGllcmFyY2h5VG9vbHRpcC5vcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGllcmFyY2h5VG9vbHRpcC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGxlckdyb3VwSGllcmFyY2h5ID0gc2VsbGVyR3JvdXBIaWVyYXJjaHk7XHJcbiAgICAgICAgdGhpcy5oaWVyYXJjaHlUb29sdGlwID0gdG9vbHRpcDtcclxuICAgICAgICB0aGlzLmhpZXJhcmNoeVRvb2x0aXAub3BlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGljb25DbGlja2VkKHJvd0RhdGE6IGFueSwgaWNvbkNsYXNzOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoJ29yZGVySWQnIGluIHJvd0RhdGEgJiYgaWNvbkNsYXNzLmluY2x1ZGVzKCdtZGktc3RhcicpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFycmVkT3JkZXJJZCA9IHJvd0RhdGEub3JkZXJJZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ3RJY29uQ2xpY2tlZC5lbWl0KHsgZGF0YTogcm93RGF0YSwgaWNvbkNsYXNzOiBpY29uQ2xhc3MgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnSWNvbkNsaWNrZWQoZGF0YTogR3RDb2x1bW5JY29uRW1pdHRlZERhdGEpIHtcclxuICAgICAgICB0aGlzLmd0U1ZHSWNvbkNsaWNrZWQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0ZXh0QWN0aW9uQ2xpY2tlZChyb3dEYXRhOiBhbnksIGlkOiBhbnksIGNvbHVtbkhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmd0VGV4dEFjdGlvbkNsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEsIGlkOiBpZCwgY29sdW1uSGVhZGVyOiBjb2x1bW5IZWFkZXIsIGlzSWNvbkNsaWNrZWQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGljb25DbGlja2VkT25TdHJpbmdJY29uQWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIGlkOiBhbnksIGNvbHVtbkhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmd0VGV4dEFjdGlvbkNsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEsIGlkOiBpZCwgY29sdW1uSGVhZGVyOiBjb2x1bW5IZWFkZXIsIGlzSWNvbkNsaWNrZWQ6IHRydWUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5uZXJIVE1MQ2VsbENsaWNrZWQoZXZlbnQ6IGFueSwgcm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5ndElubmVySFRNTENsaWNrZWQuZW1pdCh7IGV2ZW50LCByb3dEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZpZXdEZXRhaWxzQ2xpY2tlZChyb3dEYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmd0Vmlld0RldGFpbENsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QWN0aXZlU3RhdGVPYmplY3QoKSB7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgPVxyXG4gICAgICAgICAgICAhdGhpcy5hbm5hRmlsdGVyU2VydmljZS5yZXNldEZpbHRlclNvcnRBY3RpdmVTdGF0dXMgfHwgdGhpcy5tdWx0aXBsZVRhYmxlc1ByZXNlbnRcclxuICAgICAgICAgICAgICAgID8gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmVcclxuICAgICAgICAgICAgICAgIDoge307XHJcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmhlYWRlckluZm8uZm9yRWFjaCgoaGVhZGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLnNob3dUb29sdGlwSWNvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSBoZWFkZXIuZmlsdGVyU29ydE9iamVjdEtleXMuam9pbignLCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5cyA9IGtleTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBBTk5BLTQxMTMgZml4XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYW5uYUZpbHRlclNlcnZpY2UucmVzZXRGaWx0ZXJTb3J0QWN0aXZlU3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2tleV0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UucmVzZXRGaWx0ZXJTb3J0QWN0aXZlU3RhdHVzID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJc0RpZmZlcmVuY2UodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzRGlmZmVyZW5jZUxlc3NUaGFuMjVQZXJjZW50ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXRJbmRleCgpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gMDtcclxuICAgICAgICB0aGlzLmVuZCA9IHRoaXMubGltaXQgKyB0aGlzLnN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uVGFibGVDb250YWluZXJTY3JvbGwoZTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgdGFibGVWaWV3SGVpZ2h0ID0gZS50YXJnZXQub2Zmc2V0SGVpZ2h0OyAvLyB2aWV3cG9ydFxyXG4gICAgICAgIGNvbnN0IHRhYmxlU2Nyb2xsSGVpZ2h0ID0gZS50YXJnZXQuc2Nyb2xsSGVpZ2h0OyAvLyBsZW5ndGggb2YgYWxsIHRhYmxlXHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsTG9jYXRpb24gPSBlLnRhcmdldC5zY3JvbGxUb3A7IC8vIGhvdyBmYXIgdXNlciBzY3JvbGxlZFxyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZVRvb2x0aXBPblNjcm9sbCgpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgd2l0aGluIDE1MHB4IG9mIHRoZSBib3R0b20sIGFkZCBtb3JlIGRhdGFcclxuICAgICAgICBjb25zdCBidWZmZXIgPSAxNTA7XHJcbiAgICAgICAgY29uc3QgbGltaXQgPSB0YWJsZVNjcm9sbEhlaWdodCAtIHRhYmxlVmlld0hlaWdodCAtIGJ1ZmZlcjtcclxuICAgICAgICBpZiAoc2Nyb2xsTG9jYXRpb24gPiBsaW1pdCkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0VGFibGVEYXRhKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSB0aGlzLnJlbmRlcmVkRGF0YS5jb25jYXQoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5kZXgoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbnRhaW5lclNjcm9sbGVkKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRhYmxlRGF0YShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoKHZhbHVlLCBpbmRleCkgPT4gaW5kZXggPj0gc3RhcnQgJiYgaW5kZXggPCBlbmQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUluZGV4KCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSB0aGlzLmVuZDtcclxuICAgICAgICB0aGlzLmVuZCA9IHRoaXMubGltaXQgKyB0aGlzLnN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEluaXRpYWxSb3dzRm9yVGFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldEluZGV4KCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSB0aGlzLmdldFRhYmxlRGF0YSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVJbmRleCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNwb3REZXRhaWxzRG93bmxvYWRDbGlja2VkKHBhcmVudENoaWxkT3JUb3RhbFJvdzogJ0RBVEFST1cnIHwgJ1RPVEFMUk9XJywgcm93ZGF0YT86IGFueSkge1xyXG4gICAgICAgIGlmIChyb3dkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbnZlbnRvcnlJZEZvckRvd25sb2FkID0gcm93ZGF0YS5pbnZlbnRvcnlDb2RlSWQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZW1vZ3JhcGhpY0ZvckRvd25sb2FkID0gcm93ZGF0YS5kZW1vZ3JhcGhpYztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW52ZW50b3J5SWRGb3JEb3dubG9hZCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZW1vZ3JhcGhpY0ZvckRvd25sb2FkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd1R5cGVGb3JEb3dubG9hZCA9IHBhcmVudENoaWxkT3JUb3RhbFJvdztcclxuICAgICAgICB0aGlzLmRvd25sb2FkU3BvdERldGFpbHMuZW1pdCh7XHJcbiAgICAgICAgICAgIHBhcmVudENoaWxkT3JUb3RhbFJvdzogcGFyZW50Q2hpbGRPclRvdGFsUm93LFxyXG4gICAgICAgICAgICBpbnZlbnRvcnlDb2RlSWQ6IHRoaXMuc2VsZWN0ZWRJbnZlbnRvcnlJZEZvckRvd25sb2FkLFxyXG4gICAgICAgICAgICBkZW1vZ3JhcGhpYzogdGhpcy5zZWxlY3RlZERlbW9ncmFwaGljRm9yRG93bmxvYWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGFibGVDb250YWluZXJTY3JvbGxlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5pc1Njcm9sbGVkTGVmdCA9IGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0ID4gMDtcclxuICAgICAgICB0aGlzLmlzU2Nyb2xsRW5kZWQgPSBNYXRoLnJvdW5kKGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0KSA9PSBldmVudC50YXJnZXQuc2Nyb2xsV2lkdGggLSBldmVudC50YXJnZXQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwT25TY3JvbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIHRvb2x0aXBLZXk6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudGV4dEFjdGlvblRvb2x0aXAgPSByb3dEYXRhW3Rvb2x0aXBLZXldO1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uSWNvbkhvdmVyLmVtaXQoeyByb3dEYXRhOiByb3dEYXRhLCB0eXBlOiAnb24tZW50ZXInIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG1vdXNlRW50ZXJPblN0cmluZ1RleHRBY3Rpb25UeXBlQ29udGFpbmluZ1RhYmxlKHJvd0RhdGE6IGFueSwgdG9vbHRpcEtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwQ29udGFpbmluZ1RhYmxlID0gcm93RGF0YVt0b29sdGlwS2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUxlYXZlVGV4dEFjdGlvblR5cGUocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JY29uSG92ZXJMZWF2ZS5lbWl0KHsgcm93RGF0YTogcm93RGF0YSwgdHlwZTogJ29uLWxlYXZlJyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUVudGVyT25UZXh0QWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIHRvb2x0aXBLZXk6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudGV4dEFjdGlvblRvb2x0aXAgPSByb3dEYXRhW3Rvb2x0aXBLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2thYmxlRGF0YUNsaWNrZWQoUm93ZGF0YTogYW55LCBpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGlja2FibGVEYXRhQ2xpY2tlZC5lbWl0KHsgZGF0YTogUm93ZGF0YSwgaWQ6IGlkIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVRvb2x0aXBPblNjcm9sbCgpIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbWFya3MtaW5mby10b29sdGlwJyk7XHJcbiAgICAgICAgLy8gY29uc3QgdG9vbHRpcEVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRvb2x0aXBcIik7XHJcbiAgICAgICAgY29uc3QgZ3RUb29sdGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVtb3ZlLW9uLXNjcm9sbC1jbGFzcycpO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50b29sdGlwOm5vdCgua2VlcC1vbi1zY3JvbGwtdG9vbHRpcCknKS5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHdoaWxlIChlbGVtZW50cyAmJiBlbGVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnRzWzBdLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aGlsZSAoZ3RUb29sdGlwICYmIGd0VG9vbHRpcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGd0VG9vbHRpcFswXS5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWNvbkNsaWNrZWRJblRvdGFsUm93KGNvbE5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudG90YWxSb3dJY29uQ2xpY2tlZC5lbWl0KGNvbE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZXNNYWRlSW5FZGl0YWJsZUlucHV0Qm94KGV2ZW50OiBhbnksIGVkaXRlZE9iamVjdDogYW55LCBwYXN0ZUV2ZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IGVudGVyZWRWYWx1ZSA9IHBhc3RlRXZlbnQgPyBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKSA6IGV2ZW50LmtleTtcclxuICAgICAgICBsZXQgZG90SW5kZXggPSBlZGl0ZWRPYmplY3QudmFsdWUuaW5kZXhPZignLicpO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgIT0gOCAmJlxyXG4gICAgICAgICAgICBldmVudC5rZXlDb2RlICE9IDQ2ICYmXHJcbiAgICAgICAgICAgICEoZXZlbnQua2V5Q29kZSA+PSAzNyAmJiBldmVudC5rZXlDb2RlIDw9IDQwKSAmJlxyXG4gICAgICAgICAgICAoKCFlZGl0ZWRPYmplY3Q/LmFsbG93U3BlY2lhbENoYXJhY3RlcnMgJiYgIS9bYDAtOS5dLy50ZXN0KGVudGVyZWRWYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICAoZWRpdGVkT2JqZWN0Py5jaGFyYWN0ZXJzVG9SZXN0cmljdCAmJiBlZGl0ZWRPYmplY3Q/LmNoYXJhY3RlcnNUb1Jlc3RyaWN0LmluY2x1ZGVzKGVudGVyZWRWYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICAoZWRpdGVkT2JqZWN0LmlzRGVjaW1hbFBvaW50Q2hlY2tSZXF1aXJlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGRvdEluZGV4ID49IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICBldmVudD8udGFyZ2V0Py5zZWxlY3Rpb25TdGFydCA+IGRvdEluZGV4ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgZWRpdGVkT2JqZWN0LnZhbHVlLmxlbmd0aCAtIChkb3RJbmRleCArIDEpID49IGVkaXRlZE9iamVjdC5tYXhEZWNpbWFsUG9pbnRzQWxsb3dlZCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVkaXRhYmxlSW5wdXRWYWx1ZUNoYW5nZWQodmFsdWU6IGFueSwgcm93OiBhbnksIGtleUVkaXRlZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZUlucHV0RWRpdGVkLmVtaXQoeyByb3c6IHJvdywgdmFsdWU6IHZhbHVlLCBrZXlFZGl0ZWQ6IGtleUVkaXRlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICByYWRpb0J1dHRvbkljb25DbGlja2VkKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25NZXNzYWdlSWNvbkNsaWNrZWQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJBcHBsaWVkKHRhYmxlRGF0YTogYW55W10pIHtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxSb3dzRm9yVGFibGUoKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVFbmFibGVFYWNoQ29sdW1uVG9vbHRpcEljb24oKTtcclxuICAgICAgICB0aGlzLmZpbHRlckFwcGxpZWRUb1RhYmxlLmVtaXQodGFibGVEYXRhKTtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbHRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNvcnRpbmdBcHBsaWVkKHRhYmxlRGF0YTogYW55W10pIHtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxSb3dzRm9yVGFibGUoKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVFbmFibGVFYWNoQ29sdW1uVG9vbHRpcEljb24oKTtcclxuICAgICAgICB0aGlzLnNvcnRpbmdBcHBsaWVkVG9UYWJsZS5lbWl0KHRhYmxlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2x0aXAoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBpZD1cImdlbmVyaWMtdGFibGUtY29uYXRpbmVyXCJcclxuICAgIGNsYXNzPVwidGFibGUtY29udGFpbmVyIHt7IGd0R2VuZXJhbENvbmZpZz8udGFibGVPdXRlckNvbnRhaW5lck5hbWUgfX0ge3sgdGFibGVCb3R0b21Cb3JkZXJDbGFzcyB9fVwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ3Njcm9sbC1sZWZ0LXNoYWRvdy1lZmZlY3QnOiBpc1Njcm9sbGVkTGVmdCxcclxuICAgICAgICAnc2Nyb2xsLXJpZ2h0LXNoYWRvdy1lZmZlY3QnOiAhaXNTY3JvbGxFbmRlZCxcclxuICAgICAgICAnY2xpY2thYmxlLXJvdyc6IGNsaWNrYWJsZVJvdyxcclxuICAgICAgICAnbm8tZGF0YS10YWJsZSc6IChpc05vRGF0YVRvRGlzcGxheVN1YmplY3QkIHwgYXN5bmMpXHJcbiAgICB9XCJcclxuICAgIChzY3JvbGwpPVwib25UYWJsZUNvbnRhaW5lclNjcm9sbCgkZXZlbnQpXCJcclxuPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIFtjbGFzc109XCJndEdlbmVyYWxDb25maWcudGFibGVDb250YWluZXJOYW1lXCJcclxuICAgICAgICBjbGFzcz1cImhvcml6b250YWwtc2Nyb2xsLWZvci10YWJsZS1jb250YWluZXJcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgaGVpZ2h0OlxyXG4gICAgICAgICAgICAgICAgdGFibGVEYXRhLmxlbmd0aCA8IG1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbFxyXG4gICAgICAgICAgICAgICAgICAgID8gJ2NhbGMoJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAoZ3REaW1lbnNpb24ucm93SGVpZ2h0ICogdGFibGVEYXRhLmxlbmd0aCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCF0YWJsZURhdGEubGVuZ3RoIHx8ICFndEdlbmVyYWxDb25maWcudG90YWxSb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBndERpbWVuc2lvbi5oZWFkZXJIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBndERpbWVuc2lvbi5oZWFkZXJIZWlnaHQgKyBndERpbWVuc2lvbi5yb3dIZWlnaHQpKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAncHgpJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogZ3REaW1lbnNpb24udGFibGVIZWlnaHRcclxuICAgICAgICB9XCJcclxuICAgID5cclxuICAgICAgICA8dGFibGVcclxuICAgICAgICAgICAgY2xhc3M9XCJndFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3NcIlxyXG4gICAgICAgICAgICBtYXQtdGFibGVcclxuICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicmVuZGVyZWREYXRhXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItcm93XCJcclxuICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItcm93XHJcbiAgICAgICAgICAgICAgICAqbWF0SGVhZGVyUm93RGVmPVwidGFibGVDb2x1bW5zOyBzdGlja3k6IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJndERpbWVuc2lvbi5oZWFkZXJIZWlnaHRcIlxyXG4gICAgICAgICAgICA+PC90cj5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvdGFsLXJvd1wiXHJcbiAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLXJvd1xyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJndERpbWVuc2lvbi5yb3dIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cInRvdGFsUm93Q29sdW1uczsgc3RpY2t5OiB0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1NrZWxldG9uTG9hZGluZyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICghc2hvd1NrZWxldG9uTG9hZGluZyAmJiAhdGFibGVEYXRhLmxlbmd0aCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAoaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICghc2hvd1NrZWxldG9uTG9hZGluZyAmJiAhZ3RHZW5lcmFsQ29uZmlnLnRvdGFsUm93KVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvdHI+XHJcbiAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cInJvd0RhdGEuZ3RDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICduby1ib3JkZXItdHInOiAoaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jKSB9XCJcclxuICAgICAgICAgICAgICAgIG1hdC1yb3dcclxuICAgICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93RGF0YTsgY29sdW1uczogdGFibGVDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ3REaW1lbnNpb24ucm93SGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkYXRhUm93Q2xpY2tlZChyb3dEYXRhKVwiXHJcbiAgICAgICAgICAgID48L3RyPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBUT1RBTCBST1cgLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmNvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0b3RhbFJvd0luZm87IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW4uY29sc3BhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBjb2x1bW4uY2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5bJ2lzQWN0aW9uQ29sdW1uJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIGNvbHVtbi5hY3Rpb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJkYXRhLmNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrYWJsZURhdGFDbGlja2VkKHt9LCBkYXRhLmlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5bJ2lzSWNvbkNvbHVtbiddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbj8uaWNvbkRhdGE/LmNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpY29uQ2xpY2tlZEluVG90YWxSb3coY29sdW1uPy5jb2xOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtblsnaXNBY3Rpb25Db2x1bW4nXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidXBwZXItbGFiZWxcIj57eyBjb2x1bW4uZGF0YSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmxvd2VyRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5jb2xOYW1lID09ICd0b3RhbC1wb3RlbnRpYWwtYm9va2VkLXVuaXQnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdSQVRJTkcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNvbHVtbkxvd2VyRGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGlja2FibGUtZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNwb3REZXRhaWxzRG93bmxvYWRDbGlja2VkKCdUT1RBTFJPVycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1jbGlja2FibGUtZGF0YSc6IGRvd25sb2FkSW5Qcm9ncmVzcyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgY29sdW1uLmxvd2VyRGF0YSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BvdC1kZXRhaWxzLWRvd25sb2FkLWljb25zXCI+Z2V0X2FwcDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRJblByb2dyZXNzICYmIHNlbGVjdGVkUm93VHlwZUZvckRvd25sb2FkID09ICdUT1RBTFJPVydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjdWxhclByb2dyZXNzQmFyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkxvd2VyRGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvd2VyLWxhYmVsXCI+e3sgY29sdW1uLmxvd2VyRGF0YSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnRvb2x0aXBNZXNzYWdlICYmIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgIT0gJ0xVUl9WSU9MQVRJT05TJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbi50b29sdGlwSWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcE1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdMVVJfVklPTEFUSU9OUycgJiYgY29sdW1uLnRvb2x0aXBNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWkgbWRpLWluZm8tb3V0bGluZSBpbmZvLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJsdXJWaW9sYXRpb25Ub3RhbFJvd1Rvb2xUaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTUFJTiBST1cgLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uRGVmLmhlYWRlckluZm9bMF0ub2JqZWN0S2V5XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgdGFibGVIZWFkZXJzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICAjdGFibGVIZWFkZXJcclxuICAgICAgICAgICAgICAgICAgICBub3dyYXBcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgICAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW5EZWYud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbXgtMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgY29sdW1uRGVmLmhlYWRlckluZm87IGxldCBqID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnR5cGVPZkhlYWRlckRhdGEgPT09ICdTVFJJTkcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3VwcGVyLWxhYmVsJzogaiA9PT0gMCwgJ2xvd2VyLWxhYmVsJzogaiA9PT0gMSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci5uYW1lID09IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW5EZWYud2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnOiAnY2FsYygxMDAlIC0gMjBweCknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXIubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAudG9vbHRpcE1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImhlYWRlci50b29sdGlwLnRvb2x0aXBNZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2ltcHNJbmZvVG9vbHRpcCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJpbXBzSW5mb1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnc3BvdHNDb2x1bW5FcXVpdmFsaXphdGlvbk1lc3NhZ2VUb29sdGlwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInNwb3RzQ29sdW1uRXF1aXZhbGl6YXRpb25NZXNzYWdlVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcFBvc2l0aW9uIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ3VuZGVyRGVsaXZlcnlUb29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInVuZGVyRGVsaXZlcnlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnb3ZlckRlbGl2ZXJ5VG9vbHRpcCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJvdmVyRGVsaXZlcnlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAncmF0aW5nSW5mb1Rvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicmF0aW5nSW5mb1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdyYXRlSW5mb1Rvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicmF0ZUluZm9Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnb25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwib25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdjb21wbGV0ZWRSZXZCb29rZWRDb2x1bW5Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImNvbXBsZXRlZFJldkJvb2tlZENvbHVtblRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdhdmdCb29rZWRSYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImF2Z0Jvb2tlZFJhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdhdmdCb29rZWRSdGcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiYXZnQm9va2VkUnRnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnYXZnQm9va2VkSW1wcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJhdmdCb29rZWRJbXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2F1dG9tYXRpb25Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImF1dG9tYXRpb25Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ3JlYmF0ZUltcGFjdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJyZWJhdGVJbXBhY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAncHJvamVjdGVkSW1wc1J0ZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwcm9qZWN0ZWRJbXBzUnRnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIudHlwZU9mSGVhZGVyRGF0YSA9PT0gJ0NIRUNLQk9YJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImd0R2VuZXJhbENvbmZpZy5pc0hlYWRlckNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgY3VzdG9tLWNvbHVtbi1jaGVja2JveC1jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VW5zZWxlY3RBbGxSb3dzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFndEdlbmVyYWxDb25maWcuaXNIZWFkZXJDaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtdW5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlLWNoZWNrYm94JzogZ3RHZW5lcmFsQ29uZmlnLmRpc2FibGVIZWFkZXJDaGVja2JveCB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VW5zZWxlY3RBbGxSb3dzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2JveF9vdXRsaW5lX2JsYW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJndEdlbmVyYWxDb25maWcuc2hvd0FsbENvbHVtbkZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtZmlsdGVyLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuc2hvd1Rvb2x0aXBJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBY3RpdmUgdG9vbHRpcCBGdW5jdGlvbmFsaXR5IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmlsdGVyID09PSAnQ0hFQ0tCT1gnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kaSBtZGktZmlsdGVyLXZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZVtoZWFkZXIuam9pbmVkRmlsdGVyU29ydE9iamVjdEtleXNdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBoZWFkZXIuZGlzYWJsZVRvb2x0aXBJY29uIHx8IHNob3dTa2VsZXRvbkxvYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiZmlsdGVyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBmaWx0ZXJBbGlnbm1lbnQgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJub24tZWRpdC1jaGVja2JveC10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmluZFRoZVZhbHVlVG9Ub29sVGlwKHQsIGhlYWRlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZpbHRlciA9PT0gJ1NMSURFUidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRpIG1kaS1maWx0ZXItdmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2hlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5c10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGhlYWRlci5kaXNhYmxlVG9vbHRpcEljb24gfHwgc2hvd1NrZWxldG9uTG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJzbGlkZXJUb29sVGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBsZWZ0LXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cIm5vbi1lZGl0LXNsaWRlci10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0MT1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0MSwgaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZGVuKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmlsdGVyID09PSAnREFURSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRpIG1kaS1maWx0ZXItdmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2hlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5c10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGhlYWRlci5kaXNhYmxlVG9vbHRpcEljb24gfHwgc2hvd1NrZWxldG9uTG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJkYXRlUGlja2VyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cIm5vbi1lZGl0LWRhdGVwaWNrZXItdG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdDI9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiaW5kVGhlVmFsdWVUb1Rvb2xUaXAodDIsIGhlYWRlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZpbHRlciA9PT0gJ1dFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kaSBtZGktZmlsdGVyLXZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZVtoZWFkZXIuam9pbmVkRmlsdGVyU29ydE9iamVjdEtleXNdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBoZWFkZXIuZGlzYWJsZVRvb2x0aXBJY29uIHx8IHNob3dTa2VsZXRvbkxvYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwid2Vla1BpY2tlclRvb2xUaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGxlZnQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3QzPVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmluZFRoZVZhbHVlVG9Ub29sVGlwKHQzLCBoZWFkZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWRkZW4pPVwiY2xvc2VUb29sdGlwKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRlci5maWx0ZXIgPT09ICdUSU1FJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLWZpbHRlci12YXJpYW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmVbaGVhZGVyLmpvaW5lZEZpbHRlclNvcnRPYmplY3RLZXlzXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogaGVhZGVyLmRpc2FibGVUb29sdGlwSWNvbiB8fCBzaG93U2tlbGV0b25Mb2FkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRpbWVGaWx0ZXJUb29sVGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBsZWZ0LXRvcCBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwibm9uLWVkaXQtdGltZS10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0ND1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0NCwgaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZGVuKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhlYWRlci5zaG93VG9vbHRpcEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cIm5vLWZpbHRlci1zcGFjZVwiPjwvc3Bhbj48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2x1clZpb2xhdGlvbkluZm9Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImx1clZpb2xhdGlvbkluZm9Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICptYXRDZWxsRGVmPVwibGV0IFJPV19EQVRBXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1jZWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIlJPV19EQVRBLmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiUk9XX0RBVEEuYm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBST1dfREFUQS5yb3dDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdUZENsYXNzJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb3dzcGFuXT1cIlJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdSb3dzcGFuJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWhpZGVTb21lVGRzIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZVNvbWVUZHMgJiYgIVJPV19EQVRBWydoaWRlJyArIGNvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdUZCddKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1NrZWxldG9uTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgaGVpZ2h0OiAnMTBweCcsIGRpc3BsYXk6ICdibG9jaycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93U2tlbGV0b25Mb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCA+IDAgJiYgIShpc05vRGF0YVRvRGlzcGxheVN1YmplY3QkIHwgYXN5bmMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJsaW5lIG9mIGNvbHVtbkRlZi5oZWFkZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1YkxpbmVJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHNob3dFbGxpcHNpc1RleHRPbkhvdmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50eXBlT2ZCb2R5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidJQ09OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFycmVkSW5Qcm9ncmVzcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5vcmRlcklkID09IHNlbGVjdGVkU3RhcnJlZE9yZGVySWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlJPV19EQVRBLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaWNvbkNsaWNrZWQoUk9XX0RBVEEsIFJPV19EQVRBLmljb25DbGFzcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7IFJPV19EQVRBLmljb25UaXRsZVRleHQgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtaWNvbi1jb2x1bW4tdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFycmVkSW5Qcm9ncmVzcyAmJiBST1dfREFUQS5vcmRlcklkID09IHNlbGVjdGVkU3RhcnJlZE9yZGVySWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWZvci1idXR0b24tZGlyZWN0aXZlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSUNPTl9DRUxMJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uIG9mIFJPV19EQVRBW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLmFjdGlvbktleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24uc2hvd09iamVjdEtleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImFjdGlvbi5pY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInRlYW0tdXNlci10b29sdGlwIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImFjdGlvbi5zaG93VG9vbHRpcCA/IGFjdGlvbi50b29sdGlwRGF0YSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFjdGlvbkNsaWNrZWQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFhY3Rpb24uc2hvd1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0hUTUxfU1RSSU5HJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImlubmVySFRNTENlbGxDbGlja2VkKCRldmVudCwgUk9XX0RBVEEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NWR19JQ09OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YW5uYS1jb3JlLWFubmEtaWNvbi1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnROYW1lXT1cImd0R2VuZXJhbENvbmZpZy5jb21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFPYmplY3RdPVwiUk9XX0RBVEFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25Ub1Nob3ddPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ29sdW1uSWNvbkNsaWNrZWQpPVwic3ZnSWNvbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2FubmEtY29yZS1hbm5hLWljb24tY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVEVYVF9BQ1RJT05TJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dCBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0LnNob3dUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBY3Rpb25DbGlja2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGV4dC5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IHRleHQuY2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25UZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRleHRBY3Rpb25Ub29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdGV4dC5zaG93VG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWN0aW9uQ2xpY2tlZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRleHQuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyB0ZXh0LmNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0NIRUNLQk9YJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlLWNoZWNrYm94JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5pc0Rpc2FibGVkS2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3JVbnNlbGVjdENoZWNrYm94KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIVJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtdW5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9yVW5zZWxlY3RDaGVja2JveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfYm94X291dGxpbmVfYmxhbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogYWN0aW9uLmRpc2FibGVkSWNvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGVDb250YWluaW5nVGFibGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0udG9vbHRpcEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5pbmctdGFibGUgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidG9vbHRpcENvbnRhaW5pbmdUYWJsZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDTElDS0FCTEVfREFUQSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0IG9mIFJPV19EQVRBW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLmFjdGlvbktleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwidGV4dC5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja2FibGVEYXRhQ2xpY2tlZChST1dfREFUQSwgdGV4dC5pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZFVuaXRzJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZS1kYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzcG90RGV0YWlsc0Rvd25sb2FkQ2xpY2tlZCgnREFUQVJPVycsIFJPV19EQVRBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1jbGlja2FibGUtZGF0YSc6IGRvd25sb2FkSW5Qcm9ncmVzcyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBST1dfREFUQS5kaXNwbGF5Qm9va2VkVW5pdHMgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BvdC1kZXRhaWxzLWRvd25sb2FkLWljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Z2V0X2FwcDwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkSW5Qcm9ncmVzcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5pbnZlbnRvcnlDb2RlSWQgPT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSW52ZW50b3J5SWRGb3JEb3dubG9hZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZW1vZ3JhcGhpYyA9PSBzZWxlY3RlZERlbW9ncmFwaGljRm9yRG93bmxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2lyY3VsYXJQcm9ncmVzc0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NUUklOR19fX0lDT05fT1JfVEVYVF9BQ1RJT04nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3Rpb24gb2YgUk9XX0RBVEFbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uYWN0aW9uS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmFkZGl0aW9uYWxUZXh0QmVmb3JlTGlua0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cImFjdGlvbi5hZGRpdGlvbmFsVGV4dEJlZm9yZUxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7eyBhY3Rpb24uYWRkaXRpb25hbFRleHRCZWZvcmVMaW5rIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFhY3Rpb24uZW5hYmxlVG9vbHRpcEZvckFkZGl0aW9uYWxUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbiAmJiBhY3Rpb24udHlwZU9mRGF0YSA9PSAnU1RSSU5HJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGlvbi5kYXRhIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJhY3Rpb24uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dMaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBY3Rpb25DbGlja2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24ubGlua0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWRMaW5rIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBhY3Rpb24uZGF0YSB9fTwvYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3sgYWN0aW9uLmFkZGl0aW9uYWxUZXh0QWZ0ZXJMaW5rIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uYWRkaXRpb25hbFRleHRBZnRlckxpbmtDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtaWNvbi1jb2x1bW4tdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwiIWFjdGlvbi5lbmFibGVUb29sdGlwRm9yQWRkaXRpb25hbEFmdGVyVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYWN0aW9uLmFkZGl0aW9uYWxUZXh0QWZ0ZXJMaW5rIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi5zaG93VG9vbHRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udG9vbHRpcERhdGEuaW5uZXJIdG1sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWRJY29uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGVDb250YWluaW5nVGFibGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLnRvb2x0aXBLZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwidG9vbHRpcC1jb250YWluaW5nLXRhYmxlIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidG9vbHRpcENvbnRhaW5pbmdUYWJsZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uLnRvb2x0aXBEYXRhLnRvb2x0aXBUYWJsZUJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGFjdGlvbi5kaXNhYmxlZEljb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsaWNrZWRPblN0cmluZ0ljb25BY3Rpb25UeXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmVUZXh0QWN0aW9uVHlwZShST1dfREFUQSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLnRvb2x0aXBLZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGFjdGlvbi50b29sdGlwUGxhY2VtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JvdHRvbSBhdXRvJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInRlYW0tdXNlci10b29sdGlwIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3Mge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcENsYXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJ1c2VyTG9nZ2VkSW5EZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb25bJ3Nob3dTdmdJY29uJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhbm5hLWNvcmUtYW5uYS1lc3QtaWNvbi10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uWydzdmdJY29uTmFtZSddID09ICdhbm5hLWljb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlVGV4dEFjdGlvblR5cGUoUk9XX0RBVEEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9vbHRpcEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYm90dG9tIGF1dG8nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ0ZWFtLXVzZXItdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvblsndG9vbHRpcENsYXNzJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidXNlckxvZ2dlZEluRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYW5uYS1jb3JlLWFubmEtZXN0LWljb24tdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb24uc2hvd1Rvb2x0aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogYWN0aW9uLmRpc2FibGVkSWNvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsaWNrZWRPblN0cmluZ0ljb25BY3Rpb25UeXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NUUklOR19PUl9JTlBVVCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV0/LnR5cGUgPT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NUUklORyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpbnB1dEJveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5wbGFjZWhvbGRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93RWxsaXBzaXNUZXh0T25Ib3ZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2xhc3NOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzTWFkZUluRWRpdGFibGVJbnB1dEJveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXN0ZSk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlc01hZGVJbkVkaXRhYmxlSW5wdXRCb3goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZUlucHV0VmFsdWVDaGFuZ2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWQtYm9yZGVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oYXNFcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNob3dJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblRvb2x0aXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbkNsYXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG93U3ZnSWNvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFubmEtY29yZS1hbm5hLWVzdC1pY29uLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdmdJY29uTmFtZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gPT0gJ2FubmEtaWNvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tIGF1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtdG90YWwtcm93LXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uVG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hbm5hLWNvcmUtYW5uYS1lc3QtaWNvbi10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSFRNTCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NJTkdMRV9SQURJTydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLXJhZGlvYm94LW1hcmtlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiKG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLXJhZGlvYm94LWJsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9yVW5zZWxlY3RDaGVja2JveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidSQURJTydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJST1dfREFUQVtzdWJsaW5lLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlJPV19EQVRBWydSYWRpb0J1dHRvbkNvbmZpZyddWzBdLmlzRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByYWRpb0J1dHRvbiBvZiBST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInt7IHJhZGlvQnV0dG9uLnZhbHVlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyByYWRpb0J1dHRvbi5jbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvQnV0dG9uQ2xpY2tlZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWRpb0J1dHRvbi52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXVswXS5pc0Rpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyByYWRpb0J1dHRvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiB7eyByYWRpb0J1dHRvbi5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmFkaW9CdXR0b25JY29uQ2xpY2tlZChST1dfREFUQSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyICpuZ0lmPVwiIWxhc3RcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU1RSSU5HX1dJVEhfVE9PTFRJUCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgYWN0aW9uPy5kYXRhVG9EaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbj8uc2hvd1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRleHRBY3Rpb25Ub29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiYWN0aW9uPy50b29sdGlwUG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24/LnRvb2x0aXBJY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cImFjdGlvbj8uZGlzYWJsZVRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGFjdGlvbj8uZGF0YVRvRGlzcGxheUFmdGVyVG9vbHRpcCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1YmxpbmUub2JqZWN0S2V5ICE9ICdkZXNjcmlwdGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibGluZS5vYmplY3RLZXkgPT0gJ2ludmVudG9yeUNvZGUnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBWydpc1NlbGxlckdyb3VwJ10gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RHZW5lcmFsQ29uZmlnLmNvbXBvbmVudCA9PSAnUkFUSU5HJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaSBtZGktaW5mby1vdXRsaW5lIHNlbGxlci10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJzZWxsZXJIaWVyYXJjaHlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2luZm89XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJoaWVyYXJjaHktdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZFRoZVZhbHVlVG9TZWxsZXJHcm91cFRvb2x0aXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5zZWxsZXJHcm91cEhpZXJhcmNoeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZEF2ZXJhZ2VSYXRpbmcnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORycgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbJ3Nob3dSYXRpbmdBdmVyYWdlSWNvbiddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pIG1kaS1pbmZvLW91dGxpbmUgc2VsbGVyLXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0RpZmZlcmVuY2UoUk9XX0RBVEEuaXNEaWZmZXJlbmNlTGVzc1RoYW4yNVBlcmNlbnQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJwb3N0ZWQtYXZnLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicG9zdGVkUmF0aW5nRGlmZmVyZW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZEF2ZXJhZ2VJbXByZXNzaW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdSQVRJTkcnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBWydzaG93SW1wcmVzc2lvbkF2ZXJhZ2VJY29uJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWkgbWRpLWluZm8tb3V0bGluZSBzZWxsZXItdG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRGlmZmVyZW5jZShST1dfREFUQS5pc0RpZmZlcmVuY2VMZXNzVGhhbjI1UGVyY2VudClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInBvc3RlZC1hdmctdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwb3N0ZWRJbXBEaWZmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJsaW5lLm9iamVjdEtleSA9PSAnZGVzY3JpcHRpb24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uTWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiUk9XX0RBVEEuZGVzY3JpcHRpb25NZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFJPV19EQVRBLmRlc2NyaXB0aW9uTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtICE9ICctJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEuZGVzY3JpcHRpb25FbWFpbFJlZmVyZW5jZU51bSAhPSAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1haWwgUmVmOiB7eyBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgUk9XX0RBVEEuZGVzY3JpcHRpb25EZXRhaWxzVXJsIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uRGV0YWlsc1VybFR5cGUgPT09ICdQREYnIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uRGV0YWlsc1VybFR5cGUgPT09ICdFWENFTCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gdmlld0RldGFpbHNBbmRFbWFpbEJ0blwiPkRvd25sb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQS5hY3Rpdml0eW5hbWUudG9Mb3dlckNhc2UoKSA9PSAnb3JkZXIgb25ib2FyZGVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQS5kZXNjcmlwdGlvbkRldGFpbHNVcmxUeXBlID09PSAnTElOSydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0RldGFpbHNDbGlja2VkKFJPV19EQVRBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHZpZXdEZXRhaWxzQW5kRW1haWxCdG4gb3JkZXItb25ib2FyZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IGRldGFpbHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgUk9XX0RBVEEuZGVzY3JpcHRpb25FbWFpbFVybCB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsVXJsICE9ICctJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsVXJsICE9ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHZpZXdEZXRhaWxzQW5kRW1haWxCdG5cIj5WaWV3IGVtYWlsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbnVsbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFubmEtY29yZS1uby1kYXRhLWxpYlxyXG4gICAgICAgIFt3aWR0aF09XCJub0RhdGFXaWR0aFwiXHJcbiAgICAgICAgW21hcmdpblRvcF09XCJtYXJnaW5Ub3BcIlxyXG4gICAgICAgICpuZ0lmPVwiaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLW5vLWRhdGEtbGliPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQ2hlY2tib3ggdGVtcGxhdGUgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVG9vbHRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tY2hlY2tib3gtZmlsdGVyXHJcbiAgICAgICAgW3RhYmxlRGF0YV09XCJ0YWJsZURhdGFcIlxyXG4gICAgICAgIFtzaG93RmlsdGVySGVhZGVyVGFic109XCJzaG93RmlsdGVyVG9vbHRpcFRhYnNcIlxyXG4gICAgICAgIFtpc0x1ckFuZENzckNvbXBvbmVudF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Nsb25lZFRhYmxlRGF0YV09XCJjbG9uZWRUYWJsZURhdGFcIlxyXG4gICAgICAgIFtmaWx0ZXJUYWJPYmplY3RzXT1cImZpbHRlclRhYk9iamVjdHNcIlxyXG4gICAgICAgIChmaWx0ZXJBcHBsaWVkVG9UYWJsZSk9XCJmaWx0ZXJBcHBsaWVkKCRldmVudClcIlxyXG4gICAgICAgIChzb3J0aW5nQXBwbGllZFRvVGFibGUpPVwic29ydGluZ0FwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlVG9vbHRpcCk9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICA+XHJcbiAgICA8L2FubmEtY29yZS1hbm5hLWNvbHVtbi1jaGVja2JveC1maWx0ZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIFNsaWRlciB0ZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNzbGlkZXJUb29sVGlwPlxyXG4gICAgPGFubmEtY29yZS1hbm5hLWNvbHVtbi1zbGlkZXItZmlsdGVyXHJcbiAgICAgICAgW3RhYmxlRGF0YV09XCJ0YWJsZURhdGFcIlxyXG4gICAgICAgIFtzaG93RmlsdGVySGVhZGVyVGFic109XCJzaG93RmlsdGVyVG9vbHRpcFRhYnNcIlxyXG4gICAgICAgIFtpc0x1ckFuZENzckNvbXBvbmVudF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Nsb25lZFRhYmxlRGF0YV09XCJjbG9uZWRUYWJsZURhdGFcIlxyXG4gICAgICAgIFtmaWx0ZXJUYWJPYmplY3RzXT1cImZpbHRlclRhYk9iamVjdHNcIlxyXG4gICAgICAgIChmaWx0ZXJBcHBsaWVkVG9UYWJsZSk9XCJmaWx0ZXJBcHBsaWVkKCRldmVudClcIlxyXG4gICAgICAgIChzb3J0aW5nQXBwbGllZFRvVGFibGUpPVwic29ydGluZ0FwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlVG9vbHRpcCk9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICA+XHJcbiAgICA8L2FubmEtY29yZS1hbm5hLWNvbHVtbi1zbGlkZXItZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBEYXRlIFBpY2tlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNkYXRlUGlja2VyVG9vbHRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tZGF0ZS1yYW5nZS1maWx0ZXJcclxuICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW3Nob3dGaWx0ZXJIZWFkZXJUYWJzXT1cInNob3dGaWx0ZXJUb29sdGlwVGFic1wiXHJcbiAgICAgICAgW2lzTHVyQW5kQ3NyQ29tcG9uZW50XT1cImZhbHNlXCJcclxuICAgICAgICBbY2xvbmVkVGFibGVEYXRhXT1cImNsb25lZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2ZpbHRlclRhYk9iamVjdHNdPVwiZmlsdGVyVGFiT2JqZWN0c1wiXHJcbiAgICAgICAgKGZpbHRlckFwcGxpZWRUb1RhYmxlKT1cImZpbHRlckFwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRpbmdBcHBsaWVkVG9UYWJsZSk9XCJzb3J0aW5nQXBwbGllZCgkZXZlbnQpXCJcclxuICAgICAgICAoY2xvc2VUb29sdGlwKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLWFubmEtY29sdW1uLWRhdGUtcmFuZ2UtZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBXZWVrIFBpY2tlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICN3ZWVrUGlja2VyVG9vbFRpcD5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIndlZWtwaWNrZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGFubmEtY29yZS13ZWVrLWNhbGVuZGFyLWZpbHRlci1saWJcclxuICAgICAgICAgICAgW3dlZWstY2FsZW5kYXItY29uZmlnXT1cImd0R2VuZXJhbENvbmZpZy5tdWx0aVdlZWtQaWNrZXJDb25maWdcIlxyXG4gICAgICAgICAgICAoYXBwbHkpPVwiYXBwbHlXZWVrRmlsdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICBbZnJvbS1kYXRlXT1cImNhbGVuZGFyTWluRW5hYmxlZERhdGVcIlxyXG4gICAgICAgICAgICBbdG8tZGF0ZV09XCJjYWxlbmRhck1heEVuYWJsZWREYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hbm5hLWNvcmUtd2Vlay1jYWxlbmRhci1maWx0ZXItbGliPlxyXG4gICAgPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBUaW1lIEZpbHRlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICN0aW1lRmlsdGVyVG9vbFRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tdGltZS1maWx0ZXJcclxuICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW3Nob3dGaWx0ZXJIZWFkZXJUYWJzXT1cInNob3dGaWx0ZXJUb29sdGlwVGFic1wiXHJcbiAgICAgICAgW2lzTHVyQW5kQ3NyQ29tcG9uZW50XT1cImZhbHNlXCJcclxuICAgICAgICBbc2hvd0FsbFRpbWVSYW5nZUNoZWNrYm94ZXNdPVwic2hvd0NoZWNrYm94ZXNGb3JUaW1lRmlsdGVyXCJcclxuICAgICAgICBbY2xvbmVkVGFibGVEYXRhXT1cImNsb25lZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2ZpbHRlclRhYk9iamVjdHNdPVwiZmlsdGVyVGFiT2JqZWN0c1wiXHJcbiAgICAgICAgKGZpbHRlckFwcGxpZWRUb1RhYmxlKT1cImZpbHRlckFwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRpbmdBcHBsaWVkVG9UYWJsZSk9XCJzb3J0aW5nQXBwbGllZCgkZXZlbnQpXCJcclxuICAgICAgICAoY2xvc2VUb29sdGlwKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLWFubmEtY29sdW1uLXRpbWUtZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5JbmZvVG9vbHRpcD5cclxuICAgIDxwIHN0eWxlPVwiY29sb3I6IGJsYWNrOyB3aGl0ZS1zcGFjZTogbm93cmFwXCI+VGhpcyBwcmVlbXB0aW9uIGlzIHJlamVjdGVkIGFuZCBub3QgbWFya2VkIGZvciBjcmVkaXQuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyYXRpbmdJbmZvVG9vbHRpcD5cclxuICAgIDxwIGNsYXNzPVwiZmlyc3Qtcm93XCI+U2hvd3MgJ0Jvb2tlZCBSYXRpbmcnIGZvciBQcmVlbXB0aW9ucyAmIE1ha2VHb29kIE9mZmVyZWQgc3BvdChzKS48L3A+XHJcbiAgICA8cCBjbGFzcz1cInNlY29uZC1yb3dcIj5TaG93cyAnUHJvamVjdGVkIFJhdGluZycgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbXBzSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlNob3dzICdCb29rZWQgSU1QUycgZm9yIFByZWVtcHRpb25zICYgTWFrZUdvb2QgT2ZmZXJlZCBzcG90KHMpLjwvcD5cclxuICAgIDxwIGNsYXNzPVwic2Vjb25kLXJvd1wiPlNob3dzICdQcm9qZWN0ZWQgSU1QUycgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzcG90c0NvbHVtbkVxdWl2YWxpemF0aW9uTWVzc2FnZVRvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cInNwb3QtY29sdW1uLXRvb2x0aXAtbWVzc2FnZVwiPlxyXG4gICAgICAgIFRoaXMgY29uc2lzdHMgb2YgZXF1aXZhbGl6ZWQgc3BvdHMgYW5kIHVuLWVxdWl2YWxpemVkIFBhaWQgUHJvZ3JhbXMgJiB1bi1lcXVpdmFsaXplZCBOb24tc3BvdHMuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3VuZGVyRGVsaXZlcnlUb29sdGlwPlxyXG4gICAgPHAgY2xhc3M9XCJzcG90LWNvbHVtbi10b29sdGlwLW1lc3NhZ2VcIj5cclxuICAgICAgICBJbmRpY2F0ZXMgdGhlIFVuZGVyLWRlbGl2ZXJ5IHBlcmNlbnRhZ2UgYmFzZWQgb24gYm9va2VkIGFuZCBwb3N0ZWQgUlRHL0lNUFMuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI292ZXJEZWxpdmVyeVRvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cInNwb3QtY29sdW1uLXRvb2x0aXAtbWVzc2FnZVwiPlxyXG4gICAgICAgIEluZGljYXRlcyB0aGUgT3Zlci1kZWxpdmVyeSBwZXJjZW50YWdlIGJhc2VkIG9uIGJvb2tlZCBhbmQgcG9zdGVkIFJURy9JTVBTLlxyXG4gICAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyYXRlSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlNob3dzICdCb29rZWQgUmF0ZScgZm9yIFByZWVtcHRpb25zICYgTWFrZUdvb2QgT2ZmZXJlZCBzcG90KHMpLjwvcD5cclxuICAgIDxwIGNsYXNzPVwic2Vjb25kLXJvd1wiPlNob3dzICdQcm9qZWN0ZWQgJCBWYWx1ZScgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWxsZXJIaWVyYXJjaHlUb29sdGlwPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGxlckdyb3VwSGllcmFyY2h5Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhpZXJhcmNoeS10YWJsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwic2VsbGVyLWhpZXJhcmNoeS10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+SW52ZW50b3J5IENvZGVzPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlByb2dyYW0vRGVzY3JpcHRpb248L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzZWxsZXJHcm91cEhpZXJhcmNoeTsgbGV0IHRvb2x0aXBJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyB0b29sdGlwSW5kZXggKyAxIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXI+e3sgZGF0YS5JbnZlbnRvcnlDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzaG93RWxsaXBzaXNUZXh0T25Ib3Zlcj57eyBkYXRhLlByb2dyYW0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsbGVyR3JvdXBIaWVyYXJjaHkubGVuZ3RoID09IDBcIj5cclxuICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDAwXCI+U2VsbGVyIGdyb3VwIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgaW52ZW50b3J5IGNvZGU8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbHVyVmlvbGF0aW9uSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlRoZSB2YWx1ZXMgYXJlIGZvciB0aGUgZW50aXJlIHdlZWsuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3N0ZWRSYXRpbmdEaWZmZXJlbmNlPlxyXG4gICAgPHAgY2xhc3M9XCJkaWZmZXJlbmNlLXRleHRcIj5cclxuICAgICAgICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHBvc3RlZCBhbmQgYm9va2VkIGF2ZXJhZ2UgcmF0aW5nIGlzXHJcbiAgICAgICAge3sgaXNEaWZmZXJlbmNlTGVzc1RoYW4yNVBlcmNlbnQgPyBcImxlc3NcIiA6IFwibW9yZVwiIH19IHRoYW4gMjUlLlxyXG4gICAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3N0ZWRJbXBEaWZmZXJlbmNlPlxyXG4gICAgPHAgY2xhc3M9XCJkaWZmZXJlbmNlLXRleHRcIj5cclxuICAgICAgICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHBvc3RlZCBhbmQgYm9va2VkIGF2ZXJhZ2UgaW1wcmVzc2lvbiBpc1xyXG4gICAgICAgIHt7IGlzRGlmZmVyZW5jZUxlc3NUaGFuMjVQZXJjZW50ID8gXCJsZXNzXCIgOiBcIm1vcmVcIiB9fSB0aGFuIDI1JS5cclxuICAgIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXA+XHJcbiAgICA8cD5UaGUgQm9va2VkICQgdmFsdWUsIFNwb3RzLCBHUlAsIENQUCwgSU1QUywgQ1BNIGNvcnJlc3BvbmRzIG9uIHRoZSBsYXN0IHBlcm1hbmVudCByZXZpc2lvbiBnZW5lcmF0ZWQ8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbXBsZXRlZFJldkJvb2tlZENvbHVtblRvb2x0aXA+XHJcbiAgICA8cD5UaGUgQm9va2VkICQgdmFsdWUgY29ycmVzcG9uZHMgb24gdGhlIGxhc3QgcGVybWFuZW50IHJldmlzaW9uIGdlbmVyYXRlZDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXZnQm9va2VkUmF0ZT5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIFJhdGU8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2F2Z0Jvb2tlZFJ0Zz5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIFJURzwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXZnQm9va2VkSW1wcz5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIElNUCjigJkwMDApPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRJbXBzUnRnPlxyXG4gICAgPHA+XHJcbiAgICAgICAgQWxsIHByb2plY3Rpb25zIGFyZSBkZXJpdmVkIGZyb20gdGhlIHN1bSBvZiBhY3R1YWwgcG9zdGVkIGluZm9ybWF0aW9uIHVudGlsIHRoZSBsYXN0IHBvc3RlZCBkYXRlIGFuZCBlc3RpbWF0ZXNcclxuICAgICAgICBmb3IgdGhlIHJlbWFpbmluZyBzZWxlY3RlZCBwZXJpb2QuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2F1dG9tYXRpb25Ub29sdGlwPlxyXG4gICAgPHA+XHJcbiAgICAgICAgUGxlYXNlIGdldCB0aGUgb3JkZXIgYnVzaW5lc3MgcnVsZXMgYXBwcm92ZWQgdG8gYWN0aXZhdGUgdGhlIG9yZGVyIGZvciBhdXRvbWF0aW9uLiBPbmx5IGZvciB0aGVcclxuICAgICAgICBhdXRvbWF0aW9uLWFjdGl2YXRlZCBvcmRlcnMsIGFueSBhcHByb3ZlZCBNR3MsIEFEVXMsIG9yIGNyZWRpdGVkIHNwb3RzIG9uIEFOTkEgd2lsbCBiZSBmZWQgaW50byB0aGUgdHJhZmZpY1xyXG4gICAgICAgIHN5c3RlbSBpLmUuIEFOTkEgcmV2aXNpb25zLlxyXG4gICAgICAgIDwhLS0gcmVtb3ZlZCBiZWxvdyBsaW5lIGFzIHBhcnQgb2YgZW5oYW5jbWVubnQgaW4gMTQuMCByZWxlYXMgLS0+XHJcbiAgICAgICAgPCEtLSBBZGRpdGlvbmFsbHksIEFOTkEgd2lsbCBvbmx5IGVudGVyIGJ1eWVyIHJldmlzaW9ucyBpbnRvIHRyYWZmaWMgZm9yIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgIE1lZGlhbGluZS9XT0Mgb3JkZXJzLiAtLT5cclxuICAgIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmViYXRlSW1wYWN0PlxyXG4gICAgPHA+UmViYXRlIGltcGFjdCB2YWx1ZSBpcyBmb3IgdGhlIG9yaWdpbmFsbHkgb3JkZXJlZCBzcG90IGxlbmd0aCBhbmQgaXMgbm90IGVxdWl2YWxpemVkLjwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbHVyVmlvbGF0aW9uVG90YWxSb3dUb29sVGlwPlxyXG4gICAgPHVsPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgICAgPHN0cm9uZz5QT0xJVElDQUwgUkFURSBWSU9MQVRJT05TOjwvc3Ryb25nPlxyXG4gICAgICAgICAgICBWaW9sYXRpb25zIGZsYWdnZWQgd2hlbiBub24tcG9saXRpY2FsIHNwb3RzIGFyZSBib29rZWQgYXQgYSByYXRlIGxvd2VyIHRoYW4gdGhlIG1pbmltdW0gYm9va2VkIHJhdGUgZm9yXHJcbiAgICAgICAgICAgIHBvbGl0aWNhbCBjYW5kaWRhdGVzIGZvciB0aGUgc2FtZSB3ZWVrLCBJbnZlbnRvcnkgQ29kZSBhbmQgUmV2ZW51ZSBDbGFzcy5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgICAgPHN0cm9uZz5DQU5ESURBVEUgVE8gQ0FORElEQVRFIFZJT0xBVElPTjo8L3N0cm9uZz5cclxuICAgICAgICAgICAgVmlvbGF0aW9ucyBmbGFnZ2VkIHdoZW4gcG9saXRpY2FsIHNwb3RzIGFyZSBib29rZWQgYXQgZGlmZmVyZW50IHJhdGVzIHRvIG90aGVyIHBvbGl0aWNhbCBzcG90cyBmb3IgdGhlIHNhbWVcclxuICAgICAgICAgICAgd2VlaywgSW52ZW50b3J5IENvZGUgYW5kIFJldmVudWUgQ2xhc3MuXHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NpcmN1bGFyUHJvZ3Jlc3NCYXI+XHJcbiAgICA8Y2lyY2xlLXByb2dyZXNzXHJcbiAgICAgICAgW3BlcmNlbnRdPVwicGVyY2VudERvbmVcIlxyXG4gICAgICAgIFtyYWRpdXNdPVwiNVwiXHJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW3Nob3dVbml0c109XCJmYWxzZVwiXHJcbiAgICAgICAgW3Nob3dTdWJ0aXRsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW291dGVyU3Ryb2tlV2lkdGhdPVwiM1wiXHJcbiAgICAgICAgW2lubmVyU3Ryb2tlV2lkdGhdPVwiM1wiXHJcbiAgICAgICAgW3NwYWNlXT1cIi0zXCJcclxuICAgICAgICBbb3V0ZXJTdHJva2VDb2xvcl09XCInIzI2OGJmZidcIlxyXG4gICAgICAgIFtpbm5lclN0cm9rZUNvbG9yXT1cIicjZDVkNWQ1J1wiXHJcbiAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT1cIjEwXCJcclxuICAgID48L2NpcmNsZS1wcm9ncmVzcz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXNlckxvZ2dlZEluRGV0YWlscz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWRpdi1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRleHRBY3Rpb25Ub29sdGlwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YS5rZXkgIT0gJ3JlYWQnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmtleSB9fSA8Yj4ge3sgZGF0YS52YWx1ZSB9fTwvYj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGEua2V5ID09ICdyZWFkJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgZGF0YS52YWx1ZSB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbWFya0FzUmVhZFRpcD5cclxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tdG9vbHRpcC1kaXYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0ZXh0QWN0aW9uVG9vbHRpcFwiPlxyXG4gICAgICAgICAgICB7eyBkYXRhLnZhbHVlIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGV4dEFjdGlvblRvb2x0aXBUZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGV4dEFjdGlvblRvb2x0aXBcIj5cclxuICAgICAgICB7eyBkYXRhLmtleSB9fSA8Yj4ge3sgZGF0YS52YWx1ZSB9fTwvYj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b29sdGlwQ29udGFpbmluZ1RhYmxlVGVtcGxhdGU+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJ0b29sdGlwQ29udGFpbmluZ1RhYmxlXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cInRvb2x0aXBDb250YWluaW5nVGFibGUuaW5uZXJIdG1sXCJcclxuICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi10b29sdGlwLWRpdi1jb250YWluZXJcIlxyXG4gICAgPlxyXG4gICAgICAgIDwhLS0gPHVsPlxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGhlYWRlck1zZyBvZiB0b29sdGlwQ29udGFpbmluZ1RhYmxlLnRhYmxlSGVhZGVyTXNnXCI+XHJcbiAgICAgICAgPGI+IHt7aGVhZGVyTXNnfX0gIDwvYj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcblxyXG4gICAgPHRhYmxlIGNsYXNzPVwidG9vbHRpcC10YWJsZVwiPlxyXG4gICAgICA8dGhlYWQ+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdG9vbHRpcENvbnRhaW5pbmdUYWJsZS50b29sdGlwVGFibGVIZWFkZXJcIj5cclxuICAgICAgICAgICAge3sgaGVhZGVyfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90aGVhZD5cclxuICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93cyBvZiB0b29sdGlwQ29udGFpbmluZ1RhYmxlLnRvb2x0aXBUYWJsZUJvZHlcIj5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF0YSBvZiByb3dzXCI+XHJcbiAgICAgICAgICAgIHt7IGRhdGEgfX1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcblxyXG4gICAgPHVsPlxyXG4gICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tdG9wOjEwcHg7IHBhZGRpbmc6MFwiICpuZ0Zvcj1cImxldCBmb290ZXJNc2cgb2YgdG9vbHRpcENvbnRhaW5pbmdUYWJsZS50YWJsZUZvb3Rlck1zZ1wiPlxyXG4gICAgICAgIHt7IGZvb3Rlck1zZyB9fSBcclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+IC0tPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gPG5nLXRlbXBsYXRlICN0ZXh0QWN0aW9uVG9vbHRpcFRlbXBsYXRlPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRleHRBY3Rpb25Ub29sdGlwXCI+XHJcbiAgICAgIHt7IGRhdGEua2V5IH19IDxiPiB7e2RhdGEudmFsdWV9fTwvYj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG4iXX0=
|
|
865
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL2NvbXBvbmVudHMvYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtZ2VuZXJpYy10YWJsZS1saWIvY29tcG9uZW50cy9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlL2FubmEtbm9uLWVkaXRhYmxlLWdlbmVyaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEJBQTRCO0FBQzVCLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFHWixpQkFBaUIsRUFHakIsdUJBQXVCLEdBQzFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLGdDQUFnQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFTckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFNakgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0ZB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S0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdDQUFnQztzQkFBeEMsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLDBCQUEwQjtzQkFBbkMsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csNkJBQTZCO3NCQUF0QyxNQUFNO2dCQW1Dc0IscUJBQXFCO3NCQUFqRCxZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBJbnB1dCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIE91dHB1dCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBBZnRlclZpZXdDaGVja2VkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwsIHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5cclxuLy9zdWItZW50cmllcyBvZiBhbm5hIGxpYiBpbXBvcnQgc3RhdGVtZW50XHJcbmltcG9ydCB7XHJcbiAgICBJR3RHZW5lcmFsQ29uZmlnLFxyXG4gICAgSUd0VGFibGVIZWFkZXIsXHJcbiAgICBJSGVhZGVySW5mbyxcclxuICAgIElUb3RhbFJvd0luZm8sXHJcbn0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtbm9uLWVkaXRhYmxlLWd0LW1vZGVscyc7XHJcbmltcG9ydCB7IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWRhdGUtdGltZS1mb3JtYXQuc2VydmljZSc7XHJcbmltcG9ydCB7IElXZWVrQ2FsZW5kYXIgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9tb2RlbHMvYW5uYS1nbG9iYWwtZHJvcGRvd24tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICAgIEd0Q29sdW1uSWNvbkVtaXR0ZWREYXRhLFxyXG4gICAgUmF0aW5nU2VsbGVyR3JvdXBIaWVyYXJjaHksXHJcbn0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtZ2VuZXJpYy1kYXRhLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBBbm5hU29ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFubmFGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1maWx0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ0NpcmNsZVByb2dyZXNzTW9kdWxlIH0gZnJvbSAnbmctY2lyY2xlLXByb2dyZXNzJztcclxuaW1wb3J0IHsgQW5uYUNvbHVtblRpbWVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9hbm5hLWNvbHVtbi1maWx0ZXJzL2FubmEtY29sdW1uLXRpbWUtZmlsdGVyL2FubmEtY29sdW1uLXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFubmFDb2x1bW5EYXRlUmFuZ2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9hbm5hLWNvbHVtbi1maWx0ZXJzL2FubmEtY29sdW1uLWRhdGUtcmFuZ2UtZmlsdGVyL2FubmEtY29sdW1uLWRhdGUtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFubmFDb2x1bW5TbGlkZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9hbm5hLWNvbHVtbi1maWx0ZXJzL2FubmEtY29sdW1uLXNsaWRlci1maWx0ZXIvYW5uYS1jb2x1bW4tc2xpZGVyLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hQ29sdW1uQ2hlY2tib3hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9hbm5hLWNvbHVtbi1maWx0ZXJzL2FubmEtY29sdW1uLWNoZWNrYm94LWZpbHRlci9hbm5hLWNvbHVtbi1jaGVja2JveC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5uYU5vRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1uby1kYXRhL2FubmEtbm8tZGF0YS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFubmFJY29uQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvY29tcG9uZW50cy9hbm5hLWljb24tY29sdW1uL2FubmEtaWNvbi1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9kaXJlY3RpdmVzL3Nob3ctZWxsaXBzaXMtdGV4dC9zaG93LWVsbGlwc2lzLXRleHQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7XHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIE5nRm9yLFxyXG4gICAgTmdJZixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ1N3aXRjaCxcclxuICAgIE5nU3dpdGNoQ2FzZSxcclxuICAgIE5nU3dpdGNoRGVmYXVsdCxcclxuICAgIEFzeW5jUGlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtdG9vbHRpcC5tb2RlbCc7XHJcblxyXG5pbnRlcmZhY2Uga2V5VmFsdWVUb29sdGlwVHlwZSB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIHRhYmxlVG9vbHRpcFR5cGUge1xyXG4gICAgdG9vbHRpcFRhYmxlSGVhZGVyOiBzdHJpbmdbXTtcclxuICAgIHRvb2x0aXBUYWJsZUJvZHk6IHN0cmluZ1tdW107XHJcbiAgICB0YWJsZUhlYWRlck1zZzogc3RyaW5nW107XHJcbiAgICB0YWJsZUZvb3Rlck1zZzogc3RyaW5nW107XHJcbiAgICBpbm5lckh0bWw6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FubmEtY29yZS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS1saWInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FubmEtbm9uLWVkaXRhYmxlLWdlbmVyaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgTmdTdHlsZSxcclxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgICAgICBOZ0ZvcixcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICAgICAgTmdiVG9vbHRpcCxcclxuICAgICAgICBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSxcclxuICAgICAgICBzaG93RWxsaXBzaXNUZXh0T25Ib3ZlckRpcmVjdGl2ZSxcclxuICAgICAgICBOZ1N3aXRjaCxcclxuICAgICAgICBOZ1N3aXRjaENhc2UsXHJcbiAgICAgICAgQW5uYUljb25Db2x1bW5Db21wb25lbnQsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0LFxyXG4gICAgICAgIEFubmFOb0RhdGFDb21wb25lbnQsXHJcbiAgICAgICAgQW5uYUNvbHVtbkNoZWNrYm94RmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEFubmFDb2x1bW5TbGlkZXJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgQW5uYUNvbHVtbkRhdGVSYW5nZUZpbHRlckNvbXBvbmVudCxcclxuICAgICAgICBBbm5hQ29sdW1uVGltZUZpbHRlckNvbXBvbmVudCxcclxuICAgICAgICBOZ0NpcmNsZVByb2dyZXNzTW9kdWxlLFxyXG4gICAgICAgIEFzeW5jUGlwZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTm9uRWRpdGFibGVHZW5lcmljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgICBASW5wdXQoKSBzaG93U2tlbGV0b25Mb2FkaW5nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdGFibGVIZWFkZXJzOiBJR3RUYWJsZUhlYWRlcltdO1xyXG4gICAgQElucHV0KCkgdGFibGVEYXRhOiBhbnlbXTtcclxuICAgIEBJbnB1dCgpIGNsb25lZFRhYmxlRGF0YTogYW55W107XHJcbiAgICBASW5wdXQoKSBndEdlbmVyYWxDb25maWc6IElHdEdlbmVyYWxDb25maWc7XHJcbiAgICBASW5wdXQoKSB0b3RhbFJvd0luZm8/OiBJVG90YWxSb3dJbmZvW107XHJcbiAgICBASW5wdXQoKSBndERpbWVuc2lvbjoge1xyXG4gICAgICAgIHJvd0hlaWdodDogbnVtYmVyO1xyXG4gICAgICAgIGhlYWRlckhlaWdodDogbnVtYmVyO1xyXG4gICAgICAgIGRhdGFPblRvcEhlaWdodDogbnVtYmVyO1xyXG4gICAgICAgIG1hcmdpbkZyb21Cb3R0b206IG51bWJlcjtcclxuICAgICAgICB0YWJsZUhlaWdodD86IHN0cmluZztcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSB0YWJsZUNsYXNzOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBtYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGw6IG51bWJlciA9IDU7XHJcbiAgICBASW5wdXQoKSBmaXhOdW1iZXJPZlJvd3NGb3JQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbGltaXQ6IG51bWJlciA9IDMwO1xyXG4gICAgQElucHV0KCkgaW5jbHVkZUJvcmRlckluVGFibGVIZWlnaHQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZG93bmxvYWRJblByb2dyZXNzOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcGVyY2VudERvbmU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHN0YXJyZWRJblByb2dyZXNzOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2xpY2thYmxlUm93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXRUYWJsZUhlaWdodFdoZW5Sb3dTaXplSXNGaXhlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSB0YWJsZUJvcmRlckJvdHRvbUNsYXNzUmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaGlkZVNvbWVUZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHRkc0hhdmVSb3dTcGFuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBtdWx0aXBsZVRhYmxlc1ByZXNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgdG9nZ2xlQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdG9nZ2xlUm93Q2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdG9nZ2xlSGVhZGVyQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdW5kb0ljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZpbHRlckFwcGxpZWRUb1RhYmxlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHNvcnRpbmdBcHBsaWVkVG9UYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSByb3dDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHJhZGlvQnV0dG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY29sdW1uRmlsdGVyT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNvbHVtbkZpbHRlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBndEljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGd0U1ZHSWNvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgZ3RUZXh0QWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBndFZpZXdEZXRhaWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGd0SW5uZXJIVE1MQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBkb3dubG9hZFNwb3REZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNsaWNrYWJsZURhdGFDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHRvdGFsUm93SWNvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uSWNvbkhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG5vdGlmaWNhdGlvbkljb25Ib3ZlckxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRhYmxlSW5wdXRFZGl0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgcmFkaW9CdXR0b25NZXNzYWdlSWNvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgbnVtYmVyT2ZTa2VsZXRvblJvd3M6IG51bWJlcltdW10gPSBBcnJheSgyMCkuZmlsbCgwKTtcclxuICAgIHRhYmxlRGF0YVdyYXBwZXI6IGFueVtdO1xyXG4gICAgcm93Q2hlY2tlZDogYm9vbGVhbjtcclxuICAgIGlzQWxsUm93c0NoZWNrZWQ6IGJvb2xlYW47XHJcbiAgICBub0RhdGFXaWR0aDogc3RyaW5nID0gJzUwJSc7XHJcbiAgICBtYXJrZWRGb3JDcmVkaXRTdGF0dXM6IHN0cmluZztcclxuICAgIG1hcmtlZEZvck1HU3RhdHVzOiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJBbGlnbm1lbnQ6IHN0cmluZyA9ICdib3R0b20gYXV0byc7XHJcblxyXG4gICAgLy9Tb3J0IGFuZCBGaWx0ZXJcclxuICAgIHRvb2x0aXBSYWRpb1RleHRNYXA6IE1hcDxhbnksIGFueT47XHJcbiAgICBmaWx0ZXJUYWJPYmplY3RzOiBhbnlbXTtcclxuICAgIHRvb2x0aXA6IGFueTtcclxuICAgIGRpc2FibGVDb2x1bW5DbGVhckFsbEJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBtYXJnaW4gPSA1O1xyXG5cclxuICAgIC8vV2VlayBGaWx0ZXJcclxuICAgIG11bHRpV2Vla1BpY2tlckNvbmZpZzogSVdlZWtDYWxlbmRhcjtcclxuXHJcbiAgICB0YWJsZUNvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcbiAgICB0b3RhbFJvd0NvbHVtbnM6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIGJpbmRWYWx1ZUZ1bmNDYWxsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgaGllcmFyY2h5VG9vbHRpcDogeyBvcGVuOiAoKSA9PiB2b2lkOyBjbG9zZTogKCkgPT4gdm9pZCB9O1xyXG4gICAgc2VsbGVyR3JvdXBIaWVyYXJjaHk6IFJhdGluZ1NlbGxlckdyb3VwSGllcmFyY2h5W107XHJcbiAgICBzaG93RmlsdGVyVG9vbHRpcFRhYnM6IGJvb2xlYW47IC8vQ2hhbmdlIHRoZSBOYW1lXHJcblxyXG4gICAgaXNTY3JvbGxlZExlZnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHJvd0JvcmRlcldpZHRoOiBudW1iZXIgPSAyO1xyXG5cclxuICAgIHNhbWVUb29sdGlwQ2xpY2tlZDogYm9vbGVhbjtcclxuICAgIGlzU2Nyb2xsRW5kZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbWFyZ2luVG9wOiBzdHJpbmcgPSAnJztcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ3RhYmxlSGVhZGVyJykgdmlld0NoaWxkVGFibGVIZWFkZXJzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblxyXG4gICAgaXNEaWZmZXJlbmNlTGVzc1RoYW4yNVBlcmNlbnQ6IGJvb2xlYW47XHJcbiAgICBzdGFydDogbnVtYmVyID0gMDtcclxuICAgIGVuZDogbnVtYmVyID0gdGhpcy5saW1pdCArIHRoaXMuc3RhcnQ7XHJcbiAgICByZW5kZXJlZERhdGE6IGFueVtdO1xyXG4gICAgc2VsZWN0ZWRJbnZlbnRvcnlJZEZvckRvd25sb2FkOiBudW1iZXI7XHJcbiAgICBzZWxlY3RlZERlbW9ncmFwaGljRm9yRG93bmxvYWQ6IGFueTtcclxuICAgIHNlbGVjdGVkUm93VHlwZUZvckRvd25sb2FkOiBzdHJpbmc7XHJcbiAgICBoZWlnaHRPZkNoZWNrYm94VG9vbHRpcEZpbHRlcjogbnVtYmVyO1xyXG4gICAgaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgc2VsZWN0ZWRTdGFycmVkT3JkZXJJZDogc3RyaW5nO1xyXG5cclxuICAgIHRleHRBY3Rpb25Ub29sdGlwOiBrZXlWYWx1ZVRvb2x0aXBUeXBlW10gPSBbXTtcclxuICAgIHRvb2x0aXBDb250YWluaW5nVGFibGU6IHRhYmxlVG9vbHRpcFR5cGUgPSBudWxsO1xyXG4gICAgdGFibGVCb3R0b21Cb3JkZXJDbGFzczogc3RyaW5nID0gbnVsbDtcclxuICAgIHNob3dDaGVja2JveGVzRm9yVGltZUZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgYW5uYVNvcnRTZXJ2aWNlOiBBbm5hU29ydFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2U6IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGFubmFGaWx0ZXJTZXJ2aWNlOiBBbm5hRmlsdGVyU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0VG9vbHRpcFJhZGlvTmFtZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRNYXJnaW5MZWZ0Rm9yRmlsdGVySWNvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2V0RmlsdGVyQWxpZ25tZW50QmFzZWRPblNjcmVlblJlc29sdXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXRlY3RDaGFuZ2VzKCkge1xyXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGNoYW5nZXMgJiZcclxuICAgICAgICAgICAgY2hhbmdlc1snZ3REaW1lbnNpb24nXSAmJlxyXG4gICAgICAgICAgICBjaGFuZ2VzWydndERpbWVuc2lvbiddLmN1cnJlbnRWYWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlSGVpZ2h0V2hlblJvd1NpemVJc0ZpeGVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUJvdHRvbUJvcmRlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zaG93U2tlbGV0b25Mb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5udW1iZXJPZlNrZWxldG9uUm93cztcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSB0aGlzLm51bWJlck9mU2tlbGV0b25Sb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmlzTm9EYXRhVG9EaXNwbGF5U3ViamVjdCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVCb3R0b21Cb3JkZXIoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICBjaGFuZ2VzWydwZXJjZW50RG9uZSddIHx8XHJcbiAgICAgICAgICAgIGNoYW5nZXNbJ2Rvd25sb2FkSW5Qcm9ncmVzcyddIHx8XHJcbiAgICAgICAgICAgIChjaGFuZ2VzWydzdGFycmVkSW5Qcm9ncmVzcyddICYmIGNoYW5nZXNbJ3N0YXJyZWRJblByb2dyZXNzJ10uY3VycmVudFZhbHVlICE9IHVuZGVmaW5lZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy9ubyB0YXNrIHdpbGwgYmUgcGVyZm9ybWVkXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRJbml0aWFsUm93c0ZvclRhYmxlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUVuYWJsZUVhY2hDb2x1bW5Ub29sdGlwSWNvbigpO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMudGFibGVIZWFkZXJzLmZpbHRlcigoeCkgPT4geC52aXNpYmxlKS5tYXAoKHgpID0+IHguaGVhZGVySW5mb1swXS5vYmplY3RLZXkpO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAodGhpcy50YWJsZURhdGEgJiYgdGhpcy50YWJsZURhdGEubGVuZ3RoID09IDApIHx8XHJcbiAgICAgICAgICAgICAgICAodGhpcy50YWJsZURhdGEubGVuZ3RoID09IDIgJiYgdGhpcy5jaGVja0lmQWxsVGhlRWxlbWVudHNBcmVaZXJvKCkpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBBcnJheSgyKS5maWxsKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSBjbG9uZURlZXAodGhpcy50YWJsZURhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXJnaW5Ub3AgPSAtdGhpcy5ndERpbWVuc2lvbi5yb3dIZWlnaHQgLSB0aGlzLmd0RGltZW5zaW9uLnJvd0hlaWdodCAvIDIgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc05vRGF0YVRvRGlzcGxheVN1YmplY3QkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTm9EYXRhVG9EaXNwbGF5U3ViamVjdCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1NrZWxldG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlQm90dG9tQm9yZGVyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3NldHRpbmcgdGFibGUgY29sdW1uIGhlcmUgYXMgd2VsbCBiZWNhdXNlIHdoaWxlIHNob3dpbmcgc2tlbGV0b24gbG9hZGVyLCB3ZSBzaG91bGQgc2hvdyB0YWJsZSBoZWFkZXJzLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgY2hhbmdlc1sndGFibGVIZWFkZXJzJ10gJiZcclxuICAgICAgICAgICAgIWlzRXF1YWwoY2hhbmdlc1sndGFibGVIZWFkZXJzJ10uY3VycmVudFZhbHVlLCBjaGFuZ2VzWyd0YWJsZUhlYWRlcnMnXS5wcmV2aW91c1ZhbHVlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMudGFibGVIZWFkZXJzLmZpbHRlcigoeCkgPT4geC52aXNpYmxlKS5tYXAoKHgpID0+IHguaGVhZGVySW5mb1swXS5vYmplY3RLZXkpO1xyXG4gICAgICAgICAgICB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UuaW5pdGlhbFZhbHVlTWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnNldENvbHVtblNvcnRTdGF0ZU1hcCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVN0YXRlT2JqZWN0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlc1sndG90YWxSb3dJbmZvJ10gJiYgY2hhbmdlc1sndG90YWxSb3dJbmZvJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dDb2x1bW5zID0gdGhpcy50b3RhbFJvd0luZm8ubWFwKCh4KSA9PiB4LmNvbE5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGaWx0ZXJBbGlnbm1lbnRCYXNlZE9uU2NyZWVuUmVzb2x1dGlvbigpIHtcclxuICAgICAgICBsZXQgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgICAgaWYgKHZpZXdwb3J0SGVpZ2h0IDwgNzQwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyQWxpZ25tZW50ID0gJ2xlZnQgcmlnaHQnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyQWxpZ25tZW50ID0gJ2JvdHRvbSBsZWZ0IHJpZ2h0JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGFibGVCb3R0b21Cb3JkZXIoKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQm9yZGVyQm90dG9tQ2xhc3NSZXF1aXJlZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSAmJlxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YS5sZW5ndGggJiZcclxuICAgICAgICAgICAgdGhpcy5tYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGwgPCB0aGlzLnRhYmxlRGF0YS5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUJvdHRvbUJvcmRlckNsYXNzID0gJ2JvdHRvbS1ib3JkZXInO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVCb3R0b21Cb3JkZXJDbGFzcyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZBbGxUaGVFbGVtZW50c0FyZVplcm8oKSB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnRhYmxlRGF0YS5zb21lKChpdGVtKSA9PiBpdGVtICE9IDApO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRhYmxlSGVpZ2h0KCkge1xyXG4gICAgICAgIGxldCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICBsZXQgcm93SGVpZ2h0ID0gdGhpcy5ndERpbWVuc2lvbi5yb3dIZWlnaHQ7XHJcbiAgICAgICAgbGV0IGhlYWRlckhlaWdodCA9IHRoaXMuZ3REaW1lbnNpb24uaGVhZGVySGVpZ2h0O1xyXG4gICAgICAgIGxldCBkYXRhT25Ub3BIZWlnaHQgPSB0aGlzLmd0RGltZW5zaW9uLmRhdGFPblRvcEhlaWdodDtcclxuICAgICAgICBsZXQgbWFyZ2luRnJvbUJvdHRvbSA9IHRoaXMuZ3REaW1lbnNpb24ubWFyZ2luRnJvbUJvdHRvbTtcclxuICAgICAgICBsZXQgYWN0dWFsVGFibGVIZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZpeE51bWJlck9mUm93c0ZvclBvcHVwKSB7XHJcbiAgICAgICAgICAgIGxldCBtYXhOb09mUm93c1RvRGlzcGxheSA9IHZpZXdwb3J0SGVpZ2h0IDwgNzQwID8gNSA6IDEwO1xyXG4gICAgICAgICAgICB0aGlzLm1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbCA9IG1heE5vT2ZSb3dzVG9EaXNwbGF5O1xyXG4gICAgICAgICAgICBhY3R1YWxUYWJsZUhlaWdodCA9IHRoaXMubWF4aW11bVJvd3NXaGljaENhbkJlUmVuZGVyZWRXaXRob3V0U2Nyb2xsICogcm93SGVpZ2h0ICsgaGVhZGVySGVpZ2h0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBtaW5IZWlnaHRGb3JUYWJsZSA9IGhlYWRlckhlaWdodCArIDMgKiByb3dIZWlnaHQ7XHJcbiAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0ID0gdmlld3BvcnRIZWlnaHQgPD0gZGF0YU9uVG9wSGVpZ2h0ID8gZGF0YU9uVG9wSGVpZ2h0ICsgbWluSGVpZ2h0Rm9yVGFibGUgOiB2aWV3cG9ydEhlaWdodDtcclxuICAgICAgICAgICAgbGV0IGhlaWdodExlZnRGb3JUYWJsZSA9IHZpZXdwb3J0SGVpZ2h0IC0gZGF0YU9uVG9wSGVpZ2h0IC0gbWFyZ2luRnJvbUJvdHRvbTtcclxuICAgICAgICAgICAgdGhpcy5tYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGwgPVxyXG4gICAgICAgICAgICAgICAgTWF0aC5jZWlsKChoZWlnaHRMZWZ0Rm9yVGFibGUgLSBoZWFkZXJIZWlnaHQgLSByb3dIZWlnaHQpIC8gcm93SGVpZ2h0KSArIDE7XHJcbiAgICAgICAgICAgIGFjdHVhbFRhYmxlSGVpZ2h0ID0gdmlld3BvcnRIZWlnaHQgLSBkYXRhT25Ub3BIZWlnaHQgLSBtYXJnaW5Gcm9tQm90dG9tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbGV0IGFjdHVhbFRhYmxlSGVpZ2h0ID0gaGVpZ2h0TGVmdEZvclRhYmxlIC0gKChoZWlnaHRMZWZ0Rm9yVGFibGUgLSBoZWFkZXJIZWlnaHQgLSByb3dIZWlnaHQpICUgcm93SGVpZ2h0KTtcclxuXHJcbiAgICAgICAgdGhpcy5ndERpbWVuc2lvbi50YWJsZUhlaWdodCA9IGAke2FjdHVhbFRhYmxlSGVpZ2h0fXB4YDtcclxuXHJcbiAgICAgICAgdGhpcy5udW1iZXJPZlNrZWxldG9uUm93cyA9IHRoaXMubWF4aW11bVJvd3NXaGljaENhbkJlUmVuZGVyZWRXaXRob3V0U2Nyb2xsXHJcbiAgICAgICAgICAgID8gQXJyYXkodGhpcy5tYXhpbXVtUm93c1doaWNoQ2FuQmVSZW5kZXJlZFdpdGhvdXRTY3JvbGwpLmZpbGwoMClcclxuICAgICAgICAgICAgOiBBcnJheSg1KS5maWxsKDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRvb2x0aXBSYWRpb05hbWVzKCkge1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdTdGFydFRpbWVGb3JGaWx0ZXInLCAnU3RhcnQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0VuZFRpbWVGb3JGaWx0ZXInLCAnRW5kIFRpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGFydFRpbWVGb3JGaWx0ZXInLCAnU3RhcnQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2VuZFRpbWVGb3JGaWx0ZXInLCAnRW5kIFRpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGFydF90aW1lX2Zvcl9maWx0ZXInLCAnU3RhcnQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2VuZF90aW1lX2Zvcl9maWx0ZXInLCAnRW5kIFRpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcmltYXJ5QUVOYW1lJywgJ1ByaW1hcnkgQUUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyZWdpb24nLCAnUmVnaW9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYWdlbmN5TmFtZScsICdBZ2VuY3knKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdsb2NhdGlvbicsICdMb2NhdGlvbicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2FkdmVydGlzZXJOYW1lJywgJ0FkdmVydGlzZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcm9kdWN0Q29kZScsICdQcm9kdWN0IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdmbGlnaHRTdGFydERhdGUnLCAnU3RhcnQgRGF0ZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ZsaWdodEVuZERhdGUnLCAnRW5kIERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvcmRlcklkQW5kUmV2TnVtYmVyJywgJ1NUTiBPcmRlciMtUmV2IycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3N0YXRpb25PcmRlck51bWJlcicsICdTVE4gT3JkZXIjJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYWx0ZXJuYXRlT3JkZXJJZCcsICdBbHQvUmVwIE9yZGVyICMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdncnAnLCAnR1JQJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnY3BwJywgJ0NQUCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ltcHMnLCAnSU1QUycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2NwbScsICdDUE0nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvZmZlcmVkTUdzJywgJ09mZmVyZWQgTUcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvdXRzdGFuZGluZ1BFJywgJ08vUyBQRScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ29mZmVyZWRBRFVzJywgJ09mZmVyZWQgQURVcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3VkRGVmaWNpdFZhbHVlJywgJ08vUyBBdWQgRGVsdGEnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGFydEVuZFRpbWVNdWx0aScsICdUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkVmFsdWUnLCAnQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkU3BvdHMnLCAnU3BvdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdVc2VyQ3JlZGl0ZWRWYWx1ZScsICdVc2VyIENyZWRpdGVkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnVXNlclVucmVzb2x2ZWRWYWx1ZScsICdVc2VyIFVucmVzb2x2ZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckFkZGVkVmFsdWUnLCAnQnV5ZXIgQWRkZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckRlbGV0ZWRWYWx1ZScsICdCdXllciBEZWxldGVkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndXNlckNoYW5nZXMnLCAnVXNlciBDaGFuZ2VzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYnV5ZXJDaGFuZ2VzJywgJ0J1eWVyIENoYW5nZXMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1c2VyTUcnLCAnVXNlciBNRycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3VzZXJBRFVzJywgJ1VzZXIgQURVcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ludmVudG9yeUNvZGUnLCAnSW52ZW50b3J5IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcm9ncmFtJywgJ1Byb2dyYW0nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhZ2VuY3knLCAnQWdlbmN5Jyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYWR2ZXJ0aXNlcicsICdBZHZlcnRpc2VyJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnc3RhcnREYXRlJywgJ1N0YXJ0IERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdlbmREYXRlJywgJ0VuZCBEYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZGF0ZScsICdEYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmN2UHJlZW1wdCcsICckIE1hZGVnb29kIFBFcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ29zUHJlZW1wdCcsICckIE8vUyBQRXMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyY3ZVbmRlckRseScsICdSZWNvdmVyZWQgVUQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvc1VuZGVyRGx5JywgJ08vcyBVbmRlciBEbHknKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcmltYXJ5QWUnLCAnUHJpbWFyeSBBRScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JlZ2lvbicsICdSZWdpb24nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyZXZDb2RlMScsICdSZXYgY29kZSAxJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3JkZXJOb1Jldk5vJywgJ1NUTiBPcmRlciMtUmV2IycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JldkNvZGUyJywgJ1JldiBjb2RlIDInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyZXZDb2RlMycsICdSZXYgY29kZSAzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkJywgJyQgQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnc3BvdHMnLCAnU3BvdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRBdWRQZXJjZW50JywgJ1Bvc3RlZCAlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmV2aXNpb24nLCAnUmV2aXNpb24nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdidXllck9yZGVySWQnLCAnQUxUL1JFUCBPcmRlciMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkZW1vJywgJ0RlbW8nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRBZHUnLCAnJCBQb3N0ZWQgQURVcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3NjaGVkdWxlZEFkdScsICckIFNjaGVkdWxlZCBBRFVzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXVkaWVuY2VEZWZpY2l0JywgJyQgTy9TIEF1ZGllbmNlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXVkUGVyY2VudCcsICdQb3N0ZWQgQXVkaWVuY2UgJScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3BvdGVudGlhbFVuaXRzVmFsdWUnLCAnUE9UIFVuaXRzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkVW5pdHNWYWx1ZScsICdCb29rZWQgRXEgVW5pdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRBbW91bnRXaXRoWmVyb1JhdGluZ1ZhbHVlJywgJ1RvdGFsICQgQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQW1vdW50UGVyY2VudGFnZVdpdGhaZXJvUmF0aW5nVmFsdWUnLCAnJSBBZ2FpbnN0IEFsbCBEZW1vcycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEFtb3VudFdpdGhvdXRaZXJvUmF0aW5nVmFsdWUnLCAnJEJvb2tlZCBXaXRoIEltcHMo4oCZMDAwKScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEFtb3VudFBlcmNlbnRhZ2VXaXRob3V0WmVyb1JhdGluZ1ZhbHVlJywgJyUgQWdhaW5zdCBBbGwgRGVtb3MnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndG90YWxCb29rZWRBbW91bnRWYWx1ZScsICdUb3RhbCAkQm9va2VkJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZVVuaXRSYXRlVmFsdWUnLCAnIEFVUicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3RvdGFsQm9va2VkQW1vdW50V2l0aFJhdGluZ1ZhbHVlJywgJyRCb29rZWQgV2l0aCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhdmVyYWdlVW5pdFJhdGVXaXRoUmF0aW5nVmFsdWUnLCAnQVVSIFdpdGggUmF0aW5nJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3RvdGFsQm9va2VkQW1vdW50V2l0aEltcHJlc3Npb25WYWx1ZScsICckQm9va2VkIFdpdGggSU1QUycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2F2ZXJhZ2VVbml0UmF0ZVdpdGhJbXByZXNzaW9uVmFsdWUnLCAnQVVSIFdpdGggSU1QUycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRVbml0c1dpdGhSYXRpbmdWYWx1ZScsICdCb29rZWQgVW5pdHMgV2l0aCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRVbml0c1dpdGhSYXRpbmdWYWx1ZScsICdQb3N0ZWQgVW5pdHMgV2l0aCBSYXRpbmcnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkVW5pdHNXaXRoSW1wcmVzc2lvblZhbHVlJywgJ0Jvb2tlZCBVbml0cyBXaXRoIElNUFMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRVbml0c1dpdGhJbXByZXNzaW9uVmFsdWUnLCAnUG9zdGVkIFVuaXRzIFdpdGggSU1QUycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRSYXRpbmdzJywgJ0Jvb2tlZCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRSYXRpbmdzJywgJ1BPU1RFRCBSYXRpbmcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdQb3N0ZWRSYXRpbmcnLCAnUG9zdGVkIFJURycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRJbXByZXNzaW9ucycsIFwiQm9va2VkIElNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwb3N0ZWRJbXByZXNzaW9ucycsIFwiUG9zdGVkIElNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdQb3N0ZWRJbXByZXNzaW9ucycsIFwiUG9zdGVkIElNUCgnMDAwKVwiKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQXZlcmFnZVJhdGluZycsICdCb29rZWQgQVUgUmF0aW5nJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXZlcmFnZVJhdGluZycsICdQb3N0ZWQgQVUgUmF0aW5nJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEF2ZXJhZ2VJbXByZXNzaW9uJywgJ0Jvb2tlZCBBVSBJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncG9zdGVkQXZlcmFnZUltcHJlc3Npb24nLCAnUG9zdGVkIEFVIElNUFMnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQ3BwVmFsdWUnLCAnQm9va2VkIENQUCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEVmZmVjdGl2ZUNwcFZhbHVlJywgJ0VmZmVjdGl2ZSBDUFAnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQ3BtVmFsdWUnLCAnQm9va2VkIENQTScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Jvb2tlZEVmZmVjdGl2ZUNwbVZhbHVlJywgJ0VmZmVjdGl2ZSBDUE0nKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3JkZXJTb3VyY2UnLCAnT3JkZXIgUm91dGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvcmRlckNhdGVnb3J5JywgJ1JldiBDYXRlZ29yeScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Nhc2hPclRyYWRlJywgJ0MvVCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3JldmlzaW9uU3RhcnREYXRlJywgJ1JldmlzaW9uIFN0YXJ0IERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCduYW1lJywgJ25hbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdyb2xlJywgJ3JvbGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzdGF0aW9uQ291bnQnLCAnc3RhdGlvbkNvdW50Jyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnc3RhdGlvbkxpc3QnLCAnc3RhdGlvbkxpc3QnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdhcHByb3ZlZE9uJywgJ0FwcHJvdmVkIE9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXBwcm92ZWRCeScsICdBcHByb3ZlZCBCeScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ09ESW1wcycsICdQcm9qLiBPRCBJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnVURJbXBzJywgJ1Byb2ouIFVEIElNUFMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPREdycCcsICdQcm9qLiBPRCBHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdVREdycCcsICdQcm9qLiBVRCBHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1ZEltcHNQZXJjZW50JywgJ1Byb2ouIFVEICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd1ZEdycFBlcmNlbnQnLCAnUHJvai4gVUQgR1JQICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvZEltcHNQZXJjZW50JywgJ1Byb2ouIE9EICUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdvZEdycFBlcmNlbnQnLCAnUHJvai4gT0QgR1JQICUnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnUmV2aXNpb25OdW1iZXInLCAnUmV2aXNpb24gIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1JldmlzaW9uVHlwZScsICdSZXZpc2lvbiBUeXBlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnR2VuZXJhdGVkT24nLCAnR2VuZXJhdGVkIE9uJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQm9va2VkVmFsdWVGb3JEaXNwbGF5JywgJyQgQk9PS0VEJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQm9va2VkVmFsdWUnLCAnJCBCb29rZWQnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRTcG90cycsICdTcG90cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZEdSUCcsICdHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRJTVBTUmV2VGFiJywgXCJJTVBTJygwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZENQUCcsICdDUFAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRDUE0nLCAnQ1BNJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTUdzVmFsdWVGb3JEaXNwbGF5JywgJyQgTUdTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTUdzVmFsdWUnLCAnJCBNR1MnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBRFVzVmFsdWVGb3JEaXNwbGF5JywgJyQgQURVUycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0FEVXNWYWx1ZScsICckIEFEVVMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckNoYW5nZXNWYWx1ZUZvckRpc3BsYXknLCAnJCBCdXllciBDaGFuZ2UnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllckNoYW5nZXNWYWx1ZScsICckIEJ1eWVyIENoYW5nZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1VzZXJDaGFuZ2VzVmFsdWVGb3JEaXNwbGF5JywgJyQgU2VsbGVyIFVzZXIgQ2hhbmdlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnVXNlckNoYW5nZXNWYWx1ZScsICckIFNlbGxlciBVc2VyIENoYW5nZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1NlbGxlckxpbmUnLCAnU2VsbGVyIExpbmUgIycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0J1eWVyTGluZScsICdCdXkgTGluZSAjJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnU3BvdFN0YXR1cycsICdTcG90IFN0YXR1cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0ludmVudG9yeUNvZGUnLCAnSW52ZW50b3J5IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCdXllclByb2dyYW1OYW1lJywgJ0J1eWVyIFByb2dyYW0gTmFtZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1JldmVudWVDbGFzcycsICdSZXZlbnVlIENsYXNzJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnV2Vla2x5QVVSJywgJ0Jvb2tlZCBBdmcuIFJhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRSYXRlJywgJ0Jvb2tlZCBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYXZlcmFnZVJhdGUnLCAnQXZlcmFnZSBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnYm9va2VkQXZlcmFnZVJhdGUnLCAnQm9va2VkIEFWRy4gUmF0ZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2RvbGxhcklNUFNJbXBhY3QnLCAnJCBJTVBTIEltcGFjdCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2RvbGxhclJUR0ltcGFjdCcsICckIFJURyBJTVBBQ1QnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdJTVBTSW1wYWN0JywgXCJJTVBTICgnMDAwKSBJTVBBQ1RcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnUlRHSW1wYWN0JywgJ1JURyBJbXBhY3QnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnaW52ZW50b3J5RmlsbFBlcmNlbnRhZ2VTYW1lV2VlaycsICdJbnYgRmlsbCBTYW1lIFdlZWsgKExZKScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2ludmVudG9yeUZpbGxQZXJjZW50YWdlRmluYWwnLCAnSW52IEZpbGwgRmluYWwgKExZKScpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcm9qZWN0ZWRSVEcnLCAnUHJvamVjdGVkIFJURycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3Byb2plY3RlZElNUFMnLCBcIlByb2plY3RlZCBJTVBTKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ2Rlc2lyZWRDUE0nLCAnRGVzaXJlZCBDUE0nKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkZXNpcmVkQ1BQJywgJ0Rlc2lyZWQgQ1BQJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb3JpZ2luJywgJ09yaWdpbicpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdCb29rZWRSVEcnLCAnQm9va2VkIFJURycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0Jvb2tlZElNUFMnLCBcIkJvb2tlZCBJTVBTKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0lNUFMnLCBcIklNUCgnMDAwKVwiKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBVVJURycsICdBdmcgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQVVJTVBTJywgXCJBdmcgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Bvc3RlZFJhdGluZ3NPckltcHJlc3Npb25zJywgJ1Bvc3RlZCBSVEcnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdTY2hlZHVsZUZsaWdodFdlZWsnLCAnU2NoZWR1bGUgV2VlaycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1NjaGVkdWxlZERheScsICdTY2hlZHVsZWQgRGF5Jyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQWlyU3RhdHVzJywgJ0FpciBTdGF0dXMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBaXJEYXRlQW5kVGltZScsICdBaXIgRGF0ZSAmIFRpbWUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdBaXJEYXRlJywgJ0FpciBEYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZE9yZGVyZWRSYXRpbmcnLCAnTm9ybWFsaXplZCBCb29rZWQgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZE9yZGVyZWRJbXByZXNzaW9ucycsIFwiTm9ybWFsaXplZCBCb29rZWQgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ05vcm1hbGl6ZWRQb3N0ZWRSYXRpbmcnLCAnTm9ybWFsaXplZCBQb3N0ZWQgUlRHJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnTm9ybWFsaXplZFBvc3RlZEltcHJlc3Npb25zJywgXCJOb3JtYWxpemVkIFBvc3RlZCBJTVAoJzAwMClcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnQWRJZCcsICdBZC1JZCcpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkaXNwbGF5aW1wcycsICdJTVBTJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZGlzcGxheUdycCcsICdHUlAnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdib29rZWRTcG90c0ZvckRpc3BsYXknLCAnU3BvdHMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdkaXNwbGF5U3BvdHMnLCAnU3BvdHMnKTtcclxuXHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnZXN0aW1hdGVObycsICdFc3RpbWF0ZSMnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdwcmltYXJ5QnV5ZXInLCAnUHJpbWFyeSBCdXllcicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3ByaW1hcnlCdXllck5hbWUnLCAnUHJpbWFyeSBCdXllcicpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ3NlY29uZGFyeUJ1eWVyTmFtZScsICdTZWNvbmRhcnkgQnV5ZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdzZWNvbmRhcnlCdXllcicsICdTZWNvbmRhcnkgQnV5ZXInKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCd0aW1lb3V0RGF0ZScsICdUaW1lb3V0IERhdGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdEaXNwbGF5dFNwb3RTdGF0dXNCSScsICdTcG90IFN0YXR1cycpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0xpbmVTcG90JywgJ0xpbmUuU3BvdCcpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ0x1cldpbmRvd05hbWUnLCAnUG9saXRpY2FsIFdpbmRvdycpO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdsZW5ndGgnLCAnTGVuZ3RoJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgncmV2Q2xhc3MnLCAnUmV2IENsYXNzJyk7XHJcblxyXG4gICAgICAgIC8vIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoXCJ1ZFZhbHVlXCIsIFwiJCBVRFwiKTtcclxuICAgICAgICAvLyB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KFwib2RWYWx1ZVwiLCBcIiQgT0RcIik7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgndWRWYWx1ZScsICdQcm9qLiAkIFVEJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnb2RWYWx1ZScsICdQcm9qLiAkIE9EJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZUludmVudG9yeUNvZGUnLCAnSW52ZW50b3J5IENvZGUnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVCdXllclByb2dyYW1OYW1lJywgJ0J1eWVyIFByb2dyYW0gTmFtZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZVN0YXJ0VGltZScsICdTdGFydCBUaW1lJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnT3RoZXJBdmFpbGFibGVTcG90c1RhYmxlRW5kVGltZScsICdFbmQgVGltZScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZVdlZWtseUFVUicsICdCb29rZWQgQXZnLiBSYXRlJyk7XHJcbiAgICAgICAgdGhpcy50b29sdGlwUmFkaW9UZXh0TWFwLnNldCgnT3RoZXJBdmFpbGFibGVTcG90c1RhYmxlRGlzcGxheVJldmVudWVDbGFzcycsICdSZXYgQ2xhc3MnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVBY3R1YWxXZWVrU3RhcnREYXRlJywgJ1dlZWsnKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuc2V0KCdPdGhlckF2YWlsYWJsZVNwb3RzVGFibGVXZWVrRGF5JywgJ0RheScpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ090aGVyQXZhaWxhYmxlU3BvdHNUYWJsZURpc3BsYXlMZW5ndGgnLCAnTGVuZ3RoJyk7XHJcblxyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Byb2plY3RlZEltcHJlc3Npb25zJywgXCJQcm9qZWN0ZWQgSU1QKCcwMDApXCIpO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcFJhZGlvVGV4dE1hcC5zZXQoJ1Byb2plY3RlZFJ0ZycsICdQcm9qZWN0ZWQgUlRHJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0T3JVbnNlbGVjdENoZWNrYm94KHJvd0RhdGE6IGFueSwgY29sdW1uS2V5czogYW55LCBpc0NoZWNrYm94U2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgICAgIHJvd0RhdGFbY29sdW1uS2V5c10gPSAhcm93RGF0YVtjb2x1bW5LZXlzXTtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94LmVtaXQoeyByb3dEYXRhLCBjb2x1bW5LZXlzLCBpc0NoZWNrYm94U2VsZWN0ZWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0T3JVbnNlbGVjdFJhZGlvYm94KHJvd0RhdGE6IGFueSwgY29sdW1uS2V5czogYW55LCBpc0NoZWNrYm94U2VsZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAocm93RGF0YVtjb2x1bW5LZXlzXSA9PSBpc0NoZWNrYm94U2VsZWN0ZWQpIHJldHVybjtcclxuICAgICAgICByb3dEYXRhW2NvbHVtbktleXNdID0gaXNDaGVja2JveFNlbGVjdGVkO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3guZW1pdCh7IHJvd0RhdGEsIGNvbHVtbktleXMsIGlzQ2hlY2tib3hTZWxlY3RlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RVbnNlbGVjdEFsbFJvd3MoKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVIZWFkZXJDaGVja2JveC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VW5zZWxlY3RSb3cocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVSb3dDaGVja2JveC5lbWl0KHJvd0RhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHVuZG9DcmVkaXRlZFNwb3QoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bmRvSWNvbkNsaWNrZWQuZW1pdCh7IGRhdGEsIG1nT3JDcmVkaXQ6ICdDcmVkaXQnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVuZG9NZ1Nwb3QoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bmRvSWNvbkNsaWNrZWQuZW1pdCh7IGRhdGEsIG1nT3JDcmVkaXQ6ICdNYWtlR29vZCcgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Tb3J0IGFuZCBGaWx0ZXIgTG9naWMgYmVnaW5zIVxyXG4gICAgY2xvc2VUb29sdGlwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXAgJiYgdGhpcy50b29sdGlwLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSBudWxsO1xyXG4gICAgICAgIGlmICghdGhpcy5iaW5kVmFsdWVGdW5jQ2FsbGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1uRmlsdGVyQ2xvc2VkLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNUb29sdGlwQWN0aXZlKGhlYWRlcjogYW55W10pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc1Rvb2x0aXBBY3RpdmUoaGVhZGVyLCB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0b29sdGlwOiBhbnksIGhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmJpbmRWYWx1ZUZ1bmNDYWxsZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIGlmIHNhbWUgdG9vbHRpcCBvcGVuZWQgY2xvc2UgaXRcclxuICAgICAgICBpZiAodG9vbHRpcCA9PSB0aGlzLnRvb2x0aXApIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kVmFsdWVGdW5jQ2FsbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUb29sdGlwKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGVuYWJsZWRIZWFkZXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrSWZVbmlxdWVWYWx1ZVByZXNlbnRGb3JUaGVIZWFkZXIoaGVhZGVyLCBlbmFibGVkSGVhZGVycyk7XHJcbiAgICAgICAgICAgIHRoaXMub3BlblRvb2x0aXAodG9vbHRpcCwgZW5hYmxlZEhlYWRlcnMsIGhlYWRlcik7XHJcblxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8IDE1MDAgJiZcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCA8IDc2OCAmJlxyXG4gICAgICAgICAgICAgICAgIXRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2xpZGVyU2V0LmhhcyhoZWFkZXIuZmlsdGVyU29ydE9iamVjdEtleXNbMF0pXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJPcGVuZWQuZW1pdCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNob3dDaGVja2JveGVzRm9yVGltZUZpbHRlciA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1NQT1RERVRBSUxTJyB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdFWENMVURFSU5WRU5UT1JZUE9QVVAnIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLmd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlclRvb2x0aXBUYWJzID0gaGVhZGVyLmZpbHRlclNvcnRPYmplY3RLZXlzLmxlbmd0aCA+IDE7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZFZhbHVlRnVuY0NhbGxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja0lmVW5pcXVlVmFsdWVQcmVzZW50Rm9yVGhlSGVhZGVyKGhlYWRlcjogSUhlYWRlckluZm8sIGVuYWJsZWRIZWFkZXJzOiBhbnlbXSkge1xyXG4gICAgICAgIGhlYWRlci5maWx0ZXJTb3J0T2JqZWN0S2V5cy5mb3JFYWNoKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFUb0NoZWNrID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5nZXRGaWx0ZXJPcHRpb25zRGF0YSh0aGlzLnRhYmxlRGF0YSwgdGhpcy5jbG9uZWRUYWJsZURhdGEsIGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXRlbSA9PSAncGVyaW9kJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVuaXFTdGFydERhdGUgPSB1bmlxKGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ3N0YXJ0RGF0ZSddKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdW5pcUVuZERhdGUgPSB1bmlxKGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ2VuZERhdGUnXSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHVuaXFTdGFydERhdGUubGVuZ3RoID4gMSB8fCB1bmlxRW5kRGF0ZS5sZW5ndGggPiAxIHx8IHRoaXMuaXNUb29sdGlwQWN0aXZlKFtpdGVtXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVkSGVhZGVycy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IGRhdGFUb0NoZWNrLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbaXRlbV0pO1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgbGFzdCBhcHBsaWVkIGZpbHRlciBpcyB0aGlzIGhlYWRlciwgcHVzaCBpdCBhbG9zIGFzIGVuYWJsZWRIZWFkZXJcclxuICAgICAgICAgICAgICAgIGxldCBhY3RpdmVBbmRMYXN0bHlBcHBsaWVkSGVhZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXlbdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCAtIDFdID09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1cclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUFuZExhc3RseUFwcGxpZWRIZWFkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5maWx0ZXIgPT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh1bmlxKHZhbHVlcykuZmlsdGVyKChuKSA9PiBuICE9IG51bGwpLmxlbmd0aCA+IDEgfHwgYWN0aXZlQW5kTGFzdGx5QXBwbGllZEhlYWRlcilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZWRIZWFkZXJzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5maWx0ZXIgIT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICh1bmlxKHZhbHVlcykuZmlsdGVyKChuKSA9PiBuICE9IG51bGwgJiYgbiAhPSAnLScpLmxlbmd0aCA+IDEgfHwgYWN0aXZlQW5kTGFzdGx5QXBwbGllZEhlYWRlcilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZWRIZWFkZXJzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuVG9vbHRpcCh0b29sdGlwOiBhbnksIGhlYWRlcjogYW55LCBjb2x1bW5IZWFkZXI6IElIZWFkZXJJbmZvKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2x0aXAoKTtcclxuICAgICAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcC5vcGVuKCk7XHJcbiAgICAgICAgLy9jb252ZXJ0IGtleSBpbnRvIHRoZSBoZWFkZXJcclxuICAgICAgICB0aGlzLmZpbHRlclRhYk9iamVjdHMgPSBoZWFkZXIubWFwKChrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuaGFzKGtleSkgPyB0aGlzLnRvb2x0aXBSYWRpb1RleHRNYXAuZ2V0KGtleSkgOiBrZXk7IC8vY2hhbmdlIHRvIGRpc3BsYXkgbmFtZVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFJhZGlvQnV0dG9uTW9kZWwoXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlci5pc1NvcnRSZXF1aXJlZFtpbmRleF0sXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIuaXNGaWx0ZXJSZXF1aXJlZFtpbmRleF0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUVuYWJsZUVhY2hDb2x1bW5Ub29sdGlwSWNvbigpIHtcclxuICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IHtcclxuICAgICAgICAgICAgaGVhZGVyLmhlYWRlckluZm8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uc2hvd1Rvb2x0aXBJY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJTb3J0T2JqZWN0S2V5cy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhdGVzdEZpbHRlcnMgPSB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlc3RGaWx0ZXJzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlc3RGaWx0ZXJzW2xhdGVzdEZpbHRlcnMubGVuZ3RoIC0gMV0gPT0ga2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlVG9vbHRpcEljb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGlzYWJsZVRvb2x0aXBJY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICdwZXJpb2QnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVuaXFTdGFydERhdGUgPSB1bmlxKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YS5tYXAoKHU6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PiB1WydzdGFydERhdGUnXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5pcUVuZERhdGUgPSB1bmlxKHRoaXMudGFibGVEYXRhLm1hcCgodTogeyBbeDogc3RyaW5nXTogYW55IH0pID0+IHVbJ2VuZERhdGUnXSkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVUb29sdGlwSWNvbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXFTdGFydERhdGUubGVuZ3RoID4gMSB8fCB1bmlxRW5kRGF0ZS5sZW5ndGggPiAxID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSB0aGlzLnRhYmxlRGF0YS5tYXAoKHU6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PiB1W2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0uZmlsdGVyID09ICdDSEVDS0JPWCcgJiYgdW5pcSh2YWx1ZXMpLmZpbHRlcigobikgPT4gbiAhPSBudWxsKS5sZW5ndGggPiAxKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbS5maWx0ZXIgIT0gJ0NIRUNLQk9YJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcSh2YWx1ZXMpLmZpbHRlcigobikgPT4gbiAhPSBudWxsICYmIG4gIT0gJy0nKS5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVUb29sdGlwSWNvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRNYXJnaW5MZWZ0Rm9yRmlsdGVySWNvbigpIHtcclxuICAgICAgICBsZXQgZWxlbWVudEFyciA9IHRoaXMudmlld0NoaWxkVGFibGVIZWFkZXJzLnRvQXJyYXkoKTtcclxuICAgICAgICBlbGVtZW50QXJyLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoaWxkRGl2RWxlbWVudHMgPSBpdGVtLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XHJcblxyXG4gICAgICAgICAgICBpZiAoY2hpbGREaXZFbGVtZW50cy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGg6IG51bWJlciA9IGNoaWxkRGl2RWxlbWVudHNbMF0/LmNoaWxkcmVuWzBdPy5vZmZzZXRXaWR0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGREaXZFbGVtZW50c1swXT8uY2hpbGRyZW5bMF0/Lm9mZnNldFdpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlY29uZFBhcmFncmFwaE9mZnNldFdpZHRoOiBudW1iZXIgPSBjaGlsZERpdkVsZW1lbnRzWzFdLmNoaWxkcmVuWzBdPy5vZmZzZXRXaWR0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblswXT8ub2Zmc2V0V2lkdGhcclxuICAgICAgICAgICAgICAgICAgICA6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGggPiBzZWNvbmRQYXJhZ3JhcGhPZmZzZXRXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkaWZmID0gZmlyc3RQYXJhZ3JhcGhPZmZzZXRXaWR0aCAtIHNlY29uZFBhcmFncmFwaE9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZERpdkVsZW1lbnRzWzBdLmNoaWxkcmVuLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRGl2RWxlbWVudHNbMF0uY2hpbGRyZW5bMV0uc3R5bGUubWFyZ2luTGVmdCA9IDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMV0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gZGlmZiArIDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBzZWNvbmRQYXJhZ3JhcGhPZmZzZXRXaWR0aCAtIGZpcnN0UGFyYWdyYXBoT2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMF0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1swXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gZGlmZiArIDQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkRGl2RWxlbWVudHNbMV0uY2hpbGRyZW4ubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGREaXZFbGVtZW50c1sxXS5jaGlsZHJlblsxXS5zdHlsZS5tYXJnaW5MZWZ0ID0gNCArICdweCc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YVJvd0NsaWNrZWQocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5yb3dDbGlja2VkLmVtaXQocm93RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmFkaW9CdXR0b25DbGlja2VkKGRhdGE6IGFueSwgYWN0aW9uOiBzdHJpbmcsIGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvblNlbGVjdGVkLmVtaXQoeyBkYXRhLCBhY3Rpb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJpbmRUaGVWYWx1ZVRvU2VsbGVyR3JvdXBUb29sdGlwKHNlbGxlckdyb3VwSGllcmFyY2h5OiBSYXRpbmdTZWxsZXJHcm91cEhpZXJhcmNoeVtdLCB0b29sdGlwOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHlUb29sdGlwICYmIHRoaXMuaGllcmFyY2h5VG9vbHRpcC5vcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGllcmFyY2h5VG9vbHRpcC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGxlckdyb3VwSGllcmFyY2h5ID0gc2VsbGVyR3JvdXBIaWVyYXJjaHk7XHJcbiAgICAgICAgdGhpcy5oaWVyYXJjaHlUb29sdGlwID0gdG9vbHRpcDtcclxuICAgICAgICB0aGlzLmhpZXJhcmNoeVRvb2x0aXAub3BlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGljb25DbGlja2VkKHJvd0RhdGE6IGFueSwgaWNvbkNsYXNzOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoJ29yZGVySWQnIGluIHJvd0RhdGEgJiYgaWNvbkNsYXNzLmluY2x1ZGVzKCdtZGktc3RhcicpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFycmVkT3JkZXJJZCA9IHJvd0RhdGEub3JkZXJJZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ3RJY29uQ2xpY2tlZC5lbWl0KHsgZGF0YTogcm93RGF0YSwgaWNvbkNsYXNzOiBpY29uQ2xhc3MgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnSWNvbkNsaWNrZWQoZGF0YTogR3RDb2x1bW5JY29uRW1pdHRlZERhdGEpIHtcclxuICAgICAgICB0aGlzLmd0U1ZHSWNvbkNsaWNrZWQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0ZXh0QWN0aW9uQ2xpY2tlZChyb3dEYXRhOiBhbnksIGlkOiBhbnksIGNvbHVtbkhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmd0VGV4dEFjdGlvbkNsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEsIGlkOiBpZCwgY29sdW1uSGVhZGVyOiBjb2x1bW5IZWFkZXIsIGlzSWNvbkNsaWNrZWQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGljb25DbGlja2VkT25TdHJpbmdJY29uQWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIGlkOiBhbnksIGNvbHVtbkhlYWRlcjogSUhlYWRlckluZm8pIHtcclxuICAgICAgICB0aGlzLmd0VGV4dEFjdGlvbkNsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEsIGlkOiBpZCwgY29sdW1uSGVhZGVyOiBjb2x1bW5IZWFkZXIsIGlzSWNvbkNsaWNrZWQ6IHRydWUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5uZXJIVE1MQ2VsbENsaWNrZWQoZXZlbnQ6IGFueSwgcm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5ndElubmVySFRNTENsaWNrZWQuZW1pdCh7IGV2ZW50LCByb3dEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZpZXdEZXRhaWxzQ2xpY2tlZChyb3dEYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmd0Vmlld0RldGFpbENsaWNrZWQuZW1pdCh7IGRhdGE6IHJvd0RhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QWN0aXZlU3RhdGVPYmplY3QoKSB7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgPVxyXG4gICAgICAgICAgICAhdGhpcy5hbm5hRmlsdGVyU2VydmljZS5yZXNldEZpbHRlclNvcnRBY3RpdmVTdGF0dXMgfHwgdGhpcy5tdWx0aXBsZVRhYmxlc1ByZXNlbnRcclxuICAgICAgICAgICAgICAgID8gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmVcclxuICAgICAgICAgICAgICAgIDoge307XHJcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmhlYWRlckluZm8uZm9yRWFjaCgoaGVhZGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLnNob3dUb29sdGlwSWNvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSBoZWFkZXIuZmlsdGVyU29ydE9iamVjdEtleXMuam9pbignLCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5cyA9IGtleTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBBTk5BLTQxMTMgZml4XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYW5uYUZpbHRlclNlcnZpY2UucmVzZXRGaWx0ZXJTb3J0QWN0aXZlU3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2tleV0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UucmVzZXRGaWx0ZXJTb3J0QWN0aXZlU3RhdHVzID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJc0RpZmZlcmVuY2UodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzRGlmZmVyZW5jZUxlc3NUaGFuMjVQZXJjZW50ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXRJbmRleCgpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gMDtcclxuICAgICAgICB0aGlzLmVuZCA9IHRoaXMubGltaXQgKyB0aGlzLnN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uVGFibGVDb250YWluZXJTY3JvbGwoZTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgdGFibGVWaWV3SGVpZ2h0ID0gZS50YXJnZXQub2Zmc2V0SGVpZ2h0OyAvLyB2aWV3cG9ydFxyXG4gICAgICAgIGNvbnN0IHRhYmxlU2Nyb2xsSGVpZ2h0ID0gZS50YXJnZXQuc2Nyb2xsSGVpZ2h0OyAvLyBsZW5ndGggb2YgYWxsIHRhYmxlXHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsTG9jYXRpb24gPSBlLnRhcmdldC5zY3JvbGxUb3A7IC8vIGhvdyBmYXIgdXNlciBzY3JvbGxlZFxyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZVRvb2x0aXBPblNjcm9sbCgpO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgd2l0aGluIDE1MHB4IG9mIHRoZSBib3R0b20sIGFkZCBtb3JlIGRhdGFcclxuICAgICAgICBjb25zdCBidWZmZXIgPSAxNTA7XHJcbiAgICAgICAgY29uc3QgbGltaXQgPSB0YWJsZVNjcm9sbEhlaWdodCAtIHRhYmxlVmlld0hlaWdodCAtIGJ1ZmZlcjtcclxuICAgICAgICBpZiAoc2Nyb2xsTG9jYXRpb24gPiBsaW1pdCkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0VGFibGVEYXRhKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSB0aGlzLnJlbmRlcmVkRGF0YS5jb25jYXQoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5kZXgoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbnRhaW5lclNjcm9sbGVkKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRhYmxlRGF0YShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoKHZhbHVlLCBpbmRleCkgPT4gaW5kZXggPj0gc3RhcnQgJiYgaW5kZXggPCBlbmQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUluZGV4KCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSB0aGlzLmVuZDtcclxuICAgICAgICB0aGlzLmVuZCA9IHRoaXMubGltaXQgKyB0aGlzLnN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEluaXRpYWxSb3dzRm9yVGFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldEluZGV4KCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlZERhdGEgPSB0aGlzLmdldFRhYmxlRGF0YSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVJbmRleCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNwb3REZXRhaWxzRG93bmxvYWRDbGlja2VkKHBhcmVudENoaWxkT3JUb3RhbFJvdzogJ0RBVEFST1cnIHwgJ1RPVEFMUk9XJywgcm93ZGF0YT86IGFueSkge1xyXG4gICAgICAgIGlmIChyb3dkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbnZlbnRvcnlJZEZvckRvd25sb2FkID0gcm93ZGF0YS5pbnZlbnRvcnlDb2RlSWQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZW1vZ3JhcGhpY0ZvckRvd25sb2FkID0gcm93ZGF0YS5kZW1vZ3JhcGhpYztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW52ZW50b3J5SWRGb3JEb3dubG9hZCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZW1vZ3JhcGhpY0ZvckRvd25sb2FkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd1R5cGVGb3JEb3dubG9hZCA9IHBhcmVudENoaWxkT3JUb3RhbFJvdztcclxuICAgICAgICB0aGlzLmRvd25sb2FkU3BvdERldGFpbHMuZW1pdCh7XHJcbiAgICAgICAgICAgIHBhcmVudENoaWxkT3JUb3RhbFJvdzogcGFyZW50Q2hpbGRPclRvdGFsUm93LFxyXG4gICAgICAgICAgICBpbnZlbnRvcnlDb2RlSWQ6IHRoaXMuc2VsZWN0ZWRJbnZlbnRvcnlJZEZvckRvd25sb2FkLFxyXG4gICAgICAgICAgICBkZW1vZ3JhcGhpYzogdGhpcy5zZWxlY3RlZERlbW9ncmFwaGljRm9yRG93bmxvYWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGFibGVDb250YWluZXJTY3JvbGxlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5pc1Njcm9sbGVkTGVmdCA9IGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0ID4gMDtcclxuICAgICAgICB0aGlzLmlzU2Nyb2xsRW5kZWQgPSBNYXRoLnJvdW5kKGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0KSA9PSBldmVudC50YXJnZXQuc2Nyb2xsV2lkdGggLSBldmVudC50YXJnZXQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwT25TY3JvbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIHRvb2x0aXBLZXk6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudGV4dEFjdGlvblRvb2x0aXAgPSByb3dEYXRhW3Rvb2x0aXBLZXldO1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uSWNvbkhvdmVyLmVtaXQoeyByb3dEYXRhOiByb3dEYXRhLCB0eXBlOiAnb24tZW50ZXInIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG1vdXNlRW50ZXJPblN0cmluZ1RleHRBY3Rpb25UeXBlQ29udGFpbmluZ1RhYmxlKHJvd0RhdGE6IGFueSwgdG9vbHRpcEtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwQ29udGFpbmluZ1RhYmxlID0gcm93RGF0YVt0b29sdGlwS2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUxlYXZlVGV4dEFjdGlvblR5cGUocm93RGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JY29uSG92ZXJMZWF2ZS5lbWl0KHsgcm93RGF0YTogcm93RGF0YSwgdHlwZTogJ29uLWxlYXZlJyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBtb3VzZUVudGVyT25UZXh0QWN0aW9uVHlwZShyb3dEYXRhOiBhbnksIHRvb2x0aXBLZXk6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudGV4dEFjdGlvblRvb2x0aXAgPSByb3dEYXRhW3Rvb2x0aXBLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2thYmxlRGF0YUNsaWNrZWQoUm93ZGF0YTogYW55LCBpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGlja2FibGVEYXRhQ2xpY2tlZC5lbWl0KHsgZGF0YTogUm93ZGF0YSwgaWQ6IGlkIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVRvb2x0aXBPblNjcm9sbCgpIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbWFya3MtaW5mby10b29sdGlwJyk7XHJcbiAgICAgICAgLy8gY29uc3QgdG9vbHRpcEVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRvb2x0aXBcIik7XHJcbiAgICAgICAgY29uc3QgZ3RUb29sdGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVtb3ZlLW9uLXNjcm9sbC1jbGFzcycpO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50b29sdGlwOm5vdCgua2VlcC1vbi1zY3JvbGwtdG9vbHRpcCknKS5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHdoaWxlIChlbGVtZW50cyAmJiBlbGVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnRzWzBdLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aGlsZSAoZ3RUb29sdGlwICYmIGd0VG9vbHRpcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGd0VG9vbHRpcFswXS5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWNvbkNsaWNrZWRJblRvdGFsUm93KGNvbE5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudG90YWxSb3dJY29uQ2xpY2tlZC5lbWl0KGNvbE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZXNNYWRlSW5FZGl0YWJsZUlucHV0Qm94KGV2ZW50OiBhbnksIGVkaXRlZE9iamVjdDogYW55LCBwYXN0ZUV2ZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IGVudGVyZWRWYWx1ZSA9IHBhc3RlRXZlbnQgPyBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKSA6IGV2ZW50LmtleTtcclxuICAgICAgICBsZXQgZG90SW5kZXggPSBlZGl0ZWRPYmplY3QudmFsdWUuaW5kZXhPZignLicpO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgIT0gOCAmJlxyXG4gICAgICAgICAgICBldmVudC5rZXlDb2RlICE9IDQ2ICYmXHJcbiAgICAgICAgICAgICEoZXZlbnQua2V5Q29kZSA+PSAzNyAmJiBldmVudC5rZXlDb2RlIDw9IDQwKSAmJlxyXG4gICAgICAgICAgICAoKCFlZGl0ZWRPYmplY3Q/LmFsbG93U3BlY2lhbENoYXJhY3RlcnMgJiYgIS9bYDAtOS5dLy50ZXN0KGVudGVyZWRWYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICAoZWRpdGVkT2JqZWN0Py5jaGFyYWN0ZXJzVG9SZXN0cmljdCAmJiBlZGl0ZWRPYmplY3Q/LmNoYXJhY3RlcnNUb1Jlc3RyaWN0LmluY2x1ZGVzKGVudGVyZWRWYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICAoZWRpdGVkT2JqZWN0LmlzRGVjaW1hbFBvaW50Q2hlY2tSZXF1aXJlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGRvdEluZGV4ID49IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICBldmVudD8udGFyZ2V0Py5zZWxlY3Rpb25TdGFydCA+IGRvdEluZGV4ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgZWRpdGVkT2JqZWN0LnZhbHVlLmxlbmd0aCAtIChkb3RJbmRleCArIDEpID49IGVkaXRlZE9iamVjdC5tYXhEZWNpbWFsUG9pbnRzQWxsb3dlZCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVkaXRhYmxlSW5wdXRWYWx1ZUNoYW5nZWQodmFsdWU6IGFueSwgcm93OiBhbnksIGtleUVkaXRlZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZUlucHV0RWRpdGVkLmVtaXQoeyByb3c6IHJvdywgdmFsdWU6IHZhbHVlLCBrZXlFZGl0ZWQ6IGtleUVkaXRlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICByYWRpb0J1dHRvbkljb25DbGlja2VkKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25NZXNzYWdlSWNvbkNsaWNrZWQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJBcHBsaWVkKHRhYmxlRGF0YTogYW55W10pIHtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxSb3dzRm9yVGFibGUoKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVFbmFibGVFYWNoQ29sdW1uVG9vbHRpcEljb24oKTtcclxuICAgICAgICB0aGlzLmZpbHRlckFwcGxpZWRUb1RhYmxlLmVtaXQodGFibGVEYXRhKTtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbHRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNvcnRpbmdBcHBsaWVkKHRhYmxlRGF0YTogYW55W10pIHtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxSb3dzRm9yVGFibGUoKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVFbmFibGVFYWNoQ29sdW1uVG9vbHRpcEljb24oKTtcclxuICAgICAgICB0aGlzLnNvcnRpbmdBcHBsaWVkVG9UYWJsZS5lbWl0KHRhYmxlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2x0aXAoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBpZD1cImdlbmVyaWMtdGFibGUtY29uYXRpbmVyXCJcclxuICAgIGNsYXNzPVwidGFibGUtY29udGFpbmVyIHt7IGd0R2VuZXJhbENvbmZpZz8udGFibGVPdXRlckNvbnRhaW5lck5hbWUgfX0ge3sgdGFibGVCb3R0b21Cb3JkZXJDbGFzcyB9fVwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ3Njcm9sbC1sZWZ0LXNoYWRvdy1lZmZlY3QnOiBpc1Njcm9sbGVkTGVmdCxcclxuICAgICAgICAnc2Nyb2xsLXJpZ2h0LXNoYWRvdy1lZmZlY3QnOiAhaXNTY3JvbGxFbmRlZCxcclxuICAgICAgICAnY2xpY2thYmxlLXJvdyc6IGNsaWNrYWJsZVJvdyxcclxuICAgICAgICAnbm8tZGF0YS10YWJsZSc6IChpc05vRGF0YVRvRGlzcGxheVN1YmplY3QkIHwgYXN5bmMpXHJcbiAgICB9XCJcclxuICAgIChzY3JvbGwpPVwib25UYWJsZUNvbnRhaW5lclNjcm9sbCgkZXZlbnQpXCJcclxuPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIFtjbGFzc109XCJndEdlbmVyYWxDb25maWcudGFibGVDb250YWluZXJOYW1lXCJcclxuICAgICAgICBjbGFzcz1cImhvcml6b250YWwtc2Nyb2xsLWZvci10YWJsZS1jb250YWluZXJcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgaGVpZ2h0OlxyXG4gICAgICAgICAgICAgICAgdGFibGVEYXRhLmxlbmd0aCA8IG1heGltdW1Sb3dzV2hpY2hDYW5CZVJlbmRlcmVkV2l0aG91dFNjcm9sbFxyXG4gICAgICAgICAgICAgICAgICAgID8gJ2NhbGMoJyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAoZ3REaW1lbnNpb24ucm93SGVpZ2h0ICogdGFibGVEYXRhLmxlbmd0aCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCF0YWJsZURhdGEubGVuZ3RoIHx8ICFndEdlbmVyYWxDb25maWcudG90YWxSb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBndERpbWVuc2lvbi5oZWFkZXJIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBndERpbWVuc2lvbi5oZWFkZXJIZWlnaHQgKyBndERpbWVuc2lvbi5yb3dIZWlnaHQpKSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAncHgpJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogZ3REaW1lbnNpb24udGFibGVIZWlnaHRcclxuICAgICAgICB9XCJcclxuICAgID5cclxuICAgICAgICA8dGFibGVcclxuICAgICAgICAgICAgY2xhc3M9XCJndFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3NcIlxyXG4gICAgICAgICAgICBtYXQtdGFibGVcclxuICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicmVuZGVyZWREYXRhXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItcm93XCJcclxuICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItcm93XHJcbiAgICAgICAgICAgICAgICAqbWF0SGVhZGVyUm93RGVmPVwidGFibGVDb2x1bW5zOyBzdGlja3k6IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJndERpbWVuc2lvbi5oZWFkZXJIZWlnaHRcIlxyXG4gICAgICAgICAgICA+PC90cj5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvdGFsLXJvd1wiXHJcbiAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLXJvd1xyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJndERpbWVuc2lvbi5yb3dIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cInRvdGFsUm93Q29sdW1uczsgc3RpY2t5OiB0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1NrZWxldG9uTG9hZGluZyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICghc2hvd1NrZWxldG9uTG9hZGluZyAmJiAhdGFibGVEYXRhLmxlbmd0aCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAoaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICghc2hvd1NrZWxldG9uTG9hZGluZyAmJiAhZ3RHZW5lcmFsQ29uZmlnLnRvdGFsUm93KVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvdHI+XHJcbiAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cInJvd0RhdGEuZ3RDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICduby1ib3JkZXItdHInOiAoaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jKSB9XCJcclxuICAgICAgICAgICAgICAgIG1hdC1yb3dcclxuICAgICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93RGF0YTsgY29sdW1uczogdGFibGVDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ3REaW1lbnNpb24ucm93SGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkYXRhUm93Q2xpY2tlZChyb3dEYXRhKVwiXHJcbiAgICAgICAgICAgID48L3RyPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBUT1RBTCBST1cgLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmNvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0b3RhbFJvd0luZm87IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxyXG4gICAgICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW4uY29sc3BhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBjb2x1bW4uY2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5bJ2lzQWN0aW9uQ29sdW1uJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIGNvbHVtbi5hY3Rpb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJkYXRhLmNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrYWJsZURhdGFDbGlja2VkKHt9LCBkYXRhLmlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5bJ2lzSWNvbkNvbHVtbiddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbj8uaWNvbkRhdGE/LmNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpY29uQ2xpY2tlZEluVG90YWxSb3coY29sdW1uPy5jb2xOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtblsnaXNBY3Rpb25Db2x1bW4nXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidXBwZXItbGFiZWxcIj57eyBjb2x1bW4uZGF0YSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmxvd2VyRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5jb2xOYW1lID09ICd0b3RhbC1wb3RlbnRpYWwtYm9va2VkLXVuaXQnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdSQVRJTkcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNvbHVtbkxvd2VyRGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGlja2FibGUtZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNwb3REZXRhaWxzRG93bmxvYWRDbGlja2VkKCdUT1RBTFJPVycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1jbGlja2FibGUtZGF0YSc6IGRvd25sb2FkSW5Qcm9ncmVzcyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgY29sdW1uLmxvd2VyRGF0YSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BvdC1kZXRhaWxzLWRvd25sb2FkLWljb25zXCI+Z2V0X2FwcDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRJblByb2dyZXNzICYmIHNlbGVjdGVkUm93VHlwZUZvckRvd25sb2FkID09ICdUT1RBTFJPVydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaXJjdWxhclByb2dyZXNzQmFyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkxvd2VyRGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvd2VyLWxhYmVsXCI+e3sgY29sdW1uLmxvd2VyRGF0YSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnRvb2x0aXBNZXNzYWdlICYmIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgIT0gJ0xVUl9WSU9MQVRJT05TJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbi50b29sdGlwSWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcE1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdMVVJfVklPTEFUSU9OUycgJiYgY29sdW1uLnRvb2x0aXBNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWkgbWRpLWluZm8tb3V0bGluZSBpbmZvLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJsdXJWaW9sYXRpb25Ub3RhbFJvd1Rvb2xUaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTUFJTiBST1cgLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uRGVmLmhlYWRlckluZm9bMF0ub2JqZWN0S2V5XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgdGFibGVIZWFkZXJzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICAjdGFibGVIZWFkZXJcclxuICAgICAgICAgICAgICAgICAgICBub3dyYXBcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgICAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW5EZWYud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbXgtMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgY29sdW1uRGVmLmhlYWRlckluZm87IGxldCBqID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnR5cGVPZkhlYWRlckRhdGEgPT09ICdTVFJJTkcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3VwcGVyLWxhYmVsJzogaiA9PT0gMCwgJ2xvd2VyLWxhYmVsJzogaiA9PT0gMSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci5uYW1lID09IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW5EZWYud2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnOiAnY2FsYygxMDAlIC0gMjBweCknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXIubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAudG9vbHRpcE1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImhlYWRlci50b29sdGlwLnRvb2x0aXBNZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2ltcHNJbmZvVG9vbHRpcCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJpbXBzSW5mb1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnc3BvdHNDb2x1bW5FcXVpdmFsaXphdGlvbk1lc3NhZ2VUb29sdGlwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInNwb3RzQ29sdW1uRXF1aXZhbGl6YXRpb25NZXNzYWdlVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcFBvc2l0aW9uIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ3VuZGVyRGVsaXZlcnlUb29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInVuZGVyRGVsaXZlcnlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnb3ZlckRlbGl2ZXJ5VG9vbHRpcCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJvdmVyRGVsaXZlcnlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAncmF0aW5nSW5mb1Rvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicmF0aW5nSW5mb1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdyYXRlSW5mb1Rvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicmF0ZUluZm9Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnb25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwib25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdjb21wbGV0ZWRSZXZCb29rZWRDb2x1bW5Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImNvbXBsZXRlZFJldkJvb2tlZENvbHVtblRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdhdmdCb29rZWRSYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImF2Z0Jvb2tlZFJhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWFkZXIudG9vbHRpcCAmJiBoZWFkZXIudG9vbHRpcC5uYW1lID09ICdhdmdCb29rZWRSdGcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLmljb25DbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBmbG9hdDogaGVhZGVyWyd0b29sdGlwJ10uaWNvblBvc2l0aW9uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiYXZnQm9va2VkUnRnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAnYXZnQm9va2VkSW1wcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJhdmdCb29rZWRJbXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2F1dG9tYXRpb25Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImF1dG9tYXRpb25Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ3JlYmF0ZUltcGFjdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJyZWJhdGVJbXBhY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBQb3NpdGlvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10udG9vbHRpcENsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLnRvb2x0aXAgJiYgaGVhZGVyLnRvb2x0aXAubmFtZSA9PSAncHJvamVjdGVkSW1wc1J0ZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaGVhZGVyWyd0b29sdGlwJ10uaWNvbkNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGZsb2F0OiBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uUG9zaXRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Q9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwcm9qZWN0ZWRJbXBzUnRnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIudHlwZU9mSGVhZGVyRGF0YSA9PT0gJ0NIRUNLQk9YJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImd0R2VuZXJhbENvbmZpZy5pc0hlYWRlckNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgY3VzdG9tLWNvbHVtbi1jaGVja2JveC1jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VW5zZWxlY3RBbGxSb3dzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFndEdlbmVyYWxDb25maWcuaXNIZWFkZXJDaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtdW5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlLWNoZWNrYm94JzogZ3RHZW5lcmFsQ29uZmlnLmRpc2FibGVIZWFkZXJDaGVja2JveCB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VW5zZWxlY3RBbGxSb3dzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2JveF9vdXRsaW5lX2JsYW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJndEdlbmVyYWxDb25maWcuc2hvd0FsbENvbHVtbkZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtZmlsdGVyLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuc2hvd1Rvb2x0aXBJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBY3RpdmUgdG9vbHRpcCBGdW5jdGlvbmFsaXR5IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmlsdGVyID09PSAnQ0hFQ0tCT1gnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kaSBtZGktZmlsdGVyLXZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZVtoZWFkZXIuam9pbmVkRmlsdGVyU29ydE9iamVjdEtleXNdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBoZWFkZXIuZGlzYWJsZVRvb2x0aXBJY29uIHx8IHNob3dTa2VsZXRvbkxvYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiZmlsdGVyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBmaWx0ZXJBbGlnbm1lbnQgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJub24tZWRpdC1jaGVja2JveC10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0PVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmluZFRoZVZhbHVlVG9Ub29sVGlwKHQsIGhlYWRlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZpbHRlciA9PT0gJ1NMSURFUidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRpIG1kaS1maWx0ZXItdmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2hlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5c10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGhlYWRlci5kaXNhYmxlVG9vbHRpcEljb24gfHwgc2hvd1NrZWxldG9uTG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJzbGlkZXJUb29sVGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBsZWZ0LXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cIm5vbi1lZGl0LXNsaWRlci10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0MT1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0MSwgaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZGVuKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmlsdGVyID09PSAnREFURSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRpIG1kaS1maWx0ZXItdmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlW2hlYWRlci5qb2luZWRGaWx0ZXJTb3J0T2JqZWN0S2V5c10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGhlYWRlci5kaXNhYmxlVG9vbHRpcEljb24gfHwgc2hvd1NrZWxldG9uTG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJkYXRlUGlja2VyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cIm5vbi1lZGl0LWRhdGVwaWNrZXItdG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdDI9XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiaW5kVGhlVmFsdWVUb1Rvb2xUaXAodDIsIGhlYWRlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZpbHRlciA9PT0gJ1dFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kaSBtZGktZmlsdGVyLXZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5uYUZpbHRlclNlcnZpY2UuaXNGaWx0ZXJTb3J0QWN0aXZlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZVtoZWFkZXIuam9pbmVkRmlsdGVyU29ydE9iamVjdEtleXNdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBoZWFkZXIuZGlzYWJsZVRvb2x0aXBJY29uIHx8IHNob3dTa2VsZXRvbkxvYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwid2Vla1BpY2tlclRvb2xUaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGxlZnQtdG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3QzPVwibmdiVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmluZFRoZVZhbHVlVG9Ub29sVGlwKHQzLCBoZWFkZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWRkZW4pPVwiY2xvc2VUb29sdGlwKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRlci5maWx0ZXIgPT09ICdUSU1FJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLWZpbHRlci12YXJpYW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubmFGaWx0ZXJTZXJ2aWNlLmlzRmlsdGVyU29ydEFjdGl2ZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5hRmlsdGVyU2VydmljZS5pc0ZpbHRlclNvcnRBY3RpdmVbaGVhZGVyLmpvaW5lZEZpbHRlclNvcnRPYmplY3RLZXlzXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogaGVhZGVyLmRpc2FibGVUb29sdGlwSWNvbiB8fCBzaG93U2tlbGV0b25Mb2FkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRpbWVGaWx0ZXJUb29sVGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBsZWZ0LXRvcCBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwibm9uLWVkaXQtdGltZS10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0ND1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJpbmRUaGVWYWx1ZVRvVG9vbFRpcCh0NCwgaGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZGVuKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhlYWRlci5zaG93VG9vbHRpcEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cIm5vLWZpbHRlci1zcGFjZVwiPjwvc3Bhbj48YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci50b29sdGlwICYmIGhlYWRlci50b29sdGlwLm5hbWUgPT0gJ2x1clZpb2xhdGlvbkluZm9Ub29sdGlwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZmxvYXQ6IGhlYWRlclsndG9vbHRpcCddLmljb25Qb3NpdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdD1cIm5nYlRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImx1clZpb2xhdGlvbkluZm9Ub29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ7eyBoZWFkZXJbJ3Rvb2x0aXAnXS50b29sdGlwUG9zaXRpb24gfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInt7IGhlYWRlclsndG9vbHRpcCddLnRvb2x0aXBDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICptYXRDZWxsRGVmPVwibGV0IFJPV19EQVRBXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1jZWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIlJPV19EQVRBLmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiUk9XX0RBVEEuYm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBST1dfREFUQS5yb3dDbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdUZENsYXNzJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb3dzcGFuXT1cIlJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdSb3dzcGFuJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWhpZGVTb21lVGRzIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlkZVNvbWVUZHMgJiYgIVJPV19EQVRBWydoaWRlJyArIGNvbHVtbkRlZi5oZWFkZXJJbmZvWzBdLm9iamVjdEtleSArICdUZCddKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1NrZWxldG9uTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgaGVpZ2h0OiAnMTBweCcsIGRpc3BsYXk6ICdibG9jaycgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93U2tlbGV0b25Mb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCA+IDAgJiYgIShpc05vRGF0YVRvRGlzcGxheVN1YmplY3QkIHwgYXN5bmMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJsaW5lIG9mIGNvbHVtbkRlZi5oZWFkZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1YkxpbmVJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHNob3dFbGxpcHNpc1RleHRPbkhvdmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50eXBlT2ZCb2R5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidJQ09OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFycmVkSW5Qcm9ncmVzcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5vcmRlcklkID09IHNlbGVjdGVkU3RhcnJlZE9yZGVySWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlJPV19EQVRBLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaWNvbkNsaWNrZWQoUk9XX0RBVEEsIFJPV19EQVRBLmljb25DbGFzcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7IFJPV19EQVRBLmljb25UaXRsZVRleHQgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtaWNvbi1jb2x1bW4tdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFycmVkSW5Qcm9ncmVzcyAmJiBST1dfREFUQS5vcmRlcklkID09IHNlbGVjdGVkU3RhcnJlZE9yZGVySWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWZvci1idXR0b24tZGlyZWN0aXZlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSUNPTl9DRUxMJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uIG9mIFJPV19EQVRBW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLmFjdGlvbktleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24uc2hvd09iamVjdEtleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImFjdGlvbi5pY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInRlYW0tdXNlci10b29sdGlwIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImFjdGlvbi5zaG93VG9vbHRpcCA/IGFjdGlvbi50b29sdGlwRGF0YSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFjdGlvbkNsaWNrZWQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFhY3Rpb24uc2hvd1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0hUTUxfU1RSSU5HJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImlubmVySFRNTENlbGxDbGlja2VkKCRldmVudCwgUk9XX0RBVEEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NWR19JQ09OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YW5uYS1jb3JlLWFubmEtaWNvbi1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnROYW1lXT1cImd0R2VuZXJhbENvbmZpZy5jb21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFPYmplY3RdPVwiUk9XX0RBVEFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25Ub1Nob3ddPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ29sdW1uSWNvbkNsaWNrZWQpPVwic3ZnSWNvbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2FubmEtY29yZS1hbm5hLWljb24tY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVEVYVF9BQ1RJT05TJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dCBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0LnNob3dUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBY3Rpb25DbGlja2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGV4dC5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IHRleHQuY2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25UZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRleHRBY3Rpb25Ub29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdGV4dC5zaG93VG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWN0aW9uQ2xpY2tlZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRleHQuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyB0ZXh0LmNsYXNzIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0NIRUNLQk9YJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlLWNoZWNrYm94JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5pc0Rpc2FibGVkS2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3JVbnNlbGVjdENoZWNrYm94KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIVJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGN1c3RvbS1jb2x1bW4tY2hlY2tib3gtdW5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9yVW5zZWxlY3RDaGVja2JveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfYm94X291dGxpbmVfYmxhbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogYWN0aW9uLmRpc2FibGVkSWNvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGVDb250YWluaW5nVGFibGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0udG9vbHRpcEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5pbmctdGFibGUgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidG9vbHRpcENvbnRhaW5pbmdUYWJsZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDTElDS0FCTEVfREFUQSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0IG9mIFJPV19EQVRBW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLmFjdGlvbktleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwidGV4dC5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja2FibGVEYXRhQ2xpY2tlZChST1dfREFUQSwgdGV4dC5pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZFVuaXRzJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZS1kYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzcG90RGV0YWlsc0Rvd25sb2FkQ2xpY2tlZCgnREFUQVJPVycsIFJPV19EQVRBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1jbGlja2FibGUtZGF0YSc6IGRvd25sb2FkSW5Qcm9ncmVzcyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBST1dfREFUQS5kaXNwbGF5Qm9va2VkVW5pdHMgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BvdC1kZXRhaWxzLWRvd25sb2FkLWljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Z2V0X2FwcDwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkSW5Qcm9ncmVzcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5pbnZlbnRvcnlDb2RlSWQgPT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSW52ZW50b3J5SWRGb3JEb3dubG9hZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZW1vZ3JhcGhpYyA9PSBzZWxlY3RlZERlbW9ncmFwaGljRm9yRG93bmxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2lyY3VsYXJQcm9ncmVzc0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NUUklOR19fX0lDT05fT1JfVEVYVF9BQ1RJT04nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3Rpb24gb2YgUk9XX0RBVEFbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uYWN0aW9uS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmFkZGl0aW9uYWxUZXh0QmVmb3JlTGlua0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cImFjdGlvbi5hZGRpdGlvbmFsVGV4dEJlZm9yZUxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7eyBhY3Rpb24uYWRkaXRpb25hbFRleHRCZWZvcmVMaW5rIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFhY3Rpb24uZW5hYmxlVG9vbHRpcEZvckFkZGl0aW9uYWxUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbiAmJiBhY3Rpb24udHlwZU9mRGF0YSA9PSAnU1RSSU5HJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGlvbi5kYXRhIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJhY3Rpb24uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dMaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBY3Rpb25DbGlja2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24ubGlua0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWRMaW5rIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBhY3Rpb24uZGF0YSB9fTwvYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3sgYWN0aW9uLmFkZGl0aW9uYWxUZXh0QWZ0ZXJMaW5rIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uYWRkaXRpb25hbFRleHRBZnRlckxpbmtDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtaWNvbi1jb2x1bW4tdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwiIWFjdGlvbi5lbmFibGVUb29sdGlwRm9yQWRkaXRpb25hbEFmdGVyVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYWN0aW9uLmFkZGl0aW9uYWxUZXh0QWZ0ZXJMaW5rIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi5zaG93VG9vbHRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udG9vbHRpcERhdGEuaW5uZXJIdG1sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWRJY29uIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGVDb250YWluaW5nVGFibGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLnRvb2x0aXBLZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwidG9vbHRpcC1jb250YWluaW5nLXRhYmxlIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidG9vbHRpcENvbnRhaW5pbmdUYWJsZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uLnRvb2x0aXBEYXRhLnRvb2x0aXBUYWJsZUJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnNob3dJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGFjdGlvbi5kaXNhYmxlZEljb24gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsaWNrZWRPblN0cmluZ0ljb25BY3Rpb25UeXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmVUZXh0QWN0aW9uVHlwZShST1dfREFUQSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLnRvb2x0aXBLZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGFjdGlvbi50b29sdGlwUGxhY2VtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JvdHRvbSBhdXRvJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInRlYW0tdXNlci10b29sdGlwIHJlbW92ZS1vbi1zY3JvbGwtY2xhc3Mge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcENsYXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJ1c2VyTG9nZ2VkSW5EZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb25bJ3Nob3dTdmdJY29uJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhbm5hLWNvcmUtYW5uYS1lc3QtaWNvbi10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uWydzdmdJY29uTmFtZSddID09ICdhbm5hLWljb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlVGV4dEFjdGlvblR5cGUoUk9XX0RBVEEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VFbnRlck9uU3RyaW5nVGV4dEFjdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9vbHRpcEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhY3Rpb24udG9vbHRpcFBsYWNlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYm90dG9tIGF1dG8nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJ0ZWFtLXVzZXItdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvblsndG9vbHRpcENsYXNzJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwidXNlckxvZ2dlZEluRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYW5uYS1jb3JlLWFubmEtZXN0LWljb24tdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb24uc2hvd1Rvb2x0aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi5zaG93SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24uaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogYWN0aW9uLmRpc2FibGVkSWNvbiB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsaWNrZWRPblN0cmluZ0ljb25BY3Rpb25UeXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NUUklOR19PUl9JTlBVVCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV0/LnR5cGUgPT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NUUklORyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpbnB1dEJveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5wbGFjZWhvbGRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93RWxsaXBzaXNUZXh0T25Ib3ZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2xhc3NOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzTWFkZUluRWRpdGFibGVJbnB1dEJveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXN0ZSk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlc01hZGVJbkVkaXRhYmxlSW5wdXRCb3goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZUlucHV0VmFsdWVDaGFuZ2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWQtYm9yZGVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oYXNFcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNob3dJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvblRvb2x0aXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LXRvdGFsLXJvdy10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbkNsYXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG93U3ZnSWNvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFubmEtY29yZS1hbm5hLWVzdC1pY29uLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdmdJY29uTmFtZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gPT0gJ2FubmEtaWNvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tIGF1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiZ3QtdG90YWwtcm93LXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uVG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hbm5hLWNvcmUtYW5uYS1lc3QtaWNvbi10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSFRNTCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NJTkdMRV9SQURJTydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLXJhZGlvYm94LW1hcmtlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiKG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFST1dfREFUQVtjb2x1bW5EZWYuaGVhZGVySW5mb1tzdWJMaW5lSW5kZXhdLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZGkgbWRpLXJhZGlvYm94LWJsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZS1jaGVja2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBW2NvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0uaXNEaXNhYmxlZEtleV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9yVW5zZWxlY3RDaGVja2JveChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkRlZi5oZWFkZXJJbmZvW3N1YkxpbmVJbmRleF0ub2JqZWN0S2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidSQURJTydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJST1dfREFUQVtzdWJsaW5lLm9iamVjdEtleV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlJPV19EQVRBWydSYWRpb0J1dHRvbkNvbmZpZyddWzBdLmlzRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByYWRpb0J1dHRvbiBvZiBST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInt7IHJhZGlvQnV0dG9uLnZhbHVlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyByYWRpb0J1dHRvbi5jbGFzcyB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvQnV0dG9uQ2xpY2tlZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWRpb0J1dHRvbi52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQVsnUmFkaW9CdXR0b25Db25maWcnXVswXS5pc0Rpc2FibGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyByYWRpb0J1dHRvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiB7eyByYWRpb0J1dHRvbi5pY29uQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmFkaW9CdXR0b25JY29uQ2xpY2tlZChST1dfREFUQSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyICpuZ0lmPVwiIWxhc3RcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU1RSSU5HX1dJVEhfVE9PTFRJUCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiBvZiBST1dfREFUQVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5hY3Rpb25LZXlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgYWN0aW9uPy5kYXRhVG9EaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbj8uc2hvd1Rvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInRleHRBY3Rpb25Ub29sdGlwVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUVudGVyT25TdHJpbmdUZXh0QWN0aW9uVHlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS50b29sdGlwS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiYWN0aW9uPy50b29sdGlwUG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24/LnRvb2x0aXBJY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImd0LWljb24tY29sdW1uLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cImFjdGlvbj8uZGlzYWJsZVRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGFjdGlvbj8uZGF0YVRvRGlzcGxheUFmdGVyVG9vbHRpcCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1YmxpbmUub2JqZWN0S2V5ICE9ICdkZXNjcmlwdGlvbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbY29sdW1uRGVmLmhlYWRlckluZm9bc3ViTGluZUluZGV4XS5vYmplY3RLZXldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibGluZS5vYmplY3RLZXkgPT0gJ2ludmVudG9yeUNvZGUnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBWydpc1NlbGxlckdyb3VwJ10gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RHZW5lcmFsQ29uZmlnLmNvbXBvbmVudCA9PSAnUkFUSU5HJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaSBtZGktaW5mby1vdXRsaW5lIHNlbGxlci10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJzZWxsZXJIaWVyYXJjaHlUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZGRlbik9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2luZm89XCJuZ2JUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJoaWVyYXJjaHktdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZFRoZVZhbHVlVG9TZWxsZXJHcm91cFRvb2x0aXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5zZWxsZXJHcm91cEhpZXJhcmNoeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZEF2ZXJhZ2VSYXRpbmcnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0R2VuZXJhbENvbmZpZy5jb21wb25lbnQgPT0gJ1JBVElORycgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEFbJ3Nob3dSYXRpbmdBdmVyYWdlSWNvbiddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pIG1kaS1pbmZvLW91dGxpbmUgc2VsbGVyLXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbSBhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0RpZmZlcmVuY2UoUk9XX0RBVEEuaXNEaWZmZXJlbmNlTGVzc1RoYW4yNVBlcmNlbnQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJwb3N0ZWQtYXZnLXRvb2x0aXAgcmVtb3ZlLW9uLXNjcm9sbC1jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicG9zdGVkUmF0aW5nRGlmZmVyZW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJsaW5lLm9iamVjdEtleSA9PSAnZGlzcGxheUJvb2tlZEF2ZXJhZ2VJbXByZXNzaW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndEdlbmVyYWxDb25maWcuY29tcG9uZW50ID09ICdSQVRJTkcnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBWydzaG93SW1wcmVzc2lvbkF2ZXJhZ2VJY29uJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWkgbWRpLWluZm8tb3V0bGluZSBzZWxsZXItdG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIGF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRGlmZmVyZW5jZShST1dfREFUQS5pc0RpZmZlcmVuY2VMZXNzVGhhbjI1UGVyY2VudClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cInBvc3RlZC1hdmctdG9vbHRpcCByZW1vdmUtb24tc2Nyb2xsLWNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwb3N0ZWRJbXBEaWZmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJsaW5lLm9iamVjdEtleSA9PSAnZGVzY3JpcHRpb24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uTWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiUk9XX0RBVEEuZGVzY3JpcHRpb25NZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFJPV19EQVRBLmRlc2NyaXB0aW9uTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtICE9ICctJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9XX0RBVEEuZGVzY3JpcHRpb25FbWFpbFJlZmVyZW5jZU51bSAhPSAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1haWwgUmVmOiB7eyBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsUmVmZXJlbmNlTnVtIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgUk9XX0RBVEEuZGVzY3JpcHRpb25EZXRhaWxzVXJsIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uRGV0YWlsc1VybFR5cGUgPT09ICdQREYnIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19EQVRBLmRlc2NyaXB0aW9uRGV0YWlsc1VybFR5cGUgPT09ICdFWENFTCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gdmlld0RldGFpbHNBbmRFbWFpbEJ0blwiPkRvd25sb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQS5hY3Rpdml0eW5hbWUudG9Mb3dlckNhc2UoKSA9PSAnb3JkZXIgb25ib2FyZGVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJST1dfREFUQS5kZXNjcmlwdGlvbkRldGFpbHNVcmxUeXBlID09PSAnTElOSydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0RldGFpbHNDbGlja2VkKFJPV19EQVRBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHZpZXdEZXRhaWxzQW5kRW1haWxCdG4gb3JkZXItb25ib2FyZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IGRldGFpbHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgUk9XX0RBVEEuZGVzY3JpcHRpb25FbWFpbFVybCB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsVXJsICE9ICctJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBST1dfREFUQS5kZXNjcmlwdGlvbkVtYWlsVXJsICE9ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHZpZXdEZXRhaWxzQW5kRW1haWxCdG5cIj5WaWV3IGVtYWlsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbnVsbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFubmEtY29yZS1uby1kYXRhLWxpYlxyXG4gICAgICAgIFt3aWR0aF09XCJub0RhdGFXaWR0aFwiXHJcbiAgICAgICAgW21hcmdpblRvcF09XCJtYXJnaW5Ub3BcIlxyXG4gICAgICAgICpuZ0lmPVwiaXNOb0RhdGFUb0Rpc3BsYXlTdWJqZWN0JCB8IGFzeW5jXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLW5vLWRhdGEtbGliPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQ2hlY2tib3ggdGVtcGxhdGUgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVG9vbHRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tY2hlY2tib3gtZmlsdGVyXHJcbiAgICAgICAgW3RhYmxlRGF0YV09XCJ0YWJsZURhdGFcIlxyXG4gICAgICAgIFtzaG93RmlsdGVySGVhZGVyVGFic109XCJzaG93RmlsdGVyVG9vbHRpcFRhYnNcIlxyXG4gICAgICAgIFtpc0x1ckFuZENzckNvbXBvbmVudF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Nsb25lZFRhYmxlRGF0YV09XCJjbG9uZWRUYWJsZURhdGFcIlxyXG4gICAgICAgIFtmaWx0ZXJUYWJPYmplY3RzXT1cImZpbHRlclRhYk9iamVjdHNcIlxyXG4gICAgICAgIChmaWx0ZXJBcHBsaWVkVG9UYWJsZSk9XCJmaWx0ZXJBcHBsaWVkKCRldmVudClcIlxyXG4gICAgICAgIChzb3J0aW5nQXBwbGllZFRvVGFibGUpPVwic29ydGluZ0FwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlVG9vbHRpcCk9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICA+XHJcbiAgICA8L2FubmEtY29yZS1hbm5hLWNvbHVtbi1jaGVja2JveC1maWx0ZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIFNsaWRlciB0ZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNzbGlkZXJUb29sVGlwPlxyXG4gICAgPGFubmEtY29yZS1hbm5hLWNvbHVtbi1zbGlkZXItZmlsdGVyXHJcbiAgICAgICAgW3RhYmxlRGF0YV09XCJ0YWJsZURhdGFcIlxyXG4gICAgICAgIFtzaG93RmlsdGVySGVhZGVyVGFic109XCJzaG93RmlsdGVyVG9vbHRpcFRhYnNcIlxyXG4gICAgICAgIFtpc0x1ckFuZENzckNvbXBvbmVudF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Nsb25lZFRhYmxlRGF0YV09XCJjbG9uZWRUYWJsZURhdGFcIlxyXG4gICAgICAgIFtmaWx0ZXJUYWJPYmplY3RzXT1cImZpbHRlclRhYk9iamVjdHNcIlxyXG4gICAgICAgIChmaWx0ZXJBcHBsaWVkVG9UYWJsZSk9XCJmaWx0ZXJBcHBsaWVkKCRldmVudClcIlxyXG4gICAgICAgIChzb3J0aW5nQXBwbGllZFRvVGFibGUpPVwic29ydGluZ0FwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlVG9vbHRpcCk9XCJjbG9zZVRvb2x0aXAoKVwiXHJcbiAgICA+XHJcbiAgICA8L2FubmEtY29yZS1hbm5hLWNvbHVtbi1zbGlkZXItZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBEYXRlIFBpY2tlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNkYXRlUGlja2VyVG9vbHRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tZGF0ZS1yYW5nZS1maWx0ZXJcclxuICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW3Nob3dGaWx0ZXJIZWFkZXJUYWJzXT1cInNob3dGaWx0ZXJUb29sdGlwVGFic1wiXHJcbiAgICAgICAgW2lzTHVyQW5kQ3NyQ29tcG9uZW50XT1cImZhbHNlXCJcclxuICAgICAgICBbY2xvbmVkVGFibGVEYXRhXT1cImNsb25lZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2ZpbHRlclRhYk9iamVjdHNdPVwiZmlsdGVyVGFiT2JqZWN0c1wiXHJcbiAgICAgICAgKGZpbHRlckFwcGxpZWRUb1RhYmxlKT1cImZpbHRlckFwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRpbmdBcHBsaWVkVG9UYWJsZSk9XCJzb3J0aW5nQXBwbGllZCgkZXZlbnQpXCJcclxuICAgICAgICAoY2xvc2VUb29sdGlwKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLWFubmEtY29sdW1uLWRhdGUtcmFuZ2UtZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBXZWVrIFBpY2tlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICN3ZWVrUGlja2VyVG9vbFRpcD5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIndlZWtwaWNrZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGFubmEtY29yZS13ZWVrLWNhbGVuZGFyLWZpbHRlci1saWJcclxuICAgICAgICAgICAgW3dlZWstY2FsZW5kYXItY29uZmlnXT1cImd0R2VuZXJhbENvbmZpZy5tdWx0aVdlZWtQaWNrZXJDb25maWdcIlxyXG4gICAgICAgICAgICAoYXBwbHkpPVwiYXBwbHlXZWVrRmlsdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICBbZnJvbS1kYXRlXT1cImNhbGVuZGFyTWluRW5hYmxlZERhdGVcIlxyXG4gICAgICAgICAgICBbdG8tZGF0ZV09XCJjYWxlbmRhck1heEVuYWJsZWREYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hbm5hLWNvcmUtd2Vlay1jYWxlbmRhci1maWx0ZXItbGliPlxyXG4gICAgPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBUaW1lIEZpbHRlciBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICN0aW1lRmlsdGVyVG9vbFRpcD5cclxuICAgIDxhbm5hLWNvcmUtYW5uYS1jb2x1bW4tdGltZS1maWx0ZXJcclxuICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW3Nob3dGaWx0ZXJIZWFkZXJUYWJzXT1cInNob3dGaWx0ZXJUb29sdGlwVGFic1wiXHJcbiAgICAgICAgW2lzTHVyQW5kQ3NyQ29tcG9uZW50XT1cImZhbHNlXCJcclxuICAgICAgICBbc2hvd0FsbFRpbWVSYW5nZUNoZWNrYm94ZXNdPVwic2hvd0NoZWNrYm94ZXNGb3JUaW1lRmlsdGVyXCJcclxuICAgICAgICBbY2xvbmVkVGFibGVEYXRhXT1cImNsb25lZFRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2ZpbHRlclRhYk9iamVjdHNdPVwiZmlsdGVyVGFiT2JqZWN0c1wiXHJcbiAgICAgICAgKGZpbHRlckFwcGxpZWRUb1RhYmxlKT1cImZpbHRlckFwcGxpZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRpbmdBcHBsaWVkVG9UYWJsZSk9XCJzb3J0aW5nQXBwbGllZCgkZXZlbnQpXCJcclxuICAgICAgICAoY2xvc2VUb29sdGlwKT1cImNsb3NlVG9vbHRpcCgpXCJcclxuICAgID5cclxuICAgIDwvYW5uYS1jb3JlLWFubmEtY29sdW1uLXRpbWUtZmlsdGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5JbmZvVG9vbHRpcD5cclxuICAgIDxwIHN0eWxlPVwiY29sb3I6IGJsYWNrOyB3aGl0ZS1zcGFjZTogbm93cmFwXCI+VGhpcyBwcmVlbXB0aW9uIGlzIHJlamVjdGVkIGFuZCBub3QgbWFya2VkIGZvciBjcmVkaXQuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyYXRpbmdJbmZvVG9vbHRpcD5cclxuICAgIDxwIGNsYXNzPVwiZmlyc3Qtcm93XCI+U2hvd3MgJ0Jvb2tlZCBSYXRpbmcnIGZvciBQcmVlbXB0aW9ucyAmIE1ha2VHb29kIE9mZmVyZWQgc3BvdChzKS48L3A+XHJcbiAgICA8cCBjbGFzcz1cInNlY29uZC1yb3dcIj5TaG93cyAnUHJvamVjdGVkIFJhdGluZycgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbXBzSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlNob3dzICdCb29rZWQgSU1QUycgZm9yIFByZWVtcHRpb25zICYgTWFrZUdvb2QgT2ZmZXJlZCBzcG90KHMpLjwvcD5cclxuICAgIDxwIGNsYXNzPVwic2Vjb25kLXJvd1wiPlNob3dzICdQcm9qZWN0ZWQgSU1QUycgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzcG90c0NvbHVtbkVxdWl2YWxpemF0aW9uTWVzc2FnZVRvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cInNwb3QtY29sdW1uLXRvb2x0aXAtbWVzc2FnZVwiPlxyXG4gICAgICAgIFRoaXMgY29uc2lzdHMgb2YgZXF1aXZhbGl6ZWQgc3BvdHMgYW5kIHVuLWVxdWl2YWxpemVkIFBhaWQgUHJvZ3JhbXMgJiB1bi1lcXVpdmFsaXplZCBOb24tc3BvdHMuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3VuZGVyRGVsaXZlcnlUb29sdGlwPlxyXG4gICAgPHAgY2xhc3M9XCJzcG90LWNvbHVtbi10b29sdGlwLW1lc3NhZ2VcIj5cclxuICAgICAgICBJbmRpY2F0ZXMgdGhlIFVuZGVyLWRlbGl2ZXJ5IHBlcmNlbnRhZ2UgYmFzZWQgb24gYm9va2VkIGFuZCBwb3N0ZWQgUlRHL0lNUFMuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI292ZXJEZWxpdmVyeVRvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cInNwb3QtY29sdW1uLXRvb2x0aXAtbWVzc2FnZVwiPlxyXG4gICAgICAgIEluZGljYXRlcyB0aGUgT3Zlci1kZWxpdmVyeSBwZXJjZW50YWdlIGJhc2VkIG9uIGJvb2tlZCBhbmQgcG9zdGVkIFJURy9JTVBTLlxyXG4gICAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyYXRlSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlNob3dzICdCb29rZWQgUmF0ZScgZm9yIFByZWVtcHRpb25zICYgTWFrZUdvb2QgT2ZmZXJlZCBzcG90KHMpLjwvcD5cclxuICAgIDxwIGNsYXNzPVwic2Vjb25kLXJvd1wiPlNob3dzICdQcm9qZWN0ZWQgJCBWYWx1ZScgZm9yIEFEVSBPZmZlcmVkIHNwb3QocykuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWxsZXJIaWVyYXJjaHlUb29sdGlwPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGxlckdyb3VwSGllcmFyY2h5Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhpZXJhcmNoeS10YWJsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwic2VsbGVyLWhpZXJhcmNoeS10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+SW52ZW50b3J5IENvZGVzPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlByb2dyYW0vRGVzY3JpcHRpb248L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzZWxsZXJHcm91cEhpZXJhcmNoeTsgbGV0IHRvb2x0aXBJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyB0b29sdGlwSW5kZXggKyAxIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXI+e3sgZGF0YS5JbnZlbnRvcnlDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzaG93RWxsaXBzaXNUZXh0T25Ib3Zlcj57eyBkYXRhLlByb2dyYW0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsbGVyR3JvdXBIaWVyYXJjaHkubGVuZ3RoID09IDBcIj5cclxuICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDAwXCI+U2VsbGVyIGdyb3VwIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgaW52ZW50b3J5IGNvZGU8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbHVyVmlvbGF0aW9uSW5mb1Rvb2x0aXA+XHJcbiAgICA8cCBjbGFzcz1cImZpcnN0LXJvd1wiPlRoZSB2YWx1ZXMgYXJlIGZvciB0aGUgZW50aXJlIHdlZWsuPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3N0ZWRSYXRpbmdEaWZmZXJlbmNlPlxyXG4gICAgPHAgY2xhc3M9XCJkaWZmZXJlbmNlLXRleHRcIj5cclxuICAgICAgICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHBvc3RlZCBhbmQgYm9va2VkIGF2ZXJhZ2UgcmF0aW5nIGlzXHJcbiAgICAgICAge3sgaXNEaWZmZXJlbmNlTGVzc1RoYW4yNVBlcmNlbnQgPyBcImxlc3NcIiA6IFwibW9yZVwiIH19IHRoYW4gMjUlLlxyXG4gICAgPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3N0ZWRJbXBEaWZmZXJlbmNlPlxyXG4gICAgPHAgY2xhc3M9XCJkaWZmZXJlbmNlLXRleHRcIj5cclxuICAgICAgICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHBvc3RlZCBhbmQgYm9va2VkIGF2ZXJhZ2UgaW1wcmVzc2lvbiBpc1xyXG4gICAgICAgIHt7IGlzRGlmZmVyZW5jZUxlc3NUaGFuMjVQZXJjZW50ID8gXCJsZXNzXCIgOiBcIm1vcmVcIiB9fSB0aGFuIDI1JS5cclxuICAgIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb25nb2luZ1JldkJvb2tlZENvbHVtblRvb2x0aXA+XHJcbiAgICA8cD5UaGUgQm9va2VkICQgdmFsdWUsIFNwb3RzLCBHUlAsIENQUCwgSU1QUywgQ1BNIGNvcnJlc3BvbmRzIG9uIHRoZSBsYXN0IHBlcm1hbmVudCByZXZpc2lvbiBnZW5lcmF0ZWQ8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbXBsZXRlZFJldkJvb2tlZENvbHVtblRvb2x0aXA+XHJcbiAgICA8cD5UaGUgQm9va2VkICQgdmFsdWUgY29ycmVzcG9uZHMgb24gdGhlIGxhc3QgcGVybWFuZW50IHJldmlzaW9uIGdlbmVyYXRlZDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXZnQm9va2VkUmF0ZT5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIFJhdGU8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2F2Z0Jvb2tlZFJ0Zz5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIFJURzwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXZnQm9va2VkSW1wcz5cclxuICAgIDxwPlRoaXMgaXMgdGhlIGJvb2tlZCBhdmVyYWdlIElNUCjigJkwMDApPC9wPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRJbXBzUnRnPlxyXG4gICAgPHA+XHJcbiAgICAgICAgQWxsIHByb2plY3Rpb25zIGFyZSBkZXJpdmVkIGZyb20gdGhlIHN1bSBvZiBhY3R1YWwgcG9zdGVkIGluZm9ybWF0aW9uIHVudGlsIHRoZSBsYXN0IHBvc3RlZCBkYXRlIGFuZCBlc3RpbWF0ZXNcclxuICAgICAgICBmb3IgdGhlIHJlbWFpbmluZyBzZWxlY3RlZCBwZXJpb2QuXHJcbiAgICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2F1dG9tYXRpb25Ub29sdGlwPlxyXG4gICAgPHA+XHJcbiAgICAgICAgUGxlYXNlIGdldCB0aGUgb3JkZXIgYnVzaW5lc3MgcnVsZXMgYXBwcm92ZWQgdG8gYWN0aXZhdGUgdGhlIG9yZGVyIGZvciBhdXRvbWF0aW9uLiBPbmx5IGZvciB0aGVcclxuICAgICAgICBhdXRvbWF0aW9uLWFjdGl2YXRlZCBvcmRlcnMsIGFueSBhcHByb3ZlZCBNR3MsIEFEVXMsIG9yIGNyZWRpdGVkIHNwb3RzIG9uIEFOTkEgd2lsbCBiZSBmZWQgaW50byB0aGUgdHJhZmZpY1xyXG4gICAgICAgIHN5c3RlbSBpLmUuIEFOTkEgcmV2aXNpb25zLlxyXG4gICAgICAgIDwhLS0gcmVtb3ZlZCBiZWxvdyBsaW5lIGFzIHBhcnQgb2YgZW5oYW5jbWVubnQgaW4gMTQuMCByZWxlYXMgLS0+XHJcbiAgICAgICAgPCEtLSBBZGRpdGlvbmFsbHksIEFOTkEgd2lsbCBvbmx5IGVudGVyIGJ1eWVyIHJldmlzaW9ucyBpbnRvIHRyYWZmaWMgZm9yIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgIE1lZGlhbGluZS9XT0Mgb3JkZXJzLiAtLT5cclxuICAgIDwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmViYXRlSW1wYWN0PlxyXG4gICAgPHA+UmViYXRlIGltcGFjdCB2YWx1ZSBpcyBmb3IgdGhlIG9yaWdpbmFsbHkgb3JkZXJlZCBzcG90IGxlbmd0aCBhbmQgaXMgbm90IGVxdWl2YWxpemVkLjwvcD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbHVyVmlvbGF0aW9uVG90YWxSb3dUb29sVGlwPlxyXG4gICAgPHVsPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgICAgPHN0cm9uZz5QT0xJVElDQUwgUkFURSBWSU9MQVRJT05TOjwvc3Ryb25nPlxyXG4gICAgICAgICAgICBWaW9sYXRpb25zIGZsYWdnZWQgd2hlbiBub24tcG9saXRpY2FsIHNwb3RzIGFyZSBib29rZWQgYXQgYSByYXRlIGxvd2VyIHRoYW4gdGhlIG1pbmltdW0gYm9va2VkIHJhdGUgZm9yXHJcbiAgICAgICAgICAgIHBvbGl0aWNhbCBjYW5kaWRhdGVzIGZvciB0aGUgc2FtZSB3ZWVrLCBJbnZlbnRvcnkgQ29kZSBhbmQgUmV2ZW51ZSBDbGFzcy5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgICAgPHN0cm9uZz5DQU5ESURBVEUgVE8gQ0FORElEQVRFIFZJT0xBVElPTjo8L3N0cm9uZz5cclxuICAgICAgICAgICAgVmlvbGF0aW9ucyBmbGFnZ2VkIHdoZW4gcG9saXRpY2FsIHNwb3RzIGFyZSBib29rZWQgYXQgZGlmZmVyZW50IHJhdGVzIHRvIG90aGVyIHBvbGl0aWNhbCBzcG90cyBmb3IgdGhlIHNhbWVcclxuICAgICAgICAgICAgd2VlaywgSW52ZW50b3J5IENvZGUgYW5kIFJldmVudWUgQ2xhc3MuXHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NpcmN1bGFyUHJvZ3Jlc3NCYXI+XHJcbiAgICA8Y2lyY2xlLXByb2dyZXNzXHJcbiAgICAgICAgW3BlcmNlbnRdPVwicGVyY2VudERvbmVcIlxyXG4gICAgICAgIFtyYWRpdXNdPVwiNVwiXHJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW3Nob3dVbml0c109XCJmYWxzZVwiXHJcbiAgICAgICAgW3Nob3dTdWJ0aXRsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW291dGVyU3Ryb2tlV2lkdGhdPVwiM1wiXHJcbiAgICAgICAgW2lubmVyU3Ryb2tlV2lkdGhdPVwiM1wiXHJcbiAgICAgICAgW3NwYWNlXT1cIi0zXCJcclxuICAgICAgICBbb3V0ZXJTdHJva2VDb2xvcl09XCInIzI2OGJmZidcIlxyXG4gICAgICAgIFtpbm5lclN0cm9rZUNvbG9yXT1cIicjZDVkNWQ1J1wiXHJcbiAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT1cIjEwXCJcclxuICAgID48L2NpcmNsZS1wcm9ncmVzcz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXNlckxvZ2dlZEluRGV0YWlscz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWRpdi1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRleHRBY3Rpb25Ub29sdGlwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YS5rZXkgIT0gJ3JlYWQnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmtleSB9fSA8Yj4ge3sgZGF0YS52YWx1ZSB9fTwvYj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGEua2V5ID09ICdyZWFkJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgZGF0YS52YWx1ZSB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbWFya0FzUmVhZFRpcD5cclxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tdG9vbHRpcC1kaXYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0ZXh0QWN0aW9uVG9vbHRpcFwiPlxyXG4gICAgICAgICAgICB7eyBkYXRhLnZhbHVlIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGV4dEFjdGlvblRvb2x0aXBUZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGV4dEFjdGlvblRvb2x0aXBcIj5cclxuICAgICAgICB7eyBkYXRhLmtleSB9fSA8Yj4ge3sgZGF0YS52YWx1ZSB9fTwvYj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b29sdGlwQ29udGFpbmluZ1RhYmxlVGVtcGxhdGU+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJ0b29sdGlwQ29udGFpbmluZ1RhYmxlXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cInRvb2x0aXBDb250YWluaW5nVGFibGUuaW5uZXJIdG1sXCJcclxuICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi10b29sdGlwLWRpdi1jb250YWluZXJcIlxyXG4gICAgPlxyXG4gICAgICAgIDwhLS0gPHVsPlxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGhlYWRlck1zZyBvZiB0b29sdGlwQ29udGFpbmluZ1RhYmxlLnRhYmxlSGVhZGVyTXNnXCI+XHJcbiAgICAgICAgPGI+IHt7aGVhZGVyTXNnfX0gIDwvYj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcblxyXG4gICAgPHRhYmxlIGNsYXNzPVwidG9vbHRpcC10YWJsZVwiPlxyXG4gICAgICA8dGhlYWQ+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdG9vbHRpcENvbnRhaW5pbmdUYWJsZS50b29sdGlwVGFibGVIZWFkZXJcIj5cclxuICAgICAgICAgICAge3sgaGVhZGVyfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90aGVhZD5cclxuICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93cyBvZiB0b29sdGlwQ29udGFpbmluZ1RhYmxlLnRvb2x0aXBUYWJsZUJvZHlcIj5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF0YSBvZiByb3dzXCI+XHJcbiAgICAgICAgICAgIHt7IGRhdGEgfX1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcblxyXG4gICAgPHVsPlxyXG4gICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tdG9wOjEwcHg7IHBhZGRpbmc6MFwiICpuZ0Zvcj1cImxldCBmb290ZXJNc2cgb2YgdG9vbHRpcENvbnRhaW5pbmdUYWJsZS50YWJsZUZvb3Rlck1zZ1wiPlxyXG4gICAgICAgIHt7IGZvb3Rlck1zZyB9fSBcclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+IC0tPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gPG5nLXRlbXBsYXRlICN0ZXh0QWN0aW9uVG9vbHRpcFRlbXBsYXRlPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRleHRBY3Rpb25Ub29sdGlwXCI+XHJcbiAgICAgIHt7IGRhdGEua2V5IH19IDxiPiB7e2RhdGEudmFsdWV9fTwvYj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG4iXX0=
|