ngx-render-material-forms 2.3.7 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +7 -6
- package/fesm2015/ngx-render-material-forms.js +6 -5
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +6 -5
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -204,7 +204,8 @@ export class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
204
204
|
else {
|
|
205
205
|
this.dataSource.data = instance.dataValue;
|
|
206
206
|
}
|
|
207
|
-
|
|
207
|
+
//this.checkSubmissionStatus &&
|
|
208
|
+
if (!this.hasValueAndEditMode) {
|
|
208
209
|
this.showDataGrid = false;
|
|
209
210
|
this.dataSource.data = [];
|
|
210
211
|
}
|
|
@@ -377,9 +378,9 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
377
378
|
</ng-container>
|
|
378
379
|
<mat-card-content>
|
|
379
380
|
|
|
380
|
-
|
|
381
|
+
<!-- Message when no products are found -->
|
|
381
382
|
<div class="no-data-message" *ngIf="!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)">
|
|
382
|
-
No products found. Please add some products.
|
|
383
|
+
{{ checkSubmissionStatus === false ? 'No products found. Please add at least one product to continue.' : 'No products found. Please add some products.' }}
|
|
383
384
|
</div>
|
|
384
385
|
<ng-container *ngIf="showDataGrid">
|
|
385
386
|
<mat-card-actions
|
|
@@ -537,9 +538,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
537
538
|
</ng-container>
|
|
538
539
|
<mat-card-content>
|
|
539
540
|
|
|
540
|
-
|
|
541
|
+
<!-- Message when no products are found -->
|
|
541
542
|
<div class="no-data-message" *ngIf="!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)">
|
|
542
|
-
No products found. Please add some products.
|
|
543
|
+
{{ checkSubmissionStatus === false ? 'No products found. Please add at least one product to continue.' : 'No products found. Please add some products.' }}
|
|
543
544
|
</div>
|
|
544
545
|
<ng-container *ngIf="showDataGrid">
|
|
545
546
|
<mat-card-actions
|
|
@@ -686,4 +687,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
686
687
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.CommonService }]; } });
|
|
687
688
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
688
689
|
export { DataGridComponent };
|
|
689
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFxS0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsTUFBTSxVQUFVLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzVJLE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoSSxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEksTUFBTSxhQUFhLEdBQUcsUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzlKLE1BQU0sWUFBWSxHQUFHLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4SixNQUFNLGFBQWEsR0FBRyxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENB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Ozs7Ozs7Ozs7Ozs7Ozs7R0E2SlQ7MkZBS1UseUJBQXlCO2tCQXBLckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2SlQ7O0FBMFhILGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCBEYXRhR3JpZENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL2RhdGFncmlkL0RhdGFHcmlkLmpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkT25Qcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1vbi1wcm9kdWN0cy9hZGQtb24tcHJvZHVjdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IHtcclxuICBwcm9kdWN0TmFtZTogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgcHJpY2U6IG51bWJlcjtcclxufVxyXG5jb25zdCBFTEVNRU5UX0RBVEE6IFByb2R1Y3RbXSA9IFtcclxuXTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWRhdGFncmlkJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxUZW1wbGF0ZV09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgID48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWNhcmQgZnhGaWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuXHJcbiAgICAgICAgICA8IS0tIE1lc3NhZ2Ugd2hlbiBubyBwcm9kdWN0cyBhcmUgZm91bmQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwiIXNob3dEYXRhR3JpZCB8fCAoZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID09PSAwICYmICFzaG93TmV3UHJvZHVjdFBpY2tlcilcIj5cclxuICAgIE5vIHByb2R1Y3RzIGZvdW5kLiBQbGVhc2UgYWRkIHNvbWUgcHJvZHVjdHMuXHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEYXRhR3JpZFwiPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiAoaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiA9PT0gJ2JvdGgnIHx8IGluc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyUG9zaXRpb24gPT09ICd0b3AnKVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRBbm90aGVyKClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG48ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiPlxyXG4gICAgICAgICAgPHRhYmxlXHJcbiAgICAgICAgICAgICAgICAgIG1hdC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCJcclxuICAgICAgICAgICAgICAgICAgZnhGaWxsXHJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFRhYmxlKCRldmVudClcIiAqbmdJZj1cIiFpc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkIHx8ICFlbXB0eUFycmF5OyBlbHNlIG5vRGF0YU1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgZ2V0Q29sdW1uTGFiZWwoY29sdW1uc1tjb2x1bW5dKSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIiBbYXR0ci5yb3dJbmRleF09XCJpXCIgW2F0dHIuY29tcG9uZW50XT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiX19yZW1vdmVSb3dcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc1JlbW92ZUJ1dHRvbnMoKVwiIChjbGljayk9XCJyZW1vdmVSb3coaSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIHJvd1wiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwb3NpdGlvblwiICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBOby48L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2RrRHJhZ0hhbmRsZT5yZW9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInJvd1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwhLS0gRGVmYXVsdCBNZXNzYWdlIC0tPlxyXG48bmctdGVtcGxhdGUgI25vRGF0YU1lc3NhZ2U+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwiaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZCAmJiBlbXB0eUFycmF5ICYmICFzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG4gICAgPHNwYW4+XHJcbiAgICAgIE5vIFByb2R1Y3QgZm91bmQgd2l0aCB0aGUgc2VsZWN0ZWQgQ3VzdG9tZXIgY291bnRyeS5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VOZXdcIiBjbGFzcz1cIm1hdC10YWJsZVwiICpuZ0lmPVwiZGF0YVNvdXJjZU5ldy5sZW5ndGggPiAwICYmIHNob3dOZXdQcm9kdWN0UGlja2VyOyBlbHNlIG5vRGF0YVwiID5cclxuICAgIDwhLS0gUHJvZHVjdCBOYW1lIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHJvZHVjdE5hbWVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3twcm9kdWN0VHdlZWt9fSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQudGV4dH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFF1YW50aXR5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicXVhbnRpdHlcIiAqbmdJZj1cInNob3dRdWFudGl0eVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7eyBxdWFudGl0eVR3ZWVrIH19IDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5xdWFudGl0eX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFByaWNlIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHJpY2VcIiAqbmdJZj1cInNob3dQcmljZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e3ByaWNlVHdlZWt9fSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQucHJpY2V9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgIDwhLS0gQ2F0ZWdvcnkgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjYXRlZ29yeVwiICpuZ0lmPVwic2hvd0NhdGVnb3J5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y2F0ZWdvcnlUd2Vla319IDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5jYXRlZ29yeX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBDYXRlZ29yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YkNhdGVnb3J5XCIgKm5nSWY9XCJzaG93U3ViY2F0ZWdvcnlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3tzdWJDYXRlZ29yeVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnN1YkNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNLVSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNrdU51bWJlclwiICpuZ0lmPVwic2hvd1NrdU51bWJlclwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e3NrdVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIEludmVudG9yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImludmVudG9yeVwiICpuZ0lmPVwic2hvd0ludmVudG9yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e2ludmVudG9yeVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFlvdXIgVGFyZ2V0IENvc3QgLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvc3RcIiAqbmdJZj1cInNob3dDb3N0XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y29zdFR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMCB8fCBlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMn19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNOZXdcIj48L3RyPlxyXG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNOZXc7XCI+PC90cj5cclxuICA8L3RhYmxlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxyXG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhLW1lc3NhZ2VcIiAqbmdJZj1cInNob3dOZXdQcm9kdWN0UGlja2VyXCI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TmV3UHJvZHVjdFBpY2tlciAmJiAhaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZFwiPlxyXG4gICAgICBObyBwcm9kdWN0cyBmb3VuZC4gUGxlYXNlIGFkZCBzb21lIHByb2R1Y3RzLlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dOZXdQcm9kdWN0UGlja2VyICYmIGlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWRcIj5cclxuICAgICAgTm8gcHJvZHVjdHMgZm91bmQuIFBsZWFzZSBhZGQgc29tZSBwcm9kdWN0cy5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uICE9PSAndG9wJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcyA9IFwicGlja2VyMm5ldy1idG5cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCIgKm5nSWY9XCIhKGlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWQgJiYgZW1wdHlBcnJheSAmJiAhc2hvd05ld1Byb2R1Y3RQaWNrZXIpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAnLmRhdGFncmlkLXJvdyB7IGhlaWdodDogYXV0bzsgfSAubWF0LXRhYmxleyB3aWR0aDogMTAwJSB9IC5tYXQtaGVhZGVyLWNlbGwsIC5tYXQtY2VsbHsgcGFkZGluZzogOHB4IH0gLm5vLWRhdGEtbWVzc2FnZSB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzoyMHB4OyBtYXJnaW46IDAgMjBweCAwOyBmb250LXNpemU6IDE4cHg7Y29sb3I6ICM4ODg7IGhlaWdodDogMTAwJTt9IDo6bmctZGVlcCAucGlja2VyMm5ldy1idG4uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6IDB9J1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsZW1lbnQsIHJlZik7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgLy8gQWRkIGN1c3RvbSBjbGFzc2VzIHRvIGVsZW1lbnRzLlxyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY3VzdG9tQ2xhc3MpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICBmb3JtQ29sdW1uczogc3RyaW5nW107XHJcbiAgY29sdW1uczogYW55O1xyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XHJcbiAgZGF0YVNvdXJjZU5ldyA9IEVMRU1FTlRfREFUQTtcclxuICBkaXNwbGF5ZWRDb2x1bW5zTmV3OiBzdHJpbmdbXSA9IFsncHJvZHVjdE5hbWUnLCAnY2F0ZWdvcnknLCAnc3ViQ2F0ZWdvcnknLCAncXVhbnRpdHknLCAncHJpY2UnLCAnc2t1TnVtYmVyJywgJ2ludmVudG9yeScsICdjb3N0J107XHJcbiAgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U3ViY2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UHJpY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dRdWFudGl0eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dJbnZlbnRvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBoYXNJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoZWNrU3VibWlzc2lvblN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEYXRhR3JpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgaGFzVmFsdWVBbmRFZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nUXVhbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nUHJpY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nQ2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nU2t1TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0ludmVudG9yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDFMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MMkxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkwzTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZGVhbElkOiBhbnk7XHJcbiAgaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtcHR5QXJyYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1ByaWNlRGlzYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpY2VUd2Vlazogc3RyaW5nID0gJ1ByaWNlJztcclxuICBza3VUd2Vlazogc3RyaW5nID0gJ1NLVSBOdW1iZXInO1xyXG4gIGNvc3RUd2Vlazogc3RyaW5nID0gJ1lvdXIgVGFyZ2V0IENvc3QnO1xyXG4gIHNob3dDb3N0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0Nvc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxdWFudGl0eVR3ZWVrOiBzdHJpbmcgPSAnUXVhbnRpdHknO1xyXG4gIHByb2R1Y3RUd2Vlazogc3RyaW5nID0gJ1Byb2R1Y3QgTmFtZSc7XHJcbiAgY2F0ZWdvcnlUd2Vlazogc3RyaW5nID0gJ0NhdGVnb3J5IE5hbWUnO1xyXG4gIHN1YkNhdGVnb3J5VHdlZWs6IHN0cmluZyA9ICdTdWIgQ2F0ZWdvcnknO1xyXG4gIGludmVudG9yeVR3ZWVrOiBzdHJpbmcgPSAnSW52ZW50b3J5JztcclxuICBnZXRDb2x1bW5MYWJlbChjb2x1bW4pIHtcclxuICAgIHJldHVybiBjb2x1bW4ubGFiZWwgfHwgY29sdW1uLmtleTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0TGFiZWxOYW1lKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBhdHRyaWJ1dGVOYW1lKSB7XHJcbiAgICBpZiAobmV3UHJvZHVjdFBpY2tlckZsYWcgJiYgT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLnNvbWUoa2V5ID0+XHJcbiAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgIC8vIEZpbmQgdGhlIGtleSB0aGF0IG1hdGNoZXMgYXR0cmlidXRlTmFtZSBjYXNlLWluc2Vuc2l0aXZlbHlcclxuICAgICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuZmluZChrZXkgPT5cclxuICAgICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoaW5nIGtleVxyXG4gICAgICByZXR1cm4gbmV3UHJvZHVjdFBpY2tlckZsYWdbbWF0Y2hpbmdLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgLy8gfVxyXG5cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICBjb25zdCBjaGVja0F0dHJpYnV0ZSA9IGluc3RhbmNlPy5jb21wb25lbnQ/LmF0dHJpYnV0ZXM7XHJcbiAgICB0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcIm5ld3Byb2R1Y3RwaWNrZXJcIik7XHJcbiAgICB0aGlzLnNob3dDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93Q2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dTdWJjYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93U3ViY2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dQcmljZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dRdWFudGl0eSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dTa3VOdW1iZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd1NrdU51bWJlclwiKTtcclxuICAgIHRoaXMuc2hvd0ludmVudG9yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93SW52ZW50b3J5XCIpXHJcbiAgICB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nUXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dQcmljZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nUHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nQ2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dTa3VOdW1iZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1NrdU51bWJlclwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ0ludmVudG9yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nSW52ZW50b3J5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1N1YkNhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5pc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcImZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5XCIpO1xyXG4gICAgdGhpcy5pc1ByaWNlRGlzYWJsZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJpc1ByaWNlRGlzYWJsZVwiKTtcclxuICAgIHRoaXMuc2hvd0Nvc3QgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0Nvc3RcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dDb3N0ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dDb3N0XCIpO1xyXG4gICAgY29uc3QgbDEgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwxXCIpO1xyXG4gICAgY29uc3QgbDIgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwyXCIpO1xyXG4gICAgY29uc3QgbDMgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwzXCIpO1xyXG4gICAgY29uc3QgbDQgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkw0XCIpO1xyXG4gICAgY29uc3QgcHJpY2UgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJwcmljZUxhYmVsXCIpO1xyXG4gICAgY29uc3Qgc2t1ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwic2t1TGFiZWxcIik7XHJcbiAgICBjb25zdCBjb3N0ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiY29zdExhYmVsXCIpO1xyXG4gICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJxdWFudGl0eUxhYmVsXCIpO1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcInByb2R1Y3RMYWJlbFwiKTtcclxuICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiY2F0ZWdvcnlMYWJlbFwiKTtcclxuICAgIGNvbnN0IHN1YkNhdGVnb3J5ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwic3ViQ2F0ZWdvcnlMYWJlbFwiKTtcclxuICAgIGNvbnN0IGludmVudG9yeSA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImludmVudG9yeUxhYmVsXCIpO1xyXG4gICAgdGhpcy5kcm9wZG93bkwxID0gbDEgIT09IG51bGwgJiYgbDEgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwxID09PSAnc3RyaW5nJyA/IGwxLnRyaW0oKSAhPT0gXCJcIiA6IGwxICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MMiA9IGwyICE9PSBudWxsICYmIGwyICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMiA9PT0gJ3N0cmluZycgPyBsMi50cmltKCkgIT09IFwiXCIgOiBsMiAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDMgPSBsMyAhPT0gbnVsbCAmJiBsMyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDMgPT09ICdzdHJpbmcnID8gbDMudHJpbSgpICE9PSBcIlwiIDogbDMgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkw0ID0gbDQgIT09IG51bGwgJiYgbDQgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGw0ID09PSAnc3RyaW5nJyA/IGw0LnRyaW0oKSAhPT0gXCJcIiA6IGw0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHByaWNlVHdlZWsgPSBwcmljZSAhPT0gbnVsbCAmJiBwcmljZSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgcHJpY2UgPT09ICdzdHJpbmcnID8gcHJpY2UudHJpbSgpICE9PSBcIlwiIDogcHJpY2UgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3Qgc2t1VHdlZWsgPSBza3UgIT09IG51bGwgJiYgc2t1ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBza3UgPT09ICdzdHJpbmcnID8gc2t1LnRyaW0oKSAhPT0gXCJcIiA6IHNrdSAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBjb3N0VHdlZWsgPSBjb3N0ICE9PSBudWxsICYmIGNvc3QgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGNvc3QgPT09ICdzdHJpbmcnID8gY29zdC50cmltKCkgIT09IFwiXCIgOiBjb3N0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHF1YW50aXR5VHdlZWsgPSBxdWFudGl0eSAhPT0gbnVsbCAmJiBxdWFudGl0eSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgcXVhbnRpdHkgPT09ICdzdHJpbmcnID8gcXVhbnRpdHkudHJpbSgpICE9PSBcIlwiIDogcXVhbnRpdHkgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgcHJvZHVjdFR3ZWVrID0gcHJvZHVjdCAhPT0gbnVsbCAmJiBwcm9kdWN0ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBwcm9kdWN0ID09PSAnc3RyaW5nJyA/IHByb2R1Y3QudHJpbSgpICE9PSBcIlwiIDogcHJvZHVjdCAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBjYXRlZ29yeVR3ZWVrID0gY2F0ZWdvcnkgIT09IG51bGwgJiYgY2F0ZWdvcnkgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGNhdGVnb3J5ID09PSAnc3RyaW5nJyA/IGNhdGVnb3J5LnRyaW0oKSAhPT0gXCJcIiA6IGNhdGVnb3J5ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHN1YkNhdGVnb3J5VHdlZWsgPSBzdWJDYXRlZ29yeSAhPT0gbnVsbCAmJiBzdWJDYXRlZ29yeSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygc3ViQ2F0ZWdvcnkgPT09ICdzdHJpbmcnID8gc3ViQ2F0ZWdvcnkudHJpbSgpICE9PSBcIlwiIDogc3ViQ2F0ZWdvcnkgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgaW52ZW50b3J5VHdlZWsgPSBpbnZlbnRvcnkgIT09IG51bGwgJiYgaW52ZW50b3J5ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBpbnZlbnRvcnkgPT09ICdzdHJpbmcnID8gaW52ZW50b3J5LnRyaW0oKSAhPT0gXCJcIiA6IGludmVudG9yeSAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwxKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMUxhYmVsID0gbDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwyKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMkxhYmVsID0gbDI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwzKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MM0xhYmVsID0gbDM7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkw0KSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MNExhYmVsID0gbDQ7XHJcbiAgICB9XHJcbiAgICBpZiAocHJpY2VUd2Vlaykge1xyXG4gICAgICB0aGlzLnByaWNlVHdlZWsgPSBwcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2t1VHdlZWspIHtcclxuICAgICAgdGhpcy5za3VUd2VlayA9IHNrdTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29zdFR3ZWVrKSB7XHJcbiAgICAgIHRoaXMuY29zdFR3ZWVrID0gY29zdDtcclxuICAgIH1cclxuICAgIGlmIChxdWFudGl0eVR3ZWVrKSB7XHJcbiAgICAgIHRoaXMucXVhbnRpdHlUd2VlayA9IHF1YW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm9kdWN0VHdlZWspIHtcclxuICAgICAgdGhpcy5wcm9kdWN0VHdlZWsgPSBwcm9kdWN0O1xyXG4gICAgfVxyXG4gICAgaWYgKGNhdGVnb3J5VHdlZWspIHtcclxuICAgICAgdGhpcy5jYXRlZ29yeVR3ZWVrID0gY2F0ZWdvcnk7XHJcbiAgICB9XHJcbiAgICBpZiAoc3ViQ2F0ZWdvcnlUd2Vlaykge1xyXG4gICAgICB0aGlzLnN1YkNhdGVnb3J5VHdlZWsgPSBzdWJDYXRlZ29yeTtcclxuICAgIH1cclxuICAgIGlmIChpbnZlbnRvcnlUd2Vlaykge1xyXG4gICAgICB0aGlzLmludmVudG9yeVR3ZWVrID0gaW52ZW50b3J5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsICdpc1Byb2R1Y3RPcHRpb25hbCcpO1xyXG4gICAgdGhpcy5oYXNWYWx1ZUFuZEVkaXRNb2RlID0gKGNoZWNrQXR0cmlidXRlPy5oYXNWYWx1ZSA9PT0gJ3llcycpICYmIChjaGVja0F0dHJpYnV0ZT8uZWRpdE1vZGUgPT09ICd0cnVlJyk7XHJcbiAgICBjb25zdCByZXRyaWV2ZWRPYmplY3QgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdG9yYWdlT2JqZWN0JykpO1xyXG4gICAgdGhpcy5lbXB0eUFycmF5ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlPy5sZW5ndGggPCAxID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgIXRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLnNob3dDYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdjYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93UXVhbnRpdHkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncXVhbnRpdHknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1ByaWNlKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3ByaWNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dTdWJjYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdzdWJDYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U2t1TnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3NrdU51bWJlcicpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93SW52ZW50b3J5KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2ludmVudG9yeScpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dDb3N0KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2Nvc3QnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRlYWxJZCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRlYWxJZFwiKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjdXJyZW50RGVhbElkXCIsIHRoaXMuZGVhbElkKTtcclxuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBzaG93R3JpZFBpY2tlclByb2R1Y3RzLSR7dGhpcy5kZWFsSWR9YCkgfHwgJyc7XHJcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKHN0b3JlZERhdGEgfHwgJ251bGwnKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSA/IHBhcnNlZERhdGEgOiBbXTtcclxuXHJcbiAgICAgIC8vIFNldCBmbGFnIHRvIHRydWUgdG8gcHJldmVudCBmdXJ0aGVyIGV4ZWN1dGlvblxyXG4gICAgICB0aGlzLmhhc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzICYmICF0aGlzLmhhc1ZhbHVlQW5kRWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGluc3RhbmNlLmRhdGFWYWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1ucyA9IHt9O1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW107XHJcbiAgICB0aGlzLmZvcm1Db2x1bW5zID0gW107XHJcbiAgICBpbnN0YW5jZS5nZXRDb2x1bW5zKCkubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgdGhpcy5mb3JtQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChjb2x1bW4ua2V5KTtcclxuICAgICAgdGhpcy5jb2x1bW5zW2NvbHVtbi5rZXldID0gY29sdW1uO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnX19yZW1vdmVSb3cnKTtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5yZW9yZGVyKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdwb3NpdGlvbicpO1xyXG4gICAgfVxyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgbGV0IHZpZXdDb250YWluZXI7XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kaXNhYmxlZCkge1xyXG4gICAgICAgIGNvbXBvbmVudC5jb21wb25lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGQgPSBjb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgY29tcG9uZW50LnJvd0luZGV4ID09PSBwYXJzZUludCh0ZC5nZXRBdHRyaWJ1dGUoJ3Jvd0luZGV4JyksIDEwKSAmJlxyXG4gICAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5rZXkgPT09IHRkLmdldEF0dHJpYnV0ZSgnY29tcG9uZW50JylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHZpZXdDb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB2aWV3Q29udGFpbmVyID8gdmlld0NvbnRhaW5lciA6IG51bGw7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmVsZW1lbnQgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICAvLyBBZGQgY3VzdG9tIGNsYXNzZXMgdG8gZWxlbWVudHMuXHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jdXN0b21DbGFzcykge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY3VzdG9tQ2xhc3MpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb2x1bW4oY29sdW1uTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcgPSB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4gIT09IGNvbHVtbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlck9sZCgpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tSb3dzTnVtYmVyKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEucHVzaCh7fSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgfVxyXG5cclxuICBhZGRBbm90aGVyKCkge1xyXG4gICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnREZWFsSWQnLCB0aGlzLmRlYWxJZCk7XHJcbiAgICAgIGNvbnN0IGRpb2xvZ2VSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZE9uUHJvZHVjdHNDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnMTAwMHB4JyxcclxuICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHsgZHJvcGRvd25zRmxhZzogeyBzaG93RGlhbG9nSW52ZW50b3J5OiB0aGlzLnNob3dEaWFsb2dJbnZlbnRvcnksIHNob3dJbnZlbnRvcnk6IHRoaXMuc2hvd0ludmVudG9yeSwgaW52ZW50b3J5VHdlZWs6IHRoaXMuaW52ZW50b3J5VHdlZWssIHF1YW50aXR5VHdlZWs6IHRoaXMucXVhbnRpdHlUd2Vlaywgc3ViQ2F0ZWdvcnlUd2VlazogdGhpcy5zdWJDYXRlZ29yeVR3ZWVrLCBjYXRlZ29yeVR3ZWVrOiB0aGlzLmNhdGVnb3J5VHdlZWssIHByb2R1Y3RUd2VlazogdGhpcy5wcm9kdWN0VHdlZWssIGNvc3RUd2VlazogdGhpcy5jb3N0VHdlZWssIHNrdVR3ZWVrOiB0aGlzLnNrdVR3ZWVrLCBwcmljZVR3ZWVrOiB0aGlzLnByaWNlVHdlZWssIHNob3dEaWFsb2dDb3N0OiB0aGlzLnNob3dEaWFsb2dDb3N0LCBzaG93TmV3UHJvZHVjdFBpY2tlcjogdGhpcy5zaG93TmV3UHJvZHVjdFBpY2tlciwgc2hvd0RpYWxvZ1N1YkNhdGVnb3J5OiB0aGlzLnNob3dEaWFsb2dTdWJDYXRlZ29yeSwgc2hvd0RpYWxvZ1NrdU51bWJlcjogdGhpcy5zaG93RGlhbG9nU2t1TnVtYmVyLCBzaG93RGlhbG9nQ2F0ZWdvcnk6IHRoaXMuc2hvd0RpYWxvZ0NhdGVnb3J5LCBzaG93RGlhbG9nUHJpY2U6IHRoaXMuc2hvd0RpYWxvZ1ByaWNlLCBzaG93RGlhbG9nUXVhbnRpdHk6IHRoaXMuc2hvd0RpYWxvZ1F1YW50aXR5LCBkcm9wZG93bkwxOiB0aGlzLmRyb3Bkb3duTDEsIGRyb3Bkb3duTDI6IHRoaXMuZHJvcGRvd25MMiwgZHJvcGRvd25MMzogdGhpcy5kcm9wZG93bkwzLCBkcm9wZG93bkw0OiB0aGlzLmRyb3Bkb3duTDQsIGRyb3Bkb3duTDFMYWJlbDogdGhpcy5kcm9wZG93bkwxTGFiZWwsIGRyb3Bkb3duTDJMYWJlbDogdGhpcy5kcm9wZG93bkwyTGFiZWwsIGRyb3Bkb3duTDNMYWJlbDogdGhpcy5kcm9wZG93bkwzTGFiZWwsIGRyb3Bkb3duTDRMYWJlbDogdGhpcy5kcm9wZG93bkw0TGFiZWwsIGNoZWNrU3VibWlzc2lvblN0YXR1czogdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMsIHByaWNlRGlzYWJsZTogdGhpcy5pc1ByaWNlRGlzYWJsZSB9LCBzZWxlY3RlZFByb2R1Y3RzOiB0aGlzLmRhdGFTb3VyY2VOZXcgfVxyXG4gICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5kYXRhPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dDYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdjYXRlZ29yeScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93UXVhbnRpdHkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncXVhbnRpdHknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1ByaWNlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3ByaWNlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dTdWJjYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdzdWJDYXRlZ29yeScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93SW52ZW50b3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2ludmVudG9yeScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdHNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHMpKTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oYHNlbGVjdGVkUHJvZHVjdHMtJHt0aGlzLmRlYWxJZH1gLCBKU09OLnN0cmluZ2lmeSh0aGlzLmFkZFByaWNlUHJvcGVydHkoc2VsZWN0ZWRQcm9kdWN0c0NvcHkpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZU5ldyA9IHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cztcclxuICAgICAgICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kZWZhdWx0VmFsdWUgPSByZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrUm93c051bWJlcigpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoIDwgdGhpcy5pbnN0YW5jZS5yb3dzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2goe30pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZS5kYXRhXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhZGRQcmljZVByb3BlcnR5KHNlbGVjdGVkUHJvZHVjdHMpIHtcclxuICAgIHJldHVybiBzZWxlY3RlZFByb2R1Y3RzLm1hcChwcm9kdWN0cyA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4ucHJvZHVjdHMsXHJcbiAgICAgICAgcHJpY2VEaXNhYmxlOiB0aGlzLmlzUHJpY2VEaXNhYmxlID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGNoZWNrUm93c051bWJlcigpIHtcclxuICAgIHdoaWxlICh0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoIDwgdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVSb3coaW5kZXgpIHtcclxuICAgIGxldCBtZXNzYWdlID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0Pyc7XHJcbiAgICBsZXQgc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5kYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPT09IDEgJiYgIXRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzKSB7XHJcbiAgICAgIG1lc3NhZ2UgPSAnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcHJvZHVjdC4nO1xyXG4gICAgICBzaG93QnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAnOTAlJyxcclxuICAgICAgbWF4V2lkdGg6ICc0MDBweCcsXHJcbiAgICAgIGRhdGE6IHsgbWVzc2FnZTogbWVzc2FnZSwgYnV0dG9uU3RhdHVzOiBzaG93QnV0dG9uIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPT09IDEgJiYgdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFVzZXIgY29uZmlybWVkLCBwcm9jZWVkIHdpdGggZGVsZXRpb25cclxuICAgICAgICB0aGlzLmluc3RhbmNlLnJlbW92ZVJvdyhpbmRleCk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZHJvcFRhYmxlKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KSB7XHJcbiAgICBjb25zdCBwcmV2SW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kSW5kZXgoKGQpID0+IGQgPT09IGV2ZW50Lml0ZW0uZGF0YSk7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb250cm9sLnZhbHVlLCBwcmV2SW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLnJlbmRlckNvbXBvbmVudHMoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmdldFJvd3MoKTtcclxuICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlOiBbXSB8IG51bGwpIHtcclxuICAgIGNvbnN0IGdyaWRMZW5ndGggPSB2YWx1ZSA/IHZhbHVlLmxlbmd0aCA6IDA7XHJcbiAgICB3aGlsZSAodGhpcy5pbnN0YW5jZS5yb3dzLmxlbmd0aCA8IGdyaWRMZW5ndGgpIHtcclxuICAgICAgdGhpcy5hZGRBbm90aGVyKCk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGF0YVZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdmFsdWUgJiYgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY2xlYXJPbkhpZGUpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmluc3RhbmNlLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbkRhdGFHcmlkQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudDtcclxuZXhwb3J0IHsgRGF0YUdyaWRDb21wb25lbnQgfTsiXX0=
|
|
690
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFxS0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsTUFBTSxVQUFVLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzVJLE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoSSxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEksTUFBTSxhQUFhLEdBQUcsUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzlKLE1BQU0sWUFBWSxHQUFHLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4SixNQUFNLGFBQWEsR0FBRyxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUosTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLEtBQUssSUFBSSxJQUFJLFdBQVcsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEwsTUFBTSxjQUFjLEdBQUcsU0FBUyxLQUFLLElBQUksSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BLLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFFRCxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7U0FDN0I7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztTQUMvQjtRQUNELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztTQUNyQztRQUNELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsY0FBYyxFQUFFLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDekcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pFLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1QjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDaEM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTthQUMvQjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxRCxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFakUsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQzNDO1FBQ0QsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN4QztRQUNELFFBQVEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQyxJQUFJLGFBQWEsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDcEMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO2dCQUN0RCxJQUNFLFNBQVMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUN4RDtvQkFDQSxhQUFhLEdBQUcsU0FBUyxDQUFDO2lCQUMzQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9ELGtDQUFrQztZQUNsQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMvRTtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDMUQsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7YUFDempDLENBQUM7aUJBQ0MsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixJQUFJLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO29CQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTt3QkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDL0I7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQy9CO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUM1QjtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTt3QkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDbEM7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQ2hDO29CQUNELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztvQkFDOUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNySCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO29CQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztvQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO2lCQUM3RTtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEQ7SUFFSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsZ0JBQWdCO1FBQy9CLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU87Z0JBQ0wsR0FBRyxRQUFRO2dCQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7YUFDakQsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSztRQUNiLElBQUksT0FBTyxHQUFHLCtDQUErQyxDQUFDO1FBQzlELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDdEUsT0FBTyxHQUFHLHFDQUFxQyxDQUFDO1lBQ2hELFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM5RCxZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7b0JBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2lCQUMzQjtnQkFDRCx3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF1QjtRQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9FLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZ0I7UUFDdkIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN0RTtRQUNELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7c0hBcFhVLHlCQUF5QjswR0FBekIseUJBQXlCLGtGQWxLMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2SlQ7MkZBS1UseUJBQXlCO2tCQXBLckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2SlQ7O0FBMlhILGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCBEYXRhR3JpZENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL2RhdGFncmlkL0RhdGFHcmlkLmpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkT25Qcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1vbi1wcm9kdWN0cy9hZGQtb24tcHJvZHVjdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IHtcclxuICBwcm9kdWN0TmFtZTogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgcHJpY2U6IG51bWJlcjtcclxufVxyXG5jb25zdCBFTEVNRU5UX0RBVEE6IFByb2R1Y3RbXSA9IFtcclxuXTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWRhdGFncmlkJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxUZW1wbGF0ZV09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgID48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWNhcmQgZnhGaWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuXHJcbiAgPCEtLSBNZXNzYWdlIHdoZW4gbm8gcHJvZHVjdHMgYXJlIGZvdW5kIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhLW1lc3NhZ2VcIiAqbmdJZj1cIiFzaG93RGF0YUdyaWQgfHwgKGRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMCAmJiAhc2hvd05ld1Byb2R1Y3RQaWNrZXIpXCI+XHJcbiAgICB7eyBjaGVja1N1Ym1pc3Npb25TdGF0dXMgPT09IGZhbHNlID8gJ05vIHByb2R1Y3RzIGZvdW5kLiBQbGVhc2UgYWRkIGF0IGxlYXN0IG9uZSBwcm9kdWN0IHRvIGNvbnRpbnVlLicgOiAnTm8gcHJvZHVjdHMgZm91bmQuIFBsZWFzZSBhZGQgc29tZSBwcm9kdWN0cy4nIH19XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEYXRhR3JpZFwiPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiAoaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiA9PT0gJ2JvdGgnIHx8IGluc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyUG9zaXRpb24gPT09ICd0b3AnKVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRBbm90aGVyKClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG48ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiPlxyXG4gICAgICAgICAgPHRhYmxlXHJcbiAgICAgICAgICAgICAgICAgIG1hdC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCJcclxuICAgICAgICAgICAgICAgICAgZnhGaWxsXHJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFRhYmxlKCRldmVudClcIiAqbmdJZj1cIiFpc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkIHx8ICFlbXB0eUFycmF5OyBlbHNlIG5vRGF0YU1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgZ2V0Q29sdW1uTGFiZWwoY29sdW1uc1tjb2x1bW5dKSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIiBbYXR0ci5yb3dJbmRleF09XCJpXCIgW2F0dHIuY29tcG9uZW50XT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiX19yZW1vdmVSb3dcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc1JlbW92ZUJ1dHRvbnMoKVwiIChjbGljayk9XCJyZW1vdmVSb3coaSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIHJvd1wiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwb3NpdGlvblwiICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBOby48L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2RrRHJhZ0hhbmRsZT5yZW9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInJvd1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwhLS0gRGVmYXVsdCBNZXNzYWdlIC0tPlxyXG48bmctdGVtcGxhdGUgI25vRGF0YU1lc3NhZ2U+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwiaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZCAmJiBlbXB0eUFycmF5ICYmICFzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG4gICAgPHNwYW4+XHJcbiAgICAgIE5vIFByb2R1Y3QgZm91bmQgd2l0aCB0aGUgc2VsZWN0ZWQgQ3VzdG9tZXIgY291bnRyeS5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VOZXdcIiBjbGFzcz1cIm1hdC10YWJsZVwiICpuZ0lmPVwiZGF0YVNvdXJjZU5ldy5sZW5ndGggPiAwICYmIHNob3dOZXdQcm9kdWN0UGlja2VyOyBlbHNlIG5vRGF0YVwiID5cclxuICAgIDwhLS0gUHJvZHVjdCBOYW1lIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHJvZHVjdE5hbWVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3twcm9kdWN0VHdlZWt9fSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQudGV4dH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFF1YW50aXR5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicXVhbnRpdHlcIiAqbmdJZj1cInNob3dRdWFudGl0eVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7eyBxdWFudGl0eVR3ZWVrIH19IDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5xdWFudGl0eX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFByaWNlIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHJpY2VcIiAqbmdJZj1cInNob3dQcmljZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e3ByaWNlVHdlZWt9fSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQucHJpY2V9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgIDwhLS0gQ2F0ZWdvcnkgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjYXRlZ29yeVwiICpuZ0lmPVwic2hvd0NhdGVnb3J5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y2F0ZWdvcnlUd2Vla319IDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5jYXRlZ29yeX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBDYXRlZ29yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YkNhdGVnb3J5XCIgKm5nSWY9XCJzaG93U3ViY2F0ZWdvcnlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3tzdWJDYXRlZ29yeVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnN1YkNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNLVSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNrdU51bWJlclwiICpuZ0lmPVwic2hvd1NrdU51bWJlclwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e3NrdVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIEludmVudG9yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImludmVudG9yeVwiICpuZ0lmPVwic2hvd0ludmVudG9yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e2ludmVudG9yeVR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFlvdXIgVGFyZ2V0IENvc3QgLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvc3RcIiAqbmdJZj1cInNob3dDb3N0XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7Y29zdFR3ZWVrfX0gPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMCB8fCBlbGVtZW50Py5vdGhlckluZm9ybWF0aW9uMn19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNOZXdcIj48L3RyPlxyXG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNOZXc7XCI+PC90cj5cclxuICA8L3RhYmxlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxyXG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhLW1lc3NhZ2VcIiAqbmdJZj1cInNob3dOZXdQcm9kdWN0UGlja2VyXCI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TmV3UHJvZHVjdFBpY2tlciAmJiAhaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZFwiPlxyXG4gICAgICBObyBwcm9kdWN0cyBmb3VuZC4gUGxlYXNlIGFkZCBzb21lIHByb2R1Y3RzLlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dOZXdQcm9kdWN0UGlja2VyICYmIGlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWRcIj5cclxuICAgICAgTm8gcHJvZHVjdHMgZm91bmQuIFBsZWFzZSBhZGQgc29tZSBwcm9kdWN0cy5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uICE9PSAndG9wJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcyA9IFwicGlja2VyMm5ldy1idG5cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCIgKm5nSWY9XCIhKGlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWQgJiYgZW1wdHlBcnJheSAmJiAhc2hvd05ld1Byb2R1Y3RQaWNrZXIpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAnLmRhdGFncmlkLXJvdyB7IGhlaWdodDogYXV0bzsgfSAubWF0LXRhYmxleyB3aWR0aDogMTAwJSB9IC5tYXQtaGVhZGVyLWNlbGwsIC5tYXQtY2VsbHsgcGFkZGluZzogOHB4IH0gLm5vLWRhdGEtbWVzc2FnZSB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzoyMHB4OyBtYXJnaW46IDAgMjBweCAwOyBmb250LXNpemU6IDE4cHg7Y29sb3I6ICM4ODg7IGhlaWdodDogMTAwJTt9IDo6bmctZGVlcCAucGlja2VyMm5ldy1idG4uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6IDB9J1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsZW1lbnQsIHJlZik7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgLy8gQWRkIGN1c3RvbSBjbGFzc2VzIHRvIGVsZW1lbnRzLlxyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY3VzdG9tQ2xhc3MpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICBmb3JtQ29sdW1uczogc3RyaW5nW107XHJcbiAgY29sdW1uczogYW55O1xyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XHJcbiAgZGF0YVNvdXJjZU5ldyA9IEVMRU1FTlRfREFUQTtcclxuICBkaXNwbGF5ZWRDb2x1bW5zTmV3OiBzdHJpbmdbXSA9IFsncHJvZHVjdE5hbWUnLCAnY2F0ZWdvcnknLCAnc3ViQ2F0ZWdvcnknLCAncXVhbnRpdHknLCAncHJpY2UnLCAnc2t1TnVtYmVyJywgJ2ludmVudG9yeScsICdjb3N0J107XHJcbiAgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U3ViY2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UHJpY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dRdWFudGl0eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dJbnZlbnRvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBoYXNJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoZWNrU3VibWlzc2lvblN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEYXRhR3JpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgaGFzVmFsdWVBbmRFZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nUXVhbnRpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nUHJpY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nQ2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nU2t1TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0ludmVudG9yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDFMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MMkxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkwzTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZGVhbElkOiBhbnk7XHJcbiAgaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtcHR5QXJyYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1ByaWNlRGlzYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpY2VUd2Vlazogc3RyaW5nID0gJ1ByaWNlJztcclxuICBza3VUd2Vlazogc3RyaW5nID0gJ1NLVSBOdW1iZXInO1xyXG4gIGNvc3RUd2Vlazogc3RyaW5nID0gJ1lvdXIgVGFyZ2V0IENvc3QnO1xyXG4gIHNob3dDb3N0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0Nvc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxdWFudGl0eVR3ZWVrOiBzdHJpbmcgPSAnUXVhbnRpdHknO1xyXG4gIHByb2R1Y3RUd2Vlazogc3RyaW5nID0gJ1Byb2R1Y3QgTmFtZSc7XHJcbiAgY2F0ZWdvcnlUd2Vlazogc3RyaW5nID0gJ0NhdGVnb3J5IE5hbWUnO1xyXG4gIHN1YkNhdGVnb3J5VHdlZWs6IHN0cmluZyA9ICdTdWIgQ2F0ZWdvcnknO1xyXG4gIGludmVudG9yeVR3ZWVrOiBzdHJpbmcgPSAnSW52ZW50b3J5JztcclxuICBnZXRDb2x1bW5MYWJlbChjb2x1bW4pIHtcclxuICAgIHJldHVybiBjb2x1bW4ubGFiZWwgfHwgY29sdW1uLmtleTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0TGFiZWxOYW1lKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBhdHRyaWJ1dGVOYW1lKSB7XHJcbiAgICBpZiAobmV3UHJvZHVjdFBpY2tlckZsYWcgJiYgT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLnNvbWUoa2V5ID0+XHJcbiAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgIC8vIEZpbmQgdGhlIGtleSB0aGF0IG1hdGNoZXMgYXR0cmlidXRlTmFtZSBjYXNlLWluc2Vuc2l0aXZlbHlcclxuICAgICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuZmluZChrZXkgPT5cclxuICAgICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoaW5nIGtleVxyXG4gICAgICByZXR1cm4gbmV3UHJvZHVjdFBpY2tlckZsYWdbbWF0Y2hpbmdLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgLy8gfVxyXG5cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICBjb25zdCBjaGVja0F0dHJpYnV0ZSA9IGluc3RhbmNlPy5jb21wb25lbnQ/LmF0dHJpYnV0ZXM7XHJcbiAgICB0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcIm5ld3Byb2R1Y3RwaWNrZXJcIik7XHJcbiAgICB0aGlzLnNob3dDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93Q2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dTdWJjYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93U3ViY2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dQcmljZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dRdWFudGl0eSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dTa3VOdW1iZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd1NrdU51bWJlclwiKTtcclxuICAgIHRoaXMuc2hvd0ludmVudG9yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93SW52ZW50b3J5XCIpXHJcbiAgICB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nUXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dQcmljZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nUHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nQ2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dTa3VOdW1iZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1NrdU51bWJlclwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ0ludmVudG9yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nSW52ZW50b3J5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1N1YkNhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5pc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcImZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5XCIpO1xyXG4gICAgdGhpcy5pc1ByaWNlRGlzYWJsZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJpc1ByaWNlRGlzYWJsZVwiKTtcclxuICAgIHRoaXMuc2hvd0Nvc3QgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0Nvc3RcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dDb3N0ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dDb3N0XCIpO1xyXG4gICAgY29uc3QgbDEgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwxXCIpO1xyXG4gICAgY29uc3QgbDIgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwyXCIpO1xyXG4gICAgY29uc3QgbDMgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwzXCIpO1xyXG4gICAgY29uc3QgbDQgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkw0XCIpO1xyXG4gICAgY29uc3QgcHJpY2UgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJwcmljZUxhYmVsXCIpO1xyXG4gICAgY29uc3Qgc2t1ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwic2t1TGFiZWxcIik7XHJcbiAgICBjb25zdCBjb3N0ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiY29zdExhYmVsXCIpO1xyXG4gICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJxdWFudGl0eUxhYmVsXCIpO1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcInByb2R1Y3RMYWJlbFwiKTtcclxuICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiY2F0ZWdvcnlMYWJlbFwiKTtcclxuICAgIGNvbnN0IHN1YkNhdGVnb3J5ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwic3ViQ2F0ZWdvcnlMYWJlbFwiKTtcclxuICAgIGNvbnN0IGludmVudG9yeSA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImludmVudG9yeUxhYmVsXCIpO1xyXG4gICAgdGhpcy5kcm9wZG93bkwxID0gbDEgIT09IG51bGwgJiYgbDEgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwxID09PSAnc3RyaW5nJyA/IGwxLnRyaW0oKSAhPT0gXCJcIiA6IGwxICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MMiA9IGwyICE9PSBudWxsICYmIGwyICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMiA9PT0gJ3N0cmluZycgPyBsMi50cmltKCkgIT09IFwiXCIgOiBsMiAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDMgPSBsMyAhPT0gbnVsbCAmJiBsMyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDMgPT09ICdzdHJpbmcnID8gbDMudHJpbSgpICE9PSBcIlwiIDogbDMgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkw0ID0gbDQgIT09IG51bGwgJiYgbDQgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGw0ID09PSAnc3RyaW5nJyA/IGw0LnRyaW0oKSAhPT0gXCJcIiA6IGw0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHByaWNlVHdlZWsgPSBwcmljZSAhPT0gbnVsbCAmJiBwcmljZSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgcHJpY2UgPT09ICdzdHJpbmcnID8gcHJpY2UudHJpbSgpICE9PSBcIlwiIDogcHJpY2UgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3Qgc2t1VHdlZWsgPSBza3UgIT09IG51bGwgJiYgc2t1ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBza3UgPT09ICdzdHJpbmcnID8gc2t1LnRyaW0oKSAhPT0gXCJcIiA6IHNrdSAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBjb3N0VHdlZWsgPSBjb3N0ICE9PSBudWxsICYmIGNvc3QgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGNvc3QgPT09ICdzdHJpbmcnID8gY29zdC50cmltKCkgIT09IFwiXCIgOiBjb3N0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHF1YW50aXR5VHdlZWsgPSBxdWFudGl0eSAhPT0gbnVsbCAmJiBxdWFudGl0eSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgcXVhbnRpdHkgPT09ICdzdHJpbmcnID8gcXVhbnRpdHkudHJpbSgpICE9PSBcIlwiIDogcXVhbnRpdHkgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgcHJvZHVjdFR3ZWVrID0gcHJvZHVjdCAhPT0gbnVsbCAmJiBwcm9kdWN0ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBwcm9kdWN0ID09PSAnc3RyaW5nJyA/IHByb2R1Y3QudHJpbSgpICE9PSBcIlwiIDogcHJvZHVjdCAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBjYXRlZ29yeVR3ZWVrID0gY2F0ZWdvcnkgIT09IG51bGwgJiYgY2F0ZWdvcnkgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGNhdGVnb3J5ID09PSAnc3RyaW5nJyA/IGNhdGVnb3J5LnRyaW0oKSAhPT0gXCJcIiA6IGNhdGVnb3J5ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHN1YkNhdGVnb3J5VHdlZWsgPSBzdWJDYXRlZ29yeSAhPT0gbnVsbCAmJiBzdWJDYXRlZ29yeSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygc3ViQ2F0ZWdvcnkgPT09ICdzdHJpbmcnID8gc3ViQ2F0ZWdvcnkudHJpbSgpICE9PSBcIlwiIDogc3ViQ2F0ZWdvcnkgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgaW52ZW50b3J5VHdlZWsgPSBpbnZlbnRvcnkgIT09IG51bGwgJiYgaW52ZW50b3J5ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBpbnZlbnRvcnkgPT09ICdzdHJpbmcnID8gaW52ZW50b3J5LnRyaW0oKSAhPT0gXCJcIiA6IGludmVudG9yeSAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwxKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMUxhYmVsID0gbDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwyKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMkxhYmVsID0gbDI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwzKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MM0xhYmVsID0gbDM7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkw0KSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MNExhYmVsID0gbDQ7XHJcbiAgICB9XHJcbiAgICBpZiAocHJpY2VUd2Vlaykge1xyXG4gICAgICB0aGlzLnByaWNlVHdlZWsgPSBwcmljZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2t1VHdlZWspIHtcclxuICAgICAgdGhpcy5za3VUd2VlayA9IHNrdTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29zdFR3ZWVrKSB7XHJcbiAgICAgIHRoaXMuY29zdFR3ZWVrID0gY29zdDtcclxuICAgIH1cclxuICAgIGlmIChxdWFudGl0eVR3ZWVrKSB7XHJcbiAgICAgIHRoaXMucXVhbnRpdHlUd2VlayA9IHF1YW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm9kdWN0VHdlZWspIHtcclxuICAgICAgdGhpcy5wcm9kdWN0VHdlZWsgPSBwcm9kdWN0O1xyXG4gICAgfVxyXG4gICAgaWYgKGNhdGVnb3J5VHdlZWspIHtcclxuICAgICAgdGhpcy5jYXRlZ29yeVR3ZWVrID0gY2F0ZWdvcnk7XHJcbiAgICB9XHJcbiAgICBpZiAoc3ViQ2F0ZWdvcnlUd2Vlaykge1xyXG4gICAgICB0aGlzLnN1YkNhdGVnb3J5VHdlZWsgPSBzdWJDYXRlZ29yeTtcclxuICAgIH1cclxuICAgIGlmIChpbnZlbnRvcnlUd2Vlaykge1xyXG4gICAgICB0aGlzLmludmVudG9yeVR3ZWVrID0gaW52ZW50b3J5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsICdpc1Byb2R1Y3RPcHRpb25hbCcpO1xyXG4gICAgdGhpcy5oYXNWYWx1ZUFuZEVkaXRNb2RlID0gKGNoZWNrQXR0cmlidXRlPy5oYXNWYWx1ZSA9PT0gJ3llcycpICYmIChjaGVja0F0dHJpYnV0ZT8uZWRpdE1vZGUgPT09ICd0cnVlJyk7XHJcbiAgICBjb25zdCByZXRyaWV2ZWRPYmplY3QgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdG9yYWdlT2JqZWN0JykpO1xyXG4gICAgdGhpcy5lbXB0eUFycmF5ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlPy5sZW5ndGggPCAxID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgIXRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLnNob3dDYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdjYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93UXVhbnRpdHkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncXVhbnRpdHknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1ByaWNlKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3ByaWNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dTdWJjYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdzdWJDYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U2t1TnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3NrdU51bWJlcicpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93SW52ZW50b3J5KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2ludmVudG9yeScpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dDb3N0KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2Nvc3QnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRlYWxJZCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRlYWxJZFwiKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjdXJyZW50RGVhbElkXCIsIHRoaXMuZGVhbElkKTtcclxuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBzaG93R3JpZFBpY2tlclByb2R1Y3RzLSR7dGhpcy5kZWFsSWR9YCkgfHwgJyc7XHJcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKHN0b3JlZERhdGEgfHwgJ251bGwnKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSA/IHBhcnNlZERhdGEgOiBbXTtcclxuXHJcbiAgICAgIC8vIFNldCBmbGFnIHRvIHRydWUgdG8gcHJldmVudCBmdXJ0aGVyIGV4ZWN1dGlvblxyXG4gICAgICB0aGlzLmhhc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgLy90aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cyAmJiBcclxuICAgIGlmICghdGhpcy5oYXNWYWx1ZUFuZEVkaXRNb2RlKSB7XHJcbiAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW11cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBpbnN0YW5jZS5kYXRhVmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHVtbnMgPSB7fTtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29sdW1ucyA9IFtdO1xyXG4gICAgaW5zdGFuY2UuZ2V0Q29sdW1ucygpLm1hcCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbHVtbnMucHVzaChjb2x1bW4ua2V5KTtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY29sdW1uLmtleSk7XHJcbiAgICAgIHRoaXMuY29sdW1uc1tjb2x1bW4ua2V5XSA9IGNvbHVtbjtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ19fcmVtb3ZlUm93Jyk7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQucmVvcmRlcikge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgncG9zaXRpb24nKTtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLnZpZXdDb250YWluZXIgPSAoY29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGxldCB2aWV3Q29udGFpbmVyO1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGlzYWJsZWQpIHtcclxuICAgICAgICBjb21wb25lbnQuY29tcG9uZW50LmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJzLmZvckVhY2goKGNvbnRhaW5lcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRkID0gY29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGNvbXBvbmVudC5yb3dJbmRleCA9PT0gcGFyc2VJbnQodGQuZ2V0QXR0cmlidXRlKCdyb3dJbmRleCcpLCAxMCkgJiZcclxuICAgICAgICAgIGNvbXBvbmVudC5jb21wb25lbnQua2V5ID09PSB0ZC5nZXRBdHRyaWJ1dGUoJ2NvbXBvbmVudCcpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2aWV3Q29udGFpbmVyID0gY29udGFpbmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gdmlld0NvbnRhaW5lciA/IHZpZXdDb250YWluZXIgOiBudWxsO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgLy8gQWRkIGN1c3RvbSBjbGFzc2VzIHRvIGVsZW1lbnRzLlxyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY3VzdG9tQ2xhc3MpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29sdW1uKGNvbHVtbk5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3ID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3LmZpbHRlcihjb2x1bW4gPT4gY29sdW1uICE9PSBjb2x1bW5OYW1lKTtcclxuICB9XHJcblxyXG4gIGFkZEFub3RoZXJPbGQoKSB7XHJcbiAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrUm93c051bWJlcigpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2goe30pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlcigpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjdXJyZW50RGVhbElkJywgdGhpcy5kZWFsSWQpO1xyXG4gICAgICBjb25zdCBkaW9sb2dlUmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRPblByb2R1Y3RzQ29tcG9uZW50LCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIHdpZHRoOiAnOTAlJyxcclxuICAgICAgICBtYXhXaWR0aDogJzEwMDBweCcsXHJcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgICBkYXRhOiB7IGRyb3Bkb3duc0ZsYWc6IHsgc2hvd0RpYWxvZ0ludmVudG9yeTogdGhpcy5zaG93RGlhbG9nSW52ZW50b3J5LCBzaG93SW52ZW50b3J5OiB0aGlzLnNob3dJbnZlbnRvcnksIGludmVudG9yeVR3ZWVrOiB0aGlzLmludmVudG9yeVR3ZWVrLCBxdWFudGl0eVR3ZWVrOiB0aGlzLnF1YW50aXR5VHdlZWssIHN1YkNhdGVnb3J5VHdlZWs6IHRoaXMuc3ViQ2F0ZWdvcnlUd2VlaywgY2F0ZWdvcnlUd2VlazogdGhpcy5jYXRlZ29yeVR3ZWVrLCBwcm9kdWN0VHdlZWs6IHRoaXMucHJvZHVjdFR3ZWVrLCBjb3N0VHdlZWs6IHRoaXMuY29zdFR3ZWVrLCBza3VUd2VlazogdGhpcy5za3VUd2VlaywgcHJpY2VUd2VlazogdGhpcy5wcmljZVR3ZWVrLCBzaG93RGlhbG9nQ29zdDogdGhpcy5zaG93RGlhbG9nQ29zdCwgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIsIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnksIHNob3dEaWFsb2dTa3VOdW1iZXI6IHRoaXMuc2hvd0RpYWxvZ1NrdU51bWJlciwgc2hvd0RpYWxvZ0NhdGVnb3J5OiB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSwgc2hvd0RpYWxvZ1ByaWNlOiB0aGlzLnNob3dEaWFsb2dQcmljZSwgc2hvd0RpYWxvZ1F1YW50aXR5OiB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSwgZHJvcGRvd25MMTogdGhpcy5kcm9wZG93bkwxLCBkcm9wZG93bkwyOiB0aGlzLmRyb3Bkb3duTDIsIGRyb3Bkb3duTDM6IHRoaXMuZHJvcGRvd25MMywgZHJvcGRvd25MNDogdGhpcy5kcm9wZG93bkw0LCBkcm9wZG93bkwxTGFiZWw6IHRoaXMuZHJvcGRvd25MMUxhYmVsLCBkcm9wZG93bkwyTGFiZWw6IHRoaXMuZHJvcGRvd25MMkxhYmVsLCBkcm9wZG93bkwzTGFiZWw6IHRoaXMuZHJvcGRvd25MM0xhYmVsLCBkcm9wZG93bkw0TGFiZWw6IHRoaXMuZHJvcGRvd25MNExhYmVsLCBjaGVja1N1Ym1pc3Npb25TdGF0dXM6IHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzLCBwcmljZURpc2FibGU6IHRoaXMuaXNQcmljZURpc2FibGUgfSwgc2VsZWN0ZWRQcm9kdWN0czogdGhpcy5kYXRhU291cmNlTmV3IH1cclxuICAgICAgfSlcclxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uZGF0YT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignY2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1F1YW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3F1YW50aXR5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dQcmljZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdwcmljZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93U3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignc3ViQ2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd0ludmVudG9yeSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdpbnZlbnRvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3RzQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzKSk7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGBzZWxlY3RlZFByb2R1Y3RzLSR7dGhpcy5kZWFsSWR9YCwgSlNPTi5zdHJpbmdpZnkodGhpcy5hZGRQcmljZVByb3BlcnR5KHNlbGVjdGVkUHJvZHVjdHNDb3B5KSkpO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VOZXcgPSByZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGVmYXVsdFZhbHVlID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja1Jvd3NOdW1iZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5wdXNoKHt9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkUHJpY2VQcm9wZXJ0eShzZWxlY3RlZFByb2R1Y3RzKSB7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRQcm9kdWN0cy5tYXAocHJvZHVjdHMgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnByb2R1Y3RzLFxyXG4gICAgICAgIHByaWNlRGlzYWJsZTogdGhpcy5pc1ByaWNlRGlzYWJsZSA/IHRydWUgOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja1Jvd3NOdW1iZXIoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5pbnN0YW5jZS5yb3dzLmxlbmd0aCA8IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUm93KGluZGV4KSB7XHJcbiAgICBsZXQgbWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgcHJvZHVjdD8nO1xyXG4gICAgbGV0IHNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID09PSAxICYmICF0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cykge1xyXG4gICAgICBtZXNzYWdlID0gJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHByb2R1Y3QuJztcclxuICAgICAgc2hvd0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICB3aWR0aDogJzkwJScsXHJcbiAgICAgIG1heFdpZHRoOiAnNDAwcHgnLFxyXG4gICAgICBkYXRhOiB7IG1lc3NhZ2U6IG1lc3NhZ2UsIGJ1dHRvblN0YXR1czogc2hvd0J1dHRvbiB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID09PSAxICYmIHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBVc2VyIGNvbmZpcm1lZCwgcHJvY2VlZCB3aXRoIGRlbGV0aW9uXHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5yZW1vdmVSb3coaW5kZXgpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRyb3BUYWJsZShldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pikge1xyXG4gICAgY29uc3QgcHJldkluZGV4ID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZEluZGV4KChkKSA9PiBkID09PSBldmVudC5pdGVtLmRhdGEpO1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuY29udHJvbC52YWx1ZSwgcHJldkluZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5yZW5kZXJDb21wb25lbnRzKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJDb21wb25lbnRzKCkge1xyXG4gICAgdGhpcy5pbnN0YW5jZS5nZXRSb3dzKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHRoaXMuY29udHJvbC52YWx1ZSB8fCBbXSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSh2YWx1ZTogW10gfCBudWxsKSB7XHJcbiAgICBjb25zdCBncmlkTGVuZ3RoID0gdmFsdWUgPyB2YWx1ZS5sZW5ndGggOiAwO1xyXG4gICAgd2hpbGUgKHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGggPCBncmlkTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWRkQW5vdGhlcigpO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLmRhdGFWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXZhbHVlICYmIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmNsZWFyT25IaWRlKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5pbnN0YW5jZS5kZWZhdWx0VmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxufVxyXG5EYXRhR3JpZENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQ7XHJcbmV4cG9ydCB7IERhdGFHcmlkQ29tcG9uZW50IH07Il19
|
|
@@ -4408,7 +4408,8 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
4408
4408
|
else {
|
|
4409
4409
|
this.dataSource.data = instance.dataValue;
|
|
4410
4410
|
}
|
|
4411
|
-
|
|
4411
|
+
//this.checkSubmissionStatus &&
|
|
4412
|
+
if (!this.hasValueAndEditMode) {
|
|
4412
4413
|
this.showDataGrid = false;
|
|
4413
4414
|
this.dataSource.data = [];
|
|
4414
4415
|
}
|
|
@@ -4581,9 +4582,9 @@ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
4581
4582
|
</ng-container>
|
|
4582
4583
|
<mat-card-content>
|
|
4583
4584
|
|
|
4584
|
-
|
|
4585
|
+
<!-- Message when no products are found -->
|
|
4585
4586
|
<div class="no-data-message" *ngIf="!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)">
|
|
4586
|
-
No products found. Please add some products.
|
|
4587
|
+
{{ checkSubmissionStatus === false ? 'No products found. Please add at least one product to continue.' : 'No products found. Please add some products.' }}
|
|
4587
4588
|
</div>
|
|
4588
4589
|
<ng-container *ngIf="showDataGrid">
|
|
4589
4590
|
<mat-card-actions
|
|
@@ -4741,9 +4742,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
4741
4742
|
</ng-container>
|
|
4742
4743
|
<mat-card-content>
|
|
4743
4744
|
|
|
4744
|
-
|
|
4745
|
+
<!-- Message when no products are found -->
|
|
4745
4746
|
<div class="no-data-message" *ngIf="!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)">
|
|
4746
|
-
No products found. Please add some products.
|
|
4747
|
+
{{ checkSubmissionStatus === false ? 'No products found. Please add at least one product to continue.' : 'No products found. Please add some products.' }}
|
|
4747
4748
|
</div>
|
|
4748
4749
|
<ng-container *ngIf="showDataGrid">
|
|
4749
4750
|
<mat-card-actions
|