ng-miam 9.2.2 → 9.2.4
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/bundles/ng-miam.umd.js +20 -60
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_models/basket.js +2 -9
- package/esm2015/lib/_services/baskets.service.js +2 -22
- package/esm2015/lib/_services/context.service.js +3 -4
- package/esm2015/lib/_services/items.service.js +2 -2
- package/esm2015/lib/_services/recipes.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_types/builded/mealz-internal-interface.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +2 -3
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-pricing/recipe-pricing.component.js +6 -12
- package/esm2015/lib/environments/version.js +2 -2
- package/fesm2015/ng-miam.js +20 -54
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_models/basket.d.ts +0 -3
- package/lib/_models/basket.d.ts.map +1 -1
- package/lib/_services/baskets.service.d.ts +0 -2
- package/lib/_services/baskets.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +1 -1
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +0 -6
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts.map +1 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +0 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts +0 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -402,7 +402,7 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
|
|
|
402
402
|
}
|
|
403
403
|
else {
|
|
404
404
|
i18n_11 = $localize `:␟834498e5698b366d53cba7a7f98b06a12967862c␟1875448131572248295: Chargement des résultats... `;
|
|
405
|
-
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], [1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, [3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
405
|
+
} return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], ["role", "list", 1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, ["role", "listitem", 3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
406
406
|
i0.ɵɵelementStart(0, "div", 0);
|
|
407
407
|
i0.ɵɵtemplate(1, CatalogListComponent_div_1_Template, 7, 9, "div", 1);
|
|
408
408
|
i0.ɵɵpipe(2, "async");
|
|
@@ -463,4 +463,4 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
|
|
|
463
463
|
type: ViewChildren,
|
|
464
464
|
args: [RecipeCardComponent]
|
|
465
465
|
}] }); })();
|
|
466
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvY2F0YWxvZy1saXN0L2NhdGFsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctbGlzdC9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlD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S0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDSSxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNO1lBQ0csT0FBTztrQkFBaEIsTUFBTTtZQUU0QixXQUFXO2tCQUE3QyxZQUFZO21CQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYXVzaWJsZVByb3BzIH0gZnJvbSAnbWVhbHotc2hhcmVkLWFuYWx5dGljcyc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuaW1wb3J0IHsgbWVhbHpEZWJ1ZyB9IGZyb20gJy4uLy4uLy4uL191dGlscy9tZXRob2RzL2xvZ2dpbmcnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2ctbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTGlzdENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpbHRlcnM6IFJlY2lwZUZpbHRlcnM7XG4gIEBJbnB1dCgpIHJhbmRvbU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kaWZpZWRHdWVzdHM6IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZFJlY2lwZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZXhjbHVkZWRSZWNpcGVzSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNwbGF5UmVjaXBlVmFyaWFudCA9IDE7XG4gIEBPdXRwdXQoKSBhZGRUb01lYWxzUGxhbm5lciA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBlPigpO1xuICBAT3V0cHV0KCkgZmlsdGVyUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgQFZpZXdDaGlsZHJlbihSZWNpcGVDYXJkQ29tcG9uZW50KSByZWNpcGVDYXJkcyE6IFF1ZXJ5TGlzdDxSZWNpcGVDYXJkQ29tcG9uZW50PjtcblxuICBjdXJyZW50UmVjaXBlczogUmVjaXBlW10gPSBbXTtcbiAgbGFzdFBhZ2UgPSAwO1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXTtcbiAgaWNvbiA9IEljb247XG4gIG5vTW9yZVJlY2lwZXMgPSBmYWxzZTtcbiAgbm9Nb3JlQXJ0aWNsZXMgPSBmYWxzZTtcbiAgZmlsdGVyc1RvRGlzcGxheSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGN1cnJlbnRSZXF1ZXN0c0NvdW50ID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXJ0aWNsZXNTZXJ2aWNlOiBBcnRpY2xlc1NlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gW107XG4gICAgdGhpcy5maWx0ZXJzID0gbmV3IFJlY2lwZUZpbHRlcnMoeyBzZWFyY2g6ICcnIH0pO1xuICB9XG5cbiAgZ2V0IHNvcnQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzKSB7XG4gICAgICByZXR1cm4gJ3Bvc2l0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuYWRkUmVjaXBlTW9kZSkge1xuICAgICAgcmV0dXJuICdwcmljZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJvcHMoKTogUGxhdXNpYmxlUHJvcHMge1xuICAgIGNvbnN0IHByb3BzOiBQbGF1c2libGVQcm9wcyA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlcnM/LmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzKSB7XG4gICAgICBwcm9wcy5jYXRlZ29yeV9pZCA9IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcHM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlc0tleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKTtcbiAgICAvLyBQcmV2ZW50cyByZWxvYWQgbG9vcCBpbiBhbmd1bGFyLCBiZWNhdXNlIG9yaWdpblRyYWNlIGFuZCBleGNsdWRlZFJlY2lwZXNJZHMgYXJlIHBhc3NlZCBhcyBtZXRob2RzIHNvIHRoZXkga2VlcCByZWZyZXNoaW5nIHRoZSBET01cbiAgICBpZiAoIShjaGFuZ2VzS2V5cy5pbmNsdWRlcygnb3JpZ2luVHJhY2UnKSAmJlxuICAgICAgKGNoYW5nZXNLZXlzLmxlbmd0aCA9PT0gMSB8fCAoY2hhbmdlc0tleXMubGVuZ3RoID09PSAyICYmIGNoYW5nZXNLZXlzLmluY2x1ZGVzKCdleGNsdWRlZFJlY2lwZXNJZHMnKSkpKSkge1xuICAgICAgdGhpcy5maWx0ZXJzVG9EaXNwbGF5ID0gdGhpcy5idWlsZEZpbHRlcnNBcnJheSgpO1xuICAgICAgdGhpcy5yZWxvYWRQYWdlKCk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAgICdzZWFyY2gnLFxuICAgICAgICAgIHRoaXMucGF0aCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hfdGVybTogdGhpcy5maWx0ZXJzLnNlYXJjaFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZXZlbnRQYXRoKCk7XG4gIH1cblxuICBhdXRvbG9hZENvbnRlbnRJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMubG9hZGluZy5waXBlKHRha2UoMSksIGZpbHRlcihsb2FkaW5nID0+ICFsb2FkaW5nKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLmN1cnJlbnRSZWNpcGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMubm9Nb3JlUmVjaXBlcykgfHxcbiAgICAgICAgICAodGhpcy5hcnRpY2xlcy5sZW5ndGggPiAwICYmICF0aGlzLm5vTW9yZUFydGljbGVzKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBBdCBjb21wb25lbnQgaW5pdGlhbCBsb2FkLCAyIGNhbGxzIHdpbGwgYmUgbWFkZSBmb3IgdGhlIGZpcnN0IHR3byByZWNpcGVzIHBhZ2VcbiAgICAgICAgICAvLyBUaGlzIGlzIHRvIGF2b2lkIG1ha2luZyB0aGUgbG9hZGVyIHNwaW4gdHdpY2VcbiAgICAgICAgICB0aGlzLmxvYWRNb3JlKHRoaXMubGFzdFBhZ2UgPiAyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbG9hZE1vcmUobG9hZGVyID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChsb2FkZXIpIHtcbiAgICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICB0aGlzLmxhc3RQYWdlKys7XG4gICAgdGhpcy5sb2FkQ29udGVudCgpO1xuICB9XG5cbiAgbG9hZFJlY2lwZXNQYWdlKHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBpZiAodGhpcy5ub01vcmVSZWNpcGVzKSB7XG4gICAgICByZXR1cm4gb2YoKFtdIGFzIFJlY2lwZVtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuYWRkTWFuZGF0b3J5Q29tcGxldGlvblRvRmlsdGVyKHRoaXMuZmlsdGVycykucGlwZShcbiAgICAgIHN3aXRjaE1hcChyZXF1ZXN0RmlsdGVycyA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICAgICAgcmVjaXBlSW5jbHVkZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMucmVjaXBlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgICB7IGluZ3JlZGllbnRzOiBbJ25hbWUnLCAncXVhbnRpdHknLCAndW5pdCcsICdhY3RpdmUnLCAnZm9yY2VkLWVhbnMnLCAncGljdHVyZS11cmwnLCAncG9zaXRpb24nXSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IHNpemU6IDIwLCBudW1iZXI6IHBhZ2UgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICB0aGlzLnJhbmRvbU1vZGUsXG4gICAgICAgICAgdGhpcy5zb3J0XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdDogUmVjaXBlW10pID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHMocmVzdWx0LCByZXF1ZXN0RmlsdGVycywgcGFnZSkpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm9jZXNzUmVzdWx0cyhyZXN1bHRzOiBSZWNpcGVbXSwgcmVxdWVzdEZpbHRlcnM6IFJlY2lwZUZpbHRlcnMsIHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50LS07XG4gICAgLy8gQmVjYXVzZSBGaWx0ZXIgaXMgYSB0eXBlLCBhdHRyaWJ1dGVzIGFyZSBhbHdheXMgaW4gdGhlIHNhbWUgb3JkZXIsIHNvIHN0cmluZ2lmeSB3b24ndCBiZSBmYWxzZSBmb3Igb2JqZWN0cyB3aXRoIHNhbWUgYXR0cmlidXRlc1xuICAgIC8vIElmIGZvciBzb21lIHJlYXNvbiBmaWx0ZXJzIGFyZSBkaWZmZXJlbnQsIGJ1dCB0aGVyZSBhcmUgbm8gYWRkaXRpb25hbCByZXF1ZXN0IG9uZ29pbmcsIGRvbid0IGJsb2NrIHRoZSBjb21wb25lbnRcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkocmVxdWVzdEZpbHRlcnMpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMpIHx8IHRoaXMuY3VycmVudFJlcXVlc3RzQ291bnQgPT09IDApIHtcbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVkUmVjaXBlc0lkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmZpbHRlcihyZWNpcGUgPT4gIXRoaXMuZXhjbHVkZWRSZWNpcGVzSWRzLmluY2x1ZGVzKHJlY2lwZS5pZCkpO1xuICAgICAgfVxuICAgICAgLy8gaWYgeW91IHNwYW0gY2xpY2sgb24gZmlsdGVycywgbXVsdGlwbGUgcmVxdWVzdHMgd2l0aCBwYWdlID09IDEgY291bGQgYmUgc2VudCBmb3IgdGhlIHNhbWUgZmlsdGVycyAtPiBvbmx5IGtlZXAgdGhlIGxhc3QgcmVzdWx0XG4gICAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gcGFnZSA9PT0gMSA/IHJlc3VsdHMgOiBbLi4udGhpcy5jdXJyZW50UmVjaXBlcywgLi4ucmVzdWx0c107XG4gICAgICB0aGlzLmN1cnJlbnRSZWNpcGVzLmZvckVhY2goKHI6IFJlY2lwZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tb2RpZmllZEd1ZXN0cyAmJiB0aGlzLm1vZGlmaWVkR3Vlc3RzID4gMCkge1xuICAgICAgICAgIHIubW9kaWZpZWRHdWVzdHMgPSB0aGlzLm1vZGlmaWVkR3Vlc3RzO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9Nb3JlUmVjaXBlcyA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY3VycmVudFJlY2lwZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZWFsekRlYnVnKGBGaWx0ZXJpbmcgYWJvcnRlZCA6ICR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdEZpbHRlcnMpfSBhbmQgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMpfSBhcmUgZGlmZmVyZW50YCk7XG4gICAgICByZXR1cm4gb2YoKFtdIGFzIFJlY2lwZVtdKSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyUmVtb3ZlZC5lbWl0KGZpbHRlck5hbWUpO1xuICB9XG5cbiAgYnVpbGRGaWx0ZXJzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIGxldCBmaWx0ZXJOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICBmaWx0ZXJOYW1lcyA9IFsuLi5maWx0ZXJOYW1lcywgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmNvc3QpLCAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSksXG4gICAgICAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMudGltZSldO1xuICAgIGlmICh0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlICE9PSAnJykge1xuICAgICAgZmlsdGVyTmFtZXMgPSBbdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlXS5jb25jYXQoZmlsdGVyTmFtZXMpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyTmFtZXM7XG4gIH1cblxuICBnZXRTZWxlY3RlZEZpbHRlcnMoZmlsdGVyc0FycmF5OiBSZWNpcGVGaWx0ZXJbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIWZpbHRlcnNBcnJheSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJzQXJyYXkuZmlsdGVyKGVsID0+IGVsLnZhbHVlKS5tYXAoZWwgPT4gZWwudGV4dCk7XG4gIH1cblxuICByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAxO1xuICAgIHRoaXMubm9Nb3JlUmVjaXBlcyA9IGZhbHNlO1xuICAgIHRoaXMubm9Nb3JlQXJ0aWNsZXMgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gW107XG4gICAgdGhpcy5hcnRpY2xlcyA9IFtdO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmxvYWRDb250ZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgaXNTZWFyY2hpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVycy5zZWFyY2ggJiYgdGhpcy5maWx0ZXJzLnNlYXJjaCAhPT0gJyc7XG4gIH1cblxuICBpc0ZpZWxkRW1wdHkocmVjaXBlRmlsdGVyOiBSZWNpcGVGaWx0ZXJbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcmVjaXBlRmlsdGVyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gaWYgcmVjaXBlRmlsdGVyIGhhcyBhdCBsZWFzdCBvbmUgZmlsdGVyIHdpdGggdmFsdWUsIHJldHVybiBmYWxzZVxuICAgIHJldHVybiAhcmVjaXBlRmlsdGVyLnNvbWUoKGYpID0+IGYudmFsdWUpO1xuICB9XG5cbiAgaXNGaWx0ZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hpbmcoKSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5kaWZmaWN1bHR5KSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5jb3N0KSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy50aW1lKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCByZWNpcGU6IFJlY2lwZSk6IGFueSB7XG4gICAgcmV0dXJuIHJlY2lwZS5pZDtcbiAgfVxuXG4gIC8vIEFydGljbGVzIHdpbGwgYmUgbG9hZGVkIG9ubHkgaWYgYSBmaWx0ZXIgaXMgYXBwbGllZCBvbiBwYWNrYWdlc1xuICAvLyBUaGlzIGlzIHRvIGF2b2lkIGFydGljbGVzIGJlaW5nIGxvYWRlZCBpbiBzcGVjaWFsIHBhZ2VzIHdoZXJlIG9ubHkgZmlsdGVycyBvbiByZWNpcGVzIGFyZSBwYXNzZWQgKGZhdm9yaXRlcywgc3VnZ2VzdGVkLCBldGMuKVxuICAvLyA9PiBQYWNrYWdlcyBtaXhpbmcgYXJ0aWNsZXMgd2l0aCByZWNpcGVzIGlzIG5vdCBzdXBwb3J0ZWQgeWV0XG4gIHByaXZhdGUgbG9hZEFydGljbGVzKHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8QXJ0aWNsZVtdPiB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkIHx8IHRoaXMubm9Nb3JlQXJ0aWNsZXMgfHwgIXRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBBcnRpY2xlW10pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcnRpY2xlc1NlcnZpY2UuYWxsKHtcbiAgICAgIHJlbW90ZWZpbHRlcjoge1xuICAgICAgICBwYWNrYWdlczogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXMsXG4gICAgICAgIC4uLnRoaXMuZmlsdGVycy5zZWFyY2ggPyB7IHNlYXJjaDogdGhpcy5maWx0ZXJzLnNlYXJjaCB9IDoge31cbiAgICAgIH0sXG4gICAgICBwYWdlOiB7IHNpemU6IDIwLCBudW1iZXI6IHBhZ2UgfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSBwYWdlID09PSAxID8gcmVzdWx0LmRhdGEgOiBbLi4udGhpcy5hcnRpY2xlcywgLi4ucmVzdWx0LmRhdGFdO1xuICAgICAgICB0aGlzLm5vTW9yZUFydGljbGVzID0gcmVzdWx0LmRhdGEubGVuZ3RoID09PSAwO1xuICAgICAgICByZXR1cm4gdGhpcy5hcnRpY2xlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBmb3JrSm9pbihbdGhpcy5sb2FkUmVjaXBlc1BhZ2UodGhpcy5sYXN0UGFnZSksIHRoaXMubG9hZEFydGljbGVzKHRoaXMubGFzdFBhZ2UpXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdFwiPlxuICA8IS0tIE5vIHJlc3VsdHMgLS0+XG4gIDxkaXYgKm5nSWY9XCIhKGxvYWRpbmcgfCBhc3luYykgJiYgY3VycmVudFJlY2lwZXMubGVuZ3RoID09PSAwICYmIGFydGljbGVzLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kXCI+XG4gICAgPG5nLW1pYW0taWNvbiBcbiAgICAgIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX19pY29uXCIgXG4gICAgICBbd2lkdGhdPVwiMjc5XCIgXG4gICAgICBbaGVpZ2h0XT1cIjI0M1wiIFxuICAgICAgW2ljb25OYW1lXT1cImljb24uTm9SZWNpcGVGb3VuZFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ljb24tZmlsdGVyaW5nJzogaXNGaWx0ZXJpbmcoKSwgJ2ljb24tbm90LWZpbHRlcmluZyc6ICFpc0ZpbHRlcmluZygpfVwiPlxuICAgIDwvbmctbWlhbS1pY29uPlxuICAgIDxkaXYgKm5nSWY9XCJpc0ZpbHRlcmluZygpIGVsc2Ugbm90RmlsdGVyaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgZmlsdGVyaW5nXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIGF1Y3VuZSBwcm9wb3NpdGlvbiB0cm91dsOpZTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VhcmNoaW5nKClcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPnBvdXI8L3NwYW4+XG4gICAgICAgICAgPHNwYW4+XCJ7e2ZpbHRlcnMuc2VhcmNofX1cIjwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fbm90Rm91bmRfX3RpdGxlMlwiPlxuICAgICAgICA8c3BhbiBpMThuPlZldWlsbGV6IG1vZGlmaWVyIGxlcyB0ZXJtZXMgZGUgdm90cmUgcmVjaGVyY2hlIG91IHLDqWdsZXIgbGVzIGZpbHRyZXM8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI25vdEZpbHRlcmluZz5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCB8IGFzeW5jIGVsc2Ugbm90TG9nZ2VkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fbm90Rm91bmRfX3RpdGxlMSBub3QtZmlsdGVyaW5nXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Ew6lzb2zDqSwgdm91cyBuJ2F2ZXogcGFzIGVuY29yZSBkJ2lkw6llcyByZXBhcyBzYXV2ZWdhcmTDqWVzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNub3RMb2dnZWQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgbm90LWxvZ2dlZFwiPlxuICAgICAgICA8c3BhbiBpMThuPkTDqXNvbMOpLCB2b3VzIGRldmV6IMOqdHJlIGNvbm5lY3TDqSBwb3VyIGFjY8OpZGVyIGF1IGNvbnRlbnUgZGUgY2V0dGUgcGFnZS48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8IS0tIExvYWRlciAtLT5cbiAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX2xvYWRlclwiPlxuICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgIDxkaXYgaTE4bj5cbiAgICAgIENoYXJnZW1lbnQgZGVzIHLDqXN1bHRhdHMuLi5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19jYXJkc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVjaXBlQ2FyZCBsZXQtcmVjaXBlPSdyZWNpcGUnPlxuICAgICAgPCEtLSBDbGFzc2ljYWwgcmVjaXBlIGNhcmQgLS0+XG4gICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZFxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCIhYWRkUmVjaXBlTW9kZVwiXG4gICAgICAgIFthZGRSZWNpcGVNb2RlXT1cImFkZFJlY2lwZU1vZGVcIlxuICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgW2Rpc3BsYXlWYXJpYW50XT1cImRpc3BsYXlSZWNpcGVWYXJpYW50XCJcbiAgICAgICAgW2hlbHBCdXR0b25BbGxvd2VkXT1cImhlbHBCdXR0b25BbGxvd2VkXCJcbiAgICAgICAgKGFkZFRvTWVhbHNQbGFubmVyKT1cImFkZFRvTWVhbHNQbGFubmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjaXBlIG9mIGN1cnJlbnRSZWNpcGVzOyBsZXQgaXNMYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8IS0tIGlmIHJlY2lwZSBjYXJkIGlzIGxhc3QsIGVuY2Fwc3VsYXRlIHdpdGggbmdNaWFtTG9hZE9uU2Nyb2xsIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgbmdNaWFtTG9hZE9uU2Nyb2xsXG4gICAgICAgICAgW2lzTG9hZGluZ109XCJsb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICAgIG1hcmdpblJvb3Q9XCI2MDBweFwiXG4gICAgICAgICAgKGxvYWRNb3JlKT1cImF1dG9sb2FkQ29udGVudElmTmVjZXNzYXJ5KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY2lwZUNhcmRcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JlY2lwZTpyZWNpcGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cIiFpc0xhc3RcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWNpcGVDYXJkXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyZWNpcGU6cmVjaXBlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEFydGljbGUgY2FyZCAtLT5cbiAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
466
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvY2F0YWxvZy1saXN0L2NhdGFsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctbGlzdC9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlD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LEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0ksaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTtZQUNHLE9BQU87a0JBQWhCLE1BQU07WUFFNEIsV0FBVztrQkFBN0MsWUFBWTttQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFydGljbGUsIFJlY2lwZSB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQXJ0aWNsZXNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlc1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZUZpbHRlciwgUmVjaXBlRmlsdGVycyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9yZWNpcGUtZmlsdGVycyc7XG5pbXBvcnQgeyBSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVjaXBlLWNhcmRzJztcbmltcG9ydCB7IG1lYWx6RGVidWcgfSBmcm9tICcuLi8uLi8uLi9fdXRpbHMvbWV0aG9kcy9sb2dnaW5nJztcblxuY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdzcG9uc29ycycsICd0YWdzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnbnVtYmVyLW9mLWd1ZXN0cycsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ2RpZmZpY3VsdHknLCAncHJlcGFyYXRpb24tdGltZScsICdjb29raW5nLXRpbWUnLFxuICAgICdyZXN0aW5nLXRpbWUnLCAuLi5yZWNpcGVJbmNsdWRlc10sXG4gIHNwb25zb3JzOiBbJ2xvZ28tdXJsJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnXSxcbiAgJ3JlY2lwZS1wcm92aWRlcic6IFsnbmFtZSddXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLWNhdGFsb2ctbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0xpc3RDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzO1xuICBASW5wdXQoKSByYW5kb21Nb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBkaXNwbGF5SW5mb3MgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5R3Vlc3RzID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVscEJ1dHRvbkFsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRSZWNpcGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4Y2x1ZGVkUmVjaXBlc0lkczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgZGlzcGxheVJlY2lwZVZhcmlhbnQgPSAxO1xuICBAT3V0cHV0KCkgYWRkVG9NZWFsc1BsYW5uZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlclJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oUmVjaXBlQ2FyZENvbXBvbmVudCkgcmVjaXBlQ2FyZHMhOiBRdWVyeUxpc3Q8UmVjaXBlQ2FyZENvbXBvbmVudD47XG5cbiAgY3VycmVudFJlY2lwZXM6IFJlY2lwZVtdID0gW107XG4gIGxhc3RQYWdlID0gMDtcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIGljb24gPSBJY29uO1xuICBub01vcmVSZWNpcGVzID0gZmFsc2U7XG4gIG5vTW9yZUFydGljbGVzID0gZmFsc2U7XG4gIGZpbHRlcnNUb0Rpc3BsYXkgPSBbXTtcbiAgYXJ0aWNsZXM6IEFydGljbGVbXSA9IFtdO1xuICBjdXJyZW50UmVxdWVzdHNDb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IFtdO1xuICAgIHRoaXMuZmlsdGVycyA9IG5ldyBSZWNpcGVGaWx0ZXJzKHsgc2VhcmNoOiAnJyB9KTtcbiAgfVxuXG4gIGdldCBzb3J0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcmV0dXJuICdwb3NpdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLmFkZFJlY2lwZU1vZGUpIHtcbiAgICAgIHJldHVybiAncHJpY2UnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdldmlldygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZXNLZXlzID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7XG4gICAgLy8gUHJldmVudHMgcmVsb2FkIGxvb3AgaW4gYW5ndWxhciwgYmVjYXVzZSBvcmlnaW5UcmFjZSBhbmQgZXhjbHVkZWRSZWNpcGVzSWRzIGFyZSBwYXNzZWQgYXMgbWV0aG9kcyBzbyB0aGV5IGtlZXAgcmVmcmVzaGluZyB0aGUgRE9NXG4gICAgaWYgKCEoY2hhbmdlc0tleXMuaW5jbHVkZXMoJ29yaWdpblRyYWNlJykgJiZcbiAgICAgIChjaGFuZ2VzS2V5cy5sZW5ndGggPT09IDEgfHwgKGNoYW5nZXNLZXlzLmxlbmd0aCA9PT0gMiAmJiBjaGFuZ2VzS2V5cy5pbmNsdWRlcygnZXhjbHVkZWRSZWNpcGVzSWRzJykpKSkpIHtcbiAgICAgIHRoaXMuZmlsdGVyc1RvRGlzcGxheSA9IHRoaXMuYnVpbGRGaWx0ZXJzQXJyYXkoKTtcbiAgICAgIHRoaXMucmVsb2FkUGFnZSgpO1xuICAgICAgaWYgKHRoaXMuZmlsdGVycy5zZWFyY2gpIHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICAgICAnc2VhcmNoJyxcbiAgICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VhcmNoX3Rlcm06IHRoaXMuZmlsdGVycy5zZWFyY2hcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmV2ZW50UGF0aCgpO1xuICB9XG5cbiAgYXV0b2xvYWRDb250ZW50SWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmxvYWRpbmcucGlwZSh0YWtlKDEpLCBmaWx0ZXIobG9hZGluZyA9PiAhbG9hZGluZykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAodGhpcy5jdXJyZW50UmVjaXBlcy5sZW5ndGggPiAwICYmICF0aGlzLm5vTW9yZVJlY2lwZXMpIHx8XG4gICAgICAgICAgKHRoaXMuYXJ0aWNsZXMubGVuZ3RoID4gMCAmJiAhdGhpcy5ub01vcmVBcnRpY2xlcylcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQXQgY29tcG9uZW50IGluaXRpYWwgbG9hZCwgMiBjYWxscyB3aWxsIGJlIG1hZGUgZm9yIHRoZSBmaXJzdCB0d28gcmVjaXBlcyBwYWdlXG4gICAgICAgICAgLy8gVGhpcyBpcyB0byBhdm9pZCBtYWtpbmcgdGhlIGxvYWRlciBzcGluIHR3aWNlXG4gICAgICAgICAgdGhpcy5sb2FkTW9yZSh0aGlzLmxhc3RQYWdlID4gMik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRNb3JlKGxvYWRlciA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAobG9hZGVyKSB7XG4gICAgICB0aGlzLmxvYWRpbmcubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5sYXN0UGFnZSsrO1xuICAgIHRoaXMubG9hZENvbnRlbnQoKTtcbiAgfVxuXG4gIGxvYWRSZWNpcGVzUGFnZShwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgaWYgKHRoaXMubm9Nb3JlUmVjaXBlcykge1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBSZWNpcGVbXSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmFkZE1hbmRhdG9yeUNvbXBsZXRpb25Ub0ZpbHRlcih0aGlzLmZpbHRlcnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVxdWVzdEZpbHRlcnMgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LmRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzICYmICFyZWNpcGVJbmNsdWRlcy5pbmNsdWRlcygnaW5ncmVkaWVudHMnKSkge1xuICAgICAgICAgIHJlY2lwZUluY2x1ZGVzLnB1c2goJ2luZ3JlZGllbnRzJyk7XG4gICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLFxuICAgICAgICAgICAgeyBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10gfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50UmVxdWVzdHNDb3VudCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5maWx0ZXIoXG4gICAgICAgICAgcmVxdWVzdEZpbHRlcnMsXG4gICAgICAgICAgeyBzaXplOiAyMCwgbnVtYmVyOiBwYWdlIH0sXG4gICAgICAgICAgcmVjaXBlSW5jbHVkZXMsXG4gICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLFxuICAgICAgICAgIHRoaXMubW9kaWZpZWRHdWVzdHMsXG4gICAgICAgICAgdGhpcy5yYW5kb21Nb2RlLFxuICAgICAgICAgIHRoaXMuc29ydFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChyZXN1bHQ6IFJlY2lwZVtdKSA9PiB0aGlzLnByb2Nlc3NSZXN1bHRzKHJlc3VsdCwgcmVxdWVzdEZpbHRlcnMsIHBhZ2UpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0czogUmVjaXBlW10sIHJlcXVlc3RGaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzLCBwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdHNDb3VudC0tO1xuICAgIC8vIEJlY2F1c2UgRmlsdGVyIGlzIGEgdHlwZSwgYXR0cmlidXRlcyBhcmUgYWx3YXlzIGluIHRoZSBzYW1lIG9yZGVyLCBzbyBzdHJpbmdpZnkgd29uJ3QgYmUgZmFsc2UgZm9yIG9iamVjdHMgd2l0aCBzYW1lIGF0dHJpYnV0ZXNcbiAgICAvLyBJZiBmb3Igc29tZSByZWFzb24gZmlsdGVycyBhcmUgZGlmZmVyZW50LCBidXQgdGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgcmVxdWVzdCBvbmdvaW5nLCBkb24ndCBibG9jayB0aGUgY29tcG9uZW50XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHJlcXVlc3RGaWx0ZXJzKSA9PT0gSlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXJzKSB8fCB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50ID09PSAwKSB7XG4gICAgICBpZiAodGhpcy5leGNsdWRlZFJlY2lwZXNJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5maWx0ZXIocmVjaXBlID0+ICF0aGlzLmV4Y2x1ZGVkUmVjaXBlc0lkcy5pbmNsdWRlcyhyZWNpcGUuaWQpKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHlvdSBzcGFtIGNsaWNrIG9uIGZpbHRlcnMsIG11bHRpcGxlIHJlcXVlc3RzIHdpdGggcGFnZSA9PSAxIGNvdWxkIGJlIHNlbnQgZm9yIHRoZSBzYW1lIGZpbHRlcnMgLT4gb25seSBrZWVwIHRoZSBsYXN0IHJlc3VsdFxuICAgICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IHBhZ2UgPT09IDEgPyByZXN1bHRzIDogWy4uLnRoaXMuY3VycmVudFJlY2lwZXMsIC4uLnJlc3VsdHNdO1xuICAgICAgdGhpcy5jdXJyZW50UmVjaXBlcy5mb3JFYWNoKChyOiBSZWNpcGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW9kaWZpZWRHdWVzdHMgJiYgdGhpcy5tb2RpZmllZEd1ZXN0cyA+IDApIHtcbiAgICAgICAgICByLm1vZGlmaWVkR3Vlc3RzID0gdGhpcy5tb2RpZmllZEd1ZXN0cztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vTW9yZVJlY2lwZXMgPSByZXN1bHRzLmxlbmd0aCA9PT0gMDtcbiAgICAgIHJldHVybiBvZih0aGlzLmN1cnJlbnRSZWNpcGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVhbHpEZWJ1ZyhgRmlsdGVyaW5nIGFib3J0ZWQgOiAke0pTT04uc3RyaW5naWZ5KHJlcXVlc3RGaWx0ZXJzKX0gYW5kICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXJzKX0gYXJlIGRpZmZlcmVudGApO1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBSZWNpcGVbXSkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclJlbW92ZWQuZW1pdChmaWx0ZXJOYW1lKTtcbiAgfVxuXG4gIGJ1aWxkRmlsdGVyc0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZmlsdGVyTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyTmFtZXMgPSBbLi4uZmlsdGVyTmFtZXMsIC4uLnRoaXMuZ2V0U2VsZWN0ZWRGaWx0ZXJzKHRoaXMuZmlsdGVycy5jb3N0KSwgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmRpZmZpY3VsdHkpLFxuICAgICAgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLnRpbWUpXTtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzICYmIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSAhPT0gJycpIHtcbiAgICAgIGZpbHRlck5hbWVzID0gW3RoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZV0uY29uY2F0KGZpbHRlck5hbWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlck5hbWVzO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRGaWx0ZXJzKGZpbHRlcnNBcnJheTogUmVjaXBlRmlsdGVyW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFmaWx0ZXJzQXJyYXkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyc0FycmF5LmZpbHRlcihlbCA9PiBlbC52YWx1ZSkubWFwKGVsID0+IGVsLnRleHQpO1xuICB9XG5cbiAgcmVsb2FkUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcubmV4dCh0cnVlKTtcbiAgICB0aGlzLmxhc3RQYWdlID0gMTtcbiAgICB0aGlzLm5vTW9yZVJlY2lwZXMgPSBmYWxzZTtcbiAgICB0aGlzLm5vTW9yZUFydGljbGVzID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IFtdO1xuICAgIHRoaXMuYXJ0aWNsZXMgPSBbXTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkQ29udGVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGlzU2VhcmNoaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuc2VhcmNoICYmIHRoaXMuZmlsdGVycy5zZWFyY2ggIT09ICcnO1xuICB9XG5cbiAgaXNGaWVsZEVtcHR5KHJlY2lwZUZpbHRlcjogUmVjaXBlRmlsdGVyW10pOiBib29sZWFuIHtcbiAgICBpZiAoIXJlY2lwZUZpbHRlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIHJlY2lwZUZpbHRlciBoYXMgYXQgbGVhc3Qgb25lIGZpbHRlciB3aXRoIHZhbHVlLCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gIXJlY2lwZUZpbHRlci5zb21lKChmKSA9PiBmLnZhbHVlKTtcbiAgfVxuXG4gIGlzRmlsdGVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoaW5nKCkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuY29zdCkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMudGltZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICAvLyBBcnRpY2xlcyB3aWxsIGJlIGxvYWRlZCBvbmx5IGlmIGEgZmlsdGVyIGlzIGFwcGxpZWQgb24gcGFja2FnZXNcbiAgLy8gVGhpcyBpcyB0byBhdm9pZCBhcnRpY2xlcyBiZWluZyBsb2FkZWQgaW4gc3BlY2lhbCBwYWdlcyB3aGVyZSBvbmx5IGZpbHRlcnMgb24gcmVjaXBlcyBhcmUgcGFzc2VkIChmYXZvcml0ZXMsIHN1Z2dlc3RlZCwgZXRjLilcbiAgLy8gPT4gUGFja2FnZXMgbWl4aW5nIGFydGljbGVzIHdpdGggcmVjaXBlcyBpcyBub3Qgc3VwcG9ydGVkIHlldFxuICBwcml2YXRlIGxvYWRBcnRpY2xlcyhwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFydGljbGVbXT4ge1xuICAgIGlmICghdGhpcy5jb250ZXh0LmFydGljbGVzSW5DYXRhbG9nRW5hYmxlZCB8fCB0aGlzLm5vTW9yZUFydGljbGVzIHx8ICF0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMucGFja2FnZXMpIHtcbiAgICAgIHJldHVybiBvZigoW10gYXMgQXJ0aWNsZVtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXNTZXJ2aWNlLmFsbCh7XG4gICAgICByZW1vdGVmaWx0ZXI6IHtcbiAgICAgICAgcGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzLFxuICAgICAgICAuLi50aGlzLmZpbHRlcnMuc2VhcmNoID8geyBzZWFyY2g6IHRoaXMuZmlsdGVycy5zZWFyY2ggfSA6IHt9XG4gICAgICB9LFxuICAgICAgcGFnZTogeyBzaXplOiAyMCwgbnVtYmVyOiBwYWdlIH0sXG4gICAgICBzb3J0OiBbJy1kYXRlJ11cbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IERvY3VtZW50Q29sbGVjdGlvbjxBcnRpY2xlPikgPT4ge1xuICAgICAgICB0aGlzLmFydGljbGVzID0gcGFnZSA9PT0gMSA/IHJlc3VsdC5kYXRhIDogWy4uLnRoaXMuYXJ0aWNsZXMsIC4uLnJlc3VsdC5kYXRhXTtcbiAgICAgICAgdGhpcy5ub01vcmVBcnRpY2xlcyA9IHJlc3VsdC5kYXRhLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgZm9ya0pvaW4oW3RoaXMubG9hZFJlY2lwZXNQYWdlKHRoaXMubGFzdFBhZ2UpLCB0aGlzLmxvYWRBcnRpY2xlcyh0aGlzLmxhc3RQYWdlKV0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZy5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RcIj5cbiAgPCEtLSBObyByZXN1bHRzIC0tPlxuICA8ZGl2ICpuZ0lmPVwiIShsb2FkaW5nIHwgYXN5bmMpICYmIGN1cnJlbnRSZWNpcGVzLmxlbmd0aCA9PT0gMCAmJiBhcnRpY2xlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZFwiPlxuICAgIDxuZy1taWFtLWljb24gXG4gICAgICBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9faWNvblwiIFxuICAgICAgW3dpZHRoXT1cIjI3OVwiIFxuICAgICAgW2hlaWdodF09XCIyNDNcIiBcbiAgICAgIFtpY29uTmFtZV09XCJpY29uLk5vUmVjaXBlRm91bmRcIlxuICAgICAgW25nQ2xhc3NdPVwieydpY29uLWZpbHRlcmluZyc6IGlzRmlsdGVyaW5nKCksICdpY29uLW5vdC1maWx0ZXJpbmcnOiAhaXNGaWx0ZXJpbmcoKX1cIj5cbiAgICA8L25nLW1pYW0taWNvbj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNGaWx0ZXJpbmcoKSBlbHNlIG5vdEZpbHRlcmluZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9fdGl0bGUxIGZpbHRlcmluZ1wiPlxuICAgICAgICA8c3BhbiBpMThuPkTDqXNvbMOpLCBhdWN1bmUgcHJvcG9zaXRpb24gdHJvdXbDqWU8L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaGluZygpXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5wb3VyPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPlwie3tmaWx0ZXJzLnNlYXJjaH19XCI8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTJcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5WZXVpbGxleiBtb2RpZmllciBsZXMgdGVybWVzIGRlIHZvdHJlIHJlY2hlcmNoZSBvdSByw6lnbGVyIGxlcyBmaWx0cmVzPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNub3RGaWx0ZXJpbmc+XG4gICAgICA8ZGl2ICpuZ0lmPVwidGhpcy51c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYyBlbHNlIG5vdExvZ2dlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgbm90LWZpbHRlcmluZ1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIHZvdXMgbidhdmV6IHBhcyBlbmNvcmUgZCdpZMOpZXMgcmVwYXMgc2F1dmVnYXJkw6llczwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9nZ2VkPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9fdGl0bGUxIG5vdC1sb2dnZWRcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5Ew6lzb2zDqSwgdm91cyBkZXZleiDDqnRyZSBjb25uZWN0w6kgcG91ciBhY2PDqWRlciBhdSBjb250ZW51IGRlIGNldHRlIHBhZ2UuPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMb2FkZXIgLS0+XG4gIDxkaXYgKm5nSWY9XCJsb2FkaW5nIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19sb2FkZXJcIj5cbiAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICA8ZGl2IGkxOG4+XG4gICAgICBDaGFyZ2VtZW50IGRlcyByw6lzdWx0YXRzLi4uXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fY2FyZHNcIiByb2xlPVwibGlzdFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVjaXBlQ2FyZCBsZXQtcmVjaXBlPSdyZWNpcGUnPlxuICAgICAgPCEtLSBDbGFzc2ljYWwgcmVjaXBlIGNhcmQgLS0+XG4gICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZFxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCIhYWRkUmVjaXBlTW9kZVwiXG4gICAgICAgIFthZGRSZWNpcGVNb2RlXT1cImFkZFJlY2lwZU1vZGVcIlxuICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgW2Rpc3BsYXlWYXJpYW50XT1cImRpc3BsYXlSZWNpcGVWYXJpYW50XCJcbiAgICAgICAgW2hlbHBCdXR0b25BbGxvd2VkXT1cImhlbHBCdXR0b25BbGxvd2VkXCJcbiAgICAgICAgKGFkZFRvTWVhbHNQbGFubmVyKT1cImFkZFRvTWVhbHNQbGFubmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjaXBlIG9mIGN1cnJlbnRSZWNpcGVzOyBsZXQgaXNMYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8IS0tIGlmIHJlY2lwZSBjYXJkIGlzIGxhc3QsIGVuY2Fwc3VsYXRlIHdpdGggbmdNaWFtTG9hZE9uU2Nyb2xsIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgbmdNaWFtTG9hZE9uU2Nyb2xsXG4gICAgICAgICAgW2lzTG9hZGluZ109XCJsb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICAgIG1hcmdpblJvb3Q9XCI2MDBweFwiXG4gICAgICAgICAgKGxvYWRNb3JlKT1cImF1dG9sb2FkQ29udGVudElmTmVjZXNzYXJ5KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY2lwZUNhcmRcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JlY2lwZTpyZWNpcGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cIiFpc0xhc3RcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWNpcGVDYXJkXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyZWNpcGU6cmVjaXBlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEFydGljbGUgY2FyZCAtLT5cbiAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -47,7 +47,7 @@ function RecipeDetailsComponent_div_0_div_2_img_13_Template(rf, ctx) { if (rf &
|
|
|
47
47
|
} if (rf & 2) {
|
|
48
48
|
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
49
49
|
i0.ɵɵproperty("src", ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
50
|
-
i0.ɵɵattribute("
|
|
50
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
51
51
|
} }
|
|
52
52
|
function RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template(rf, ctx) { if (rf & 1) {
|
|
53
53
|
i0.ɵɵelement(0, "youtube-player", 41);
|
|
@@ -923,4 +923,4 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
|
|
|
923
923
|
type: ViewChild,
|
|
924
924
|
args: ['topContainerImg']
|
|
925
925
|
}] }); })();
|
|
926
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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MkI7UUFBM0IsZ0RBQTJCOzt1RkR2UGpCLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsrYkFFVSxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFN0b3JlTG9jYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi8uLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ2luZ3JlZGllbnRzJywgJ3RhZ3MnLCAncmVjaXBlLXN0ZXBzJywgJ3Nwb25zb3JzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZScsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ251bWJlci1vZi1ndWVzdHMnLCAnZGVzY3JpcHRpb24nLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJywgJ3Jlc3RpbmctdGltZScsICdvcmRlci1oaXN0b3J5JywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnLCAnaWNvbi11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXN0ZXBzJzogWydkZXNjcmlwdGlvbicsICdzdGVwLW51bWJlciddLFxuICBzcG9uc29yczogWydsb2dvLXVybCcsICduYW1lJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBndWVzdE51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczogYm9vbGVhbjsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHN0ZXBzT25MZWZ0U2lkZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBkZXRhaWwgaW4gNCBxdWFydGVycyBpbnN0ZWFkIG9mIDIgaGFsdmVzXG4gIEBJbnB1dCgpIGNvb2tpbmdUaW1lQXNQcmltYXJ5SW5mbyA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBjb29raW5nIHRpbWUgbmV4dCB0byB0b3RhbCB0aW1lXG4gIEBJbnB1dCgpIG1vcmVSZWNpcGVzSW1hZ2VVUkw6IHN0cmluZztcbiAgQElucHV0KCkgcHJpY2luZ0d1ZXN0c1RleHQgPSAncGFyLXBlcnNvbm5lJztcbiAgQE91dHB1dCgpIHJlY2lwZUFkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNpcGVFcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVtb3ZlZEluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgc2hvd0FkZG9uID0gZmFsc2U7XG4gIHNob3dTdG9yZVNlbGVjdG9yID0gZmFsc2U7XG4gIGlzUmVjaXBlRmV0Y2hlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcGxheWVyV2lkdGg7XG4gIHBsYXllckhlaWdodDtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzaG93VmlkZW87XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgdGl0bGVJbkhlYWRlciA9IGZhbHNlO1xuICBkaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSBmYWxzZTtcbiAgc3BvbnNvckhhc1N0b3J5dGVsbGluZyA9IGZhbHNlO1xuICB0aXRsZTogSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50O1xuICBhY3RpdmVUYWJJbmRleCA9IDA7XG4gIGluaXRpYWxUYWJJbmRleCA9IDA7XG4gIHBsYXllclZhcnM6IFlULlBsYXllclZhcnMgPSB7XG4gICAgY29udHJvbHM6IDEsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgcmVsOiAwLFxuICAgIHNob3dpbmZvOiAwXG4gIH07XG4gIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uOiBib29sZWFuO1xuICByZWNpcGVEZXRhaWxzT3BlblRpbWVzdGFtcDogbnVtYmVyO1xuICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yQmxvY2tzU2VydmljZTogU3BvbnNvckJsb2NrU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHVibGljIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMTtcbiAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gMTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5zdWJzY3JpYmUoc3RvcmVMb2NhdG9yT3BlbmVkID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3RvcmVTZWxlY3RvciA9IHN0b3JlTG9jYXRvck9wZW5lZDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5waXBlKFxuICAgICAgICBtYXAoKHByb2R1Y3RzTG9hZGluZykgPT4gIXByb2R1Y3RzTG9hZGluZyAmJiAhdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSxcbiAgICAgICkuc3Vic2NyaWJlKChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb24gPSBzaG93O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5uZXdTdG9yZVNlbGVjdGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZldGNoUmVjaXBlKHRoaXMucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5pc1NtYWxsU2NyZWVuJC5zdWJzY3JpYmUoaXNTbWFsbCA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc1NtYWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UucmVjaXBlRGV0YWlsc1RhYkluZGV4JC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVGb290ZXJEaXNwbGF5JCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCxcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5oYXNQZW5kaW5nQWN0aW9ucygpLnN1YnNjcmliZShoYXNBY3Rpb25zID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGhhc0FjdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoaXNQb3NWYWxpZCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb3NWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTsgLy8gd2UgbmVlZCB0byBkZXRlY3QgYSBjaGFuZ2UgdGhhdCBpcyBpbiBhIHN1YnNjcmliZSBhbmQgdGh1cyBhc3luY1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlY2lwZUlkICYmIHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDAgJiYgISghdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKSAmJiB0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpKSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNPcGVuVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHRoaXMuZGlzcGxheVRhZ3MpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmZvcmNlRGlzcGxheVRhZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwc09uTGVmdFNpZGUpIHtcbiAgICAgIHRoaXMuY29va2luZ1RpbWVBc1ByaW1hcnlJbmZvID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VvU2VydmljZS5yZW1vdmVTRU9EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWNpcGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldChpZCwge1xuICAgICAgICBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHNcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnRvdGFsUHJvZHVjdHMkLm5leHQocmVzdWx0LnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRTRU9EYXRhKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSArdGhpcy5ndWVzdE51bWJlciB8fCArcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmdldFByb2R1Y3RzKHRydWUpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2V2aWV3RXZlbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwWW91dHViZVBsYXllcigpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcG9uc29yQmxvY2tzU2VydmljZS5hbGwoe1xuICAgICAgICAgICAgICByZW1vdGVmaWx0ZXI6IHsgJ3Nwb25zb3ItaWQnOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5zcG9uc29yc1swXS5pZCB9LFxuICAgICAgICAgICAgICBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9XG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLnNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSAhIXJlc3VsdC5kYXRhLmxlbmd0aClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlY2lwZUZldGNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuXG4gICAgKTtcbiAgfVxuXG4gIHNldHVwWW91dHViZVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnNob3dWaWRlbykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3cuWVQ/LlBsYXllcikge1xuICAgICAgICAgIHRoaXMucGxheWVyV2lkdGggPSB0aGlzLnRvcENvbnRhaW5lckltZz8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ4LCB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBsaXN0ZW5lciBvbiBzY3JvbGwgc28gdGhlIG1vZGFsIGNhbiBoaWRlIHRoZSBjbG9zZSBpY29uXG4gICAqL1xuICBpbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRlbnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250ZW50ICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIC8vIEZvciBtb3JlIHByZWNpc2lvbiBvbiB0aXRsZSBzY3JvbGwgZGV0ZWN0aW9uLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB1c2VyIHNjcm9sbHMgNSUgb2YgdGhlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IFsuLi5BcnJheSgyMCkua2V5cygpXS5tYXAoeCA9PiB4IC8gMjApO1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHRpdGxlIGVudGVycy9sZWF2ZXMgdGhlIHZpZXdwb3J0XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUaXRsZUluSGVhZGVyKCk7XG4gICAgICB9LCB7IHRocmVzaG9sZCB9KTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRpdGxlSW5IZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUluSGVhZGVyID0gdGhpcy50aXRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gNDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSAhdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0czogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID09PSBndWVzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBndWVzdHM7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVHdWVzdHModGhpcy5ldmVudFRyYWNlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRvbiA9ICF0aGlzLnNob3dBZGRvbjtcbiAgICBpZiAodGhpcy5zaG93QWRkb24pIHtcbiAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICdzcG9uc29yLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9yZGVyQWdhaW4oZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsQ29udGVudEVsbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWlhbS1tb2RhbF9fY29udGVudCcpO1xuICAgIGlmIChtb2RhbENvbnRlbnRFbG0pIHtcbiAgICAgIG1vZGFsQ29udGVudEVsbS5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlOiBFdmVudFRyYWNlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVMYXN0T3JkZXJNb2RhbCgpO1xuICAgIHRoaXMub3JkZXJBZ2FpbihldmVudFRyYWNlKTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuY29udGludWUnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKG9wZW5CYXNrZXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNsb3NlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKG9wZW5CYXNrZXQpO1xuICB9XG5cbiAgb25DbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnBhZ2V2aWV3RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdldmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgJiYgdGhpcy5kaXNwbGF5UHJpY2luZyAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmhhc0FkZGVkQVByb2R1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4ID8gJ2Nvb2tpbmcnIDogJ3Nob3BwaW5nJztcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGByZWNpcGVzLyR7dGhpcy5yZWNpcGVJZCA/PyAwfS8ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKHRoaXMuYWN0aXZlVGFiSW5kZXgpfWA7XG4gIH1cblxuICBjaGVja1BvcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICBgcmVjaXBlLiR7dGhpcy5nZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXgpfS5kaXNwbGF5YCxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH1cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBhY3RpdmVUYWJJbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIhc2hvd0FkZG9uICYmICEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc1wiXG4gIFtjbGFzcy5oaWRkZW5dPVwic2hvd1N0b3JlU2VsZWN0b3JcIj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlXCIgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBtaWFtLXJlY2lwZS1kZXRhaWxzX19sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRhaW5lclwiXG4gICAgICAgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlKSAmJiByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj5cbiAgICA8IS0tIEJBTk5FUiBDT05UQUlORVIgLS0+XG4gICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIFtjbGFzcy5uby1zdXBwbGllcl09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlXCI+XG4gICAgICA8IS0tIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jhbm5lcl9idXR0b25zXCI+XG4gICAgICAgIDwhLS0gVE9QIEJVVFRPTlMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3AtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8IS0tIERFU0tUT1AgQ0xPU0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkZlcm1lclwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL2NoZXZyb24tZG93bi1wcmltYXJ5LnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gT04gVEhFIFJJR0hUIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICAgICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEdVRVNUIENPVU5URVIgLS0+XG4gICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXRcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2d1ZXN0LWNvdW50ZXJcIlxuICAgICAgICAgIFtmbG9hdGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbbWluUmFuZ2VdPVwiMVwiXG4gICAgICAgICAgW2RlYm91bmNlVGltZV09XCIzMDBcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIihyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9uc1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+XG4gICAgICAgICAgPlxuICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQSUNUVVJFIC8gVklERU8gLS0+XG4gICAgICA8aW1nXG4gICAgICAgIFthdHRyLmFsdF09XCInUGhvdG8gZGUgbGEgcmVjZXR0ZSAnICsgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddXCJcbiAgICAgICAgKm5nSWY9XCIhc2hvd1ZpZGVvXCJcbiAgICAgICAgW3NyY109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BpY3R1cmUtaW1nXCI+XG4gICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICBbdmlkZW9JZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUudmlkZW9JZFwiXG4gICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgW3BsYXllclZhcnNdPVwicGxheWVyVmFyc1wiXG4gICAgICAgIHRpdGxlPVwiVmlkw6lvIGRlIGxhIHJlY2V0dGVcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Nwb25zb3JcIj5cbiAgICAgIDxuZy1taWFtLWFkZG9uLWxpbmtcbiAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCB8fCByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaW5mb3JtYXRpb25hbFNlbnRlbmNlXCJcbiAgICAgICAgW2hhc1N0b3J5dGVsbGluZ109XCJzcG9uc29ySGFzU3Rvcnl0ZWxsaW5nXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICAgICAgPGhyIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvci1zZXBhcmF0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExBU1QgT1JERVIgQkFER0UgLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyLWJhZGdlIG1pYW0tZHMtYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJBZmZpY2hlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUgcHLDqWPDqWRlbnRlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2staWNvblwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRUNJUEUgVElUTEUgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUteGwgd2VpZ2h0LXh4bFwiIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjFcIj5cbiAgICAgICAge3sgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddIH19XG4gICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gUkVDSVBFIEFDVElPTlMgKExJS0UgLyBDTE9TRSBNT0RBTCktLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIj5cbiAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgJiYgIWNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gQ0xPU0UgTU9EQUwgQlVUVE9OIChERVNLVE9QKSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGlkZWFibGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBnaG9zdFwiIGFyaWEtbGFiZWw9XCJGZXJtZXJcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLWN0YSBtaWFtLWRzLWJ1dHRvbiBzZWNvbmRhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9yZGVyQWdhaW4oZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8XG4gICAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkgfCBhc3luYyk7IGVsc2Ugc2hvd0ljb25cIlxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0ZXIgdG91cyBsZXMgaW5ncsOpZGllbnRzIGF1IHBhbmllclwiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0IGVuIGNvdXJzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcIlxuICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbZmV0Y2hQcmljaW5nT25TY3JvbGxdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmljZSgpICYmIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVJbmdyZWRpZW50RnJvbUJhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldCB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEoKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIlxuICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gaTE4biBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlLWluLWJhc2tldC1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS14c1wiPmRhbnMgbW9uIHBhbmllcjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy1taWFtLXJlY2lwZS1hZGRvblxuICAqbmdJZj1cInNob3dBZGRvblwiIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48IS0tIFJFUExBQ0UgSVRFTSBQQUdFIC0tPlxuPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlXCJcbiAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICBbYmFza2V0RW50cnldPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmJhc2tldEVudHJ5XCJcbiAgW2luZ3JlZGllbnRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmluZ3JlZGllbnRcIlxuICBbaWdub3JlU2VsZWN0ZWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmlnbm9yZVNlbGVjdGVkXCJcbiAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgKHNlbGVjdGVkKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlID0gbnVsbDtcIlxuICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4+XG48L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuPCEtLSBMQVNUIE9SREVSIE1PREFMIC0tPlxuPG5nLW1pYW0tbGFzdC1vcmRlci1tb2RhbFxuICAqbmdJZj1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtkaXNwbGF5XT1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtpbkJhc2tldF09XCIhIXJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0XCJcbiAgW29yZGVySGlzdG9yeURhdGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gIChjbG9zZSk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCJcbiAgKHN1Ym1pdCk9XCJjbG9zZUxhc3RPcmRlck1vZGFsKGV2ZW50VHJhY2UpXCI+XG48L25nLW1pYW0tbGFzdC1vcmRlci1tb2RhbD5cbiJdfQ==
|
|
926
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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MkI7UUFBM0IsZ0RBQTJCOzt1RkR4UGpCLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsrYkFFVSxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFN0b3JlTG9jYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi8uLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ2luZ3JlZGllbnRzJywgJ3RhZ3MnLCAncmVjaXBlLXN0ZXBzJywgJ3Nwb25zb3JzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZScsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ251bWJlci1vZi1ndWVzdHMnLCAnZGVzY3JpcHRpb24nLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJywgJ3Jlc3RpbmctdGltZScsICdvcmRlci1oaXN0b3J5JywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnLCAnaWNvbi11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXN0ZXBzJzogWydkZXNjcmlwdGlvbicsICdzdGVwLW51bWJlciddLFxuICBzcG9uc29yczogWydsb2dvLXVybCcsICduYW1lJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBndWVzdE51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczogYm9vbGVhbjsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHN0ZXBzT25MZWZ0U2lkZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBkZXRhaWwgaW4gNCBxdWFydGVycyBpbnN0ZWFkIG9mIDIgaGFsdmVzXG4gIEBJbnB1dCgpIGNvb2tpbmdUaW1lQXNQcmltYXJ5SW5mbyA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBjb29raW5nIHRpbWUgbmV4dCB0byB0b3RhbCB0aW1lXG4gIEBJbnB1dCgpIG1vcmVSZWNpcGVzSW1hZ2VVUkw6IHN0cmluZztcbiAgQElucHV0KCkgcHJpY2luZ0d1ZXN0c1RleHQgPSAncGFyLXBlcnNvbm5lJztcbiAgQE91dHB1dCgpIHJlY2lwZUFkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNpcGVFcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVtb3ZlZEluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgc2hvd0FkZG9uID0gZmFsc2U7XG4gIHNob3dTdG9yZVNlbGVjdG9yID0gZmFsc2U7XG4gIGlzUmVjaXBlRmV0Y2hlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcGxheWVyV2lkdGg7XG4gIHBsYXllckhlaWdodDtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzaG93VmlkZW87XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgdGl0bGVJbkhlYWRlciA9IGZhbHNlO1xuICBkaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSBmYWxzZTtcbiAgc3BvbnNvckhhc1N0b3J5dGVsbGluZyA9IGZhbHNlO1xuICB0aXRsZTogSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50O1xuICBhY3RpdmVUYWJJbmRleCA9IDA7XG4gIGluaXRpYWxUYWJJbmRleCA9IDA7XG4gIHBsYXllclZhcnM6IFlULlBsYXllclZhcnMgPSB7XG4gICAgY29udHJvbHM6IDEsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgcmVsOiAwLFxuICAgIHNob3dpbmZvOiAwXG4gIH07XG4gIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uOiBib29sZWFuO1xuICByZWNpcGVEZXRhaWxzT3BlblRpbWVzdGFtcDogbnVtYmVyO1xuICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yQmxvY2tzU2VydmljZTogU3BvbnNvckJsb2NrU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHVibGljIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMTtcbiAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gMTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5zdWJzY3JpYmUoc3RvcmVMb2NhdG9yT3BlbmVkID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3RvcmVTZWxlY3RvciA9IHN0b3JlTG9jYXRvck9wZW5lZDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5waXBlKFxuICAgICAgICBtYXAoKHByb2R1Y3RzTG9hZGluZykgPT4gIXByb2R1Y3RzTG9hZGluZyAmJiAhdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSxcbiAgICAgICkuc3Vic2NyaWJlKChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb24gPSBzaG93O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5uZXdTdG9yZVNlbGVjdGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZldGNoUmVjaXBlKHRoaXMucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5pc1NtYWxsU2NyZWVuJC5zdWJzY3JpYmUoaXNTbWFsbCA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc1NtYWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UucmVjaXBlRGV0YWlsc1RhYkluZGV4JC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVGb290ZXJEaXNwbGF5JCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCxcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5oYXNQZW5kaW5nQWN0aW9ucygpLnN1YnNjcmliZShoYXNBY3Rpb25zID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGhhc0FjdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoaXNQb3NWYWxpZCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb3NWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTsgLy8gd2UgbmVlZCB0byBkZXRlY3QgYSBjaGFuZ2UgdGhhdCBpcyBpbiBhIHN1YnNjcmliZSBhbmQgdGh1cyBhc3luY1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlY2lwZUlkICYmIHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDAgJiYgISghdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKSAmJiB0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpKSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNPcGVuVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHRoaXMuZGlzcGxheVRhZ3MpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmZvcmNlRGlzcGxheVRhZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwc09uTGVmdFNpZGUpIHtcbiAgICAgIHRoaXMuY29va2luZ1RpbWVBc1ByaW1hcnlJbmZvID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VvU2VydmljZS5yZW1vdmVTRU9EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWNpcGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldChpZCwge1xuICAgICAgICBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHNcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnRvdGFsUHJvZHVjdHMkLm5leHQocmVzdWx0LnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRTRU9EYXRhKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSArdGhpcy5ndWVzdE51bWJlciB8fCArcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmdldFByb2R1Y3RzKHRydWUpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2V2aWV3RXZlbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwWW91dHViZVBsYXllcigpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcG9uc29yQmxvY2tzU2VydmljZS5hbGwoe1xuICAgICAgICAgICAgICByZW1vdGVmaWx0ZXI6IHsgJ3Nwb25zb3ItaWQnOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5zcG9uc29yc1swXS5pZCB9LFxuICAgICAgICAgICAgICBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9XG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLnNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSAhIXJlc3VsdC5kYXRhLmxlbmd0aClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlY2lwZUZldGNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuXG4gICAgKTtcbiAgfVxuXG4gIHNldHVwWW91dHViZVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnNob3dWaWRlbykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3cuWVQ/LlBsYXllcikge1xuICAgICAgICAgIHRoaXMucGxheWVyV2lkdGggPSB0aGlzLnRvcENvbnRhaW5lckltZz8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ4LCB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBsaXN0ZW5lciBvbiBzY3JvbGwgc28gdGhlIG1vZGFsIGNhbiBoaWRlIHRoZSBjbG9zZSBpY29uXG4gICAqL1xuICBpbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRlbnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250ZW50ICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIC8vIEZvciBtb3JlIHByZWNpc2lvbiBvbiB0aXRsZSBzY3JvbGwgZGV0ZWN0aW9uLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB1c2VyIHNjcm9sbHMgNSUgb2YgdGhlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IFsuLi5BcnJheSgyMCkua2V5cygpXS5tYXAoeCA9PiB4IC8gMjApO1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHRpdGxlIGVudGVycy9sZWF2ZXMgdGhlIHZpZXdwb3J0XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUaXRsZUluSGVhZGVyKCk7XG4gICAgICB9LCB7IHRocmVzaG9sZCB9KTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRpdGxlSW5IZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUluSGVhZGVyID0gdGhpcy50aXRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gNDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSAhdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0czogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID09PSBndWVzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBndWVzdHM7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVHdWVzdHModGhpcy5ldmVudFRyYWNlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRvbiA9ICF0aGlzLnNob3dBZGRvbjtcbiAgICBpZiAodGhpcy5zaG93QWRkb24pIHtcbiAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICdzcG9uc29yLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9yZGVyQWdhaW4oZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsQ29udGVudEVsbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWlhbS1tb2RhbF9fY29udGVudCcpO1xuICAgIGlmIChtb2RhbENvbnRlbnRFbG0pIHtcbiAgICAgIG1vZGFsQ29udGVudEVsbS5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlOiBFdmVudFRyYWNlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVMYXN0T3JkZXJNb2RhbCgpO1xuICAgIHRoaXMub3JkZXJBZ2FpbihldmVudFRyYWNlKTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuY29udGludWUnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKG9wZW5CYXNrZXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNsb3NlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKG9wZW5CYXNrZXQpO1xuICB9XG5cbiAgb25DbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnBhZ2V2aWV3RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdldmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgJiYgdGhpcy5kaXNwbGF5UHJpY2luZyAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmhhc0FkZGVkQVByb2R1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4ID8gJ2Nvb2tpbmcnIDogJ3Nob3BwaW5nJztcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGByZWNpcGVzLyR7dGhpcy5yZWNpcGVJZCA/PyAwfS8ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKHRoaXMuYWN0aXZlVGFiSW5kZXgpfWA7XG4gIH1cblxuICBjaGVja1BvcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICBgcmVjaXBlLiR7dGhpcy5nZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXgpfS5kaXNwbGF5YCxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH1cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBhY3RpdmVUYWJJbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIhc2hvd0FkZG9uICYmICEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc1wiXG4gIFtjbGFzcy5oaWRkZW5dPVwic2hvd1N0b3JlU2VsZWN0b3JcIj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlXCIgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBtaWFtLXJlY2lwZS1kZXRhaWxzX19sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRhaW5lclwiXG4gICAgICAgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlKSAmJiByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj5cbiAgICA8IS0tIEJBTk5FUiBDT05UQUlORVIgLS0+XG4gICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIFtjbGFzcy5uby1zdXBwbGllcl09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlXCI+XG4gICAgICA8IS0tIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jhbm5lcl9idXR0b25zXCI+XG4gICAgICAgIDwhLS0gVE9QIEJVVFRPTlMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3AtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8IS0tIERFU0tUT1AgQ0xPU0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkZlcm1lclwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL2NoZXZyb24tZG93bi1wcmltYXJ5LnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gT04gVEhFIFJJR0hUIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICAgICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEdVRVNUIENPVU5URVIgLS0+XG4gICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXRcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2d1ZXN0LWNvdW50ZXJcIlxuICAgICAgICAgIFtmbG9hdGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbbWluUmFuZ2VdPVwiMVwiXG4gICAgICAgICAgW2RlYm91bmNlVGltZV09XCIzMDBcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIihyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9uc1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+XG4gICAgICAgICAgPlxuICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQSUNUVVJFIC8gVklERU8gLS0+XG4gICAgICA8aW1nXG4gICAgICAgIFthdHRyLmFsdF09XCJcIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgKm5nSWY9XCIhc2hvd1ZpZGVvXCJcbiAgICAgICAgW3NyY109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BpY3R1cmUtaW1nXCI+XG4gICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICBbdmlkZW9JZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUudmlkZW9JZFwiXG4gICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgW3BsYXllclZhcnNdPVwicGxheWVyVmFyc1wiXG4gICAgICAgIHRpdGxlPVwiVmlkw6lvIGRlIGxhIHJlY2V0dGVcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Nwb25zb3JcIj5cbiAgICAgIDxuZy1taWFtLWFkZG9uLWxpbmtcbiAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCB8fCByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaW5mb3JtYXRpb25hbFNlbnRlbmNlXCJcbiAgICAgICAgW2hhc1N0b3J5dGVsbGluZ109XCJzcG9uc29ySGFzU3Rvcnl0ZWxsaW5nXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICAgICAgPGhyIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvci1zZXBhcmF0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExBU1QgT1JERVIgQkFER0UgLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyLWJhZGdlIG1pYW0tZHMtYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJBZmZpY2hlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUgcHLDqWPDqWRlbnRlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2staWNvblwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRUNJUEUgVElUTEUgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUteGwgd2VpZ2h0LXh4bFwiIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjFcIj5cbiAgICAgICAge3sgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddIH19XG4gICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gUkVDSVBFIEFDVElPTlMgKExJS0UgLyBDTE9TRSBNT0RBTCktLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIj5cbiAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgJiYgIWNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gQ0xPU0UgTU9EQUwgQlVUVE9OIChERVNLVE9QKSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGlkZWFibGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBnaG9zdFwiIGFyaWEtbGFiZWw9XCJGZXJtZXJcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLWN0YSBtaWFtLWRzLWJ1dHRvbiBzZWNvbmRhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9yZGVyQWdhaW4oZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8XG4gICAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkgfCBhc3luYyk7IGVsc2Ugc2hvd0ljb25cIlxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0ZXIgdG91cyBsZXMgaW5ncsOpZGllbnRzIGF1IHBhbmllclwiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0IGVuIGNvdXJzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcIlxuICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbZmV0Y2hQcmljaW5nT25TY3JvbGxdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmljZSgpICYmIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVJbmdyZWRpZW50RnJvbUJhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldCB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEoKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIlxuICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gaTE4biBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlLWluLWJhc2tldC1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS14c1wiPmRhbnMgbW9uIHBhbmllcjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy1taWFtLXJlY2lwZS1hZGRvblxuICAqbmdJZj1cInNob3dBZGRvblwiIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48IS0tIFJFUExBQ0UgSVRFTSBQQUdFIC0tPlxuPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlXCJcbiAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICBbYmFza2V0RW50cnldPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmJhc2tldEVudHJ5XCJcbiAgW2luZ3JlZGllbnRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmluZ3JlZGllbnRcIlxuICBbaWdub3JlU2VsZWN0ZWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmlnbm9yZVNlbGVjdGVkXCJcbiAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgKHNlbGVjdGVkKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlID0gbnVsbDtcIlxuICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4+XG48L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuPCEtLSBMQVNUIE9SREVSIE1PREFMIC0tPlxuPG5nLW1pYW0tbGFzdC1vcmRlci1tb2RhbFxuICAqbmdJZj1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtkaXNwbGF5XT1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtpbkJhc2tldF09XCIhIXJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0XCJcbiAgW29yZGVySGlzdG9yeURhdGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gIChjbG9zZSk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCJcbiAgKHN1Ym1pdCk9XCJjbG9zZUxhc3RPcmRlck1vZGFsKGV2ZW50VHJhY2UpXCI+XG48L25nLW1pYW0tbGFzdC1vcmRlci1tb2RhbD5cbiJdfQ==
|