barsa-sap-ui 1.0.288 → 1.0.289
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +20 -8
- package/esm2020/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +2 -2
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +3 -3
- package/esm2020/lib/models/grid-data-provider.mjs +4 -2
- package/esm2020/lib/report-view-renderer.directive.mjs +5 -2
- package/esm2020/lib/sap-ui-report-base.component.mjs +6 -4
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +3 -3
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +3 -3
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +3 -3
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +5 -2
- package/fesm2015/barsa-sap-ui.mjs +52 -29
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +51 -29
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +5 -3
- package/lib/report-view-renderer.directive.d.ts +2 -1
- package/lib/sap-ui-report-base.component.d.ts +4 -3
- package/package.json +1 -1
|
@@ -250,10 +250,10 @@ export class UiUlvMainUiComponent extends BaseComponent {
|
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
UiUlvMainUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiUlvMainUiComponent, deps: [{ token: i1.DialogService }, { token: i2.UlvMainService }, { token: i0.ElementRef }, { token: i3.Router }, { token: i2.PortalService }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityService }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
|
|
253
|
-
UiUlvMainUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: { context: "context", isReportPage: "isReportPage", inDialog: "inDialog", isMultiSelect: "isMultiSelect", layoutInfo: "layoutInfo", fullscreen: "fullscreen" }, host: { properties: { "class.control-readonly": "this.readonly", "class.control-disabled": "this.disable", "class.margin-ulv": "this.marginUlv" } }, providers: [UlvMainService], viewQueries: [{ propertyName: "searchPanelComponent", first: true, predicate: SearchPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-ulv-main\n [attr.isReportPage]=\"isReportPage\"\n [viewerControl]=\"viewer$ | async\"\n [loading]=\"(mask$ | async) === true\"\n [viewerLoading]=\"(viwerMask$ | async) === true\"\n [isReportPage]=\"isReportPage\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [title]=\"title\"\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\n [context]=\"context\"\n [contentDensity]=\"contentDensity$ | async\"\n (close)=\"onClose()\"\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\n (openManageFilters)=\"onOpenManageFilters()\"\n (collapsedChange)=\"onCollapsedChange($event)\"\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\n (filterSave)=\"onFilterSave()\"\n (filterSaveAs)=\"onFilterSaveAs()\"\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\n (manageFilters)=\"onManageFilters()\"\n (clearSearch)=\"onClearSearch()\"\n (search)=\"onSearch()\"\n (pageChange)=\"onPageChange($event)\"\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\n>\n</bsu-barsa-ulv-main>\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"], dependencies: [{ kind: "component", type: i4.BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: ["viewerControl", "loading", "viewerLoading", "isReportPage", "deviceSize", "title", "searchPanelUi", "breadCrumbs", "allSearchPanelSettings", "isAnonymous", "rtl", "selectedSearchPanelSettings", "searchPanelMoChanged", "selectedSearchPanelSettingsId", "hideSearchPanel", "pagingSetting", "contentDensity", "context"], outputs: ["close", "searchPanelMoChange", "openManageFilters", "collapsedChange", "hideSearchPanelClick", "filterSave", "filterSaveAs", "pageChange", "showFilterFieldsSetting", "manageFilters", "clearSearch", "search", "selectSearchPanelSettings"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
253
|
+
UiUlvMainUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: { context: "context", isReportPage: "isReportPage", inDialog: "inDialog", isMultiSelect: "isMultiSelect", layoutInfo: "layoutInfo", fullscreen: "fullscreen" }, host: { properties: { "class.control-readonly": "this.readonly", "class.control-disabled": "this.disable", "class.margin-ulv": "this.marginUlv" } }, providers: [UlvMainService], viewQueries: [{ propertyName: "searchPanelComponent", first: true, predicate: SearchPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-ulv-main\r\n [attr.isReportPage]=\"isReportPage\"\r\n [viewerControl]=\"viewer$ | async\"\r\n [loading]=\"(mask$ | async) === true\"\r\n [viewerLoading]=\"(viwerMask$ | async) === true\"\r\n [isReportPage]=\"isReportPage\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [title]=\"title\"\r\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\r\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\r\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\r\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\r\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\r\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\r\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\r\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\r\n [context]=\"context\"\r\n [contentDensity]=\"contentDensity$ | async\"\r\n (close)=\"onClose()\"\r\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\r\n (openManageFilters)=\"onOpenManageFilters()\"\r\n (collapsedChange)=\"onCollapsedChange($event)\"\r\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\r\n (filterSave)=\"onFilterSave()\"\r\n (filterSaveAs)=\"onFilterSaveAs()\"\r\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\r\n (manageFilters)=\"onManageFilters()\"\r\n (clearSearch)=\"onClearSearch()\"\r\n (search)=\"onSearch()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\r\n>\r\n</bsu-barsa-ulv-main>\r\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"], dependencies: [{ kind: "component", type: i4.BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: ["viewerControl", "loading", "viewerLoading", "isReportPage", "deviceSize", "title", "searchPanelUi", "breadCrumbs", "allSearchPanelSettings", "isAnonymous", "rtl", "selectedSearchPanelSettings", "searchPanelMoChanged", "selectedSearchPanelSettingsId", "hideSearchPanel", "pagingSetting", "contentDensity", "context"], outputs: ["close", "searchPanelMoChange", "openManageFilters", "collapsedChange", "hideSearchPanelClick", "filterSave", "filterSaveAs", "pageChange", "showFilterFieldsSetting", "manageFilters", "clearSearch", "search", "selectSearchPanelSettings"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
254
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiUlvMainUiComponent, decorators: [{
|
|
255
255
|
type: Component,
|
|
256
|
-
args: [{ selector: 'bsu-ui-ulv-main-ui', providers: [UlvMainService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-ulv-main\n [attr.isReportPage]=\"isReportPage\"\n [viewerControl]=\"viewer$ | async\"\n [loading]=\"(mask$ | async) === true\"\n [viewerLoading]=\"(viwerMask$ | async) === true\"\n [isReportPage]=\"isReportPage\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [title]=\"title\"\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\n [context]=\"context\"\n [contentDensity]=\"contentDensity$ | async\"\n (close)=\"onClose()\"\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\n (openManageFilters)=\"onOpenManageFilters()\"\n (collapsedChange)=\"onCollapsedChange($event)\"\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\n (filterSave)=\"onFilterSave()\"\n (filterSaveAs)=\"onFilterSaveAs()\"\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\n (manageFilters)=\"onManageFilters()\"\n (clearSearch)=\"onClearSearch()\"\n (search)=\"onSearch()\"\n (pageChange)=\"onPageChange($event)\"\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\n>\n</bsu-barsa-ulv-main>\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"] }]
|
|
256
|
+
args: [{ selector: 'bsu-ui-ulv-main-ui', providers: [UlvMainService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-ulv-main\r\n [attr.isReportPage]=\"isReportPage\"\r\n [viewerControl]=\"viewer$ | async\"\r\n [loading]=\"(mask$ | async) === true\"\r\n [viewerLoading]=\"(viwerMask$ | async) === true\"\r\n [isReportPage]=\"isReportPage\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [title]=\"title\"\r\n [searchPanelUi]=\"(searchPanelUi$ | async)!!\"\r\n [breadCrumbs]=\"(breadCrumbs$ | async)!!\"\r\n [allSearchPanelSettings]=\"(allSearchPanelSettings$ | async)!!\"\r\n [isAnonymous]=\"(isAnonymous$ | async)!!\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [selectedSearchPanelSettings]=\"(selectedSearchPanelSettings$ | async)!!\"\r\n [searchPanelMoChanged]=\"(searchPanelMoChanged$ | async)!!\"\r\n [selectedSearchPanelSettingsId]=\"(selectedSearchPanelSettingsId$ | async)!!\"\r\n [hideSearchPanel]=\"(hideSearchPanel$ | async)!!\"\r\n [pagingSetting]=\"(pagingSetting$ | async)!!\"\r\n [context]=\"context\"\r\n [contentDensity]=\"contentDensity$ | async\"\r\n (close)=\"onClose()\"\r\n (searchPanelMoChange)=\"onSearchPanelMoChanged()\"\r\n (openManageFilters)=\"onOpenManageFilters()\"\r\n (collapsedChange)=\"onCollapsedChange($event)\"\r\n (hideSearchPanelClick)=\"onHideSearchPanelClick()\"\r\n (filterSave)=\"onFilterSave()\"\r\n (filterSaveAs)=\"onFilterSaveAs()\"\r\n (showFilterFieldsSetting)=\"onShowFilterFieldsSetting()\"\r\n (manageFilters)=\"onManageFilters()\"\r\n (clearSearch)=\"onClearSearch()\"\r\n (search)=\"onSearch()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (selectSearchPanelSettings)=\"onSelectSearchPanelSettings($event)\"\r\n>\r\n</bsu-barsa-ulv-main>\r\n", styles: [":host{width:100%;height:100%;display:flex;flex-direction:column;cursor:default}:host ::ng-deep bsu-barsa-ulv-main[isReportPage=true] bsu-barsa-asp-viewer{height:100vh!important}.margin-ulv{margin-bottom:.25rem;margin-top:.1875rem}\n"] }]
|
|
257
257
|
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.UlvMainService }, { type: i0.ElementRef }, { type: i3.Router }, { type: i2.PortalService }, { type: i0.ChangeDetectorRef }, { type: i1.ContentDensityService }, { type: i2.BreadcrumbService }]; }, propDecorators: { context: [{
|
|
258
258
|
type: Input
|
|
259
259
|
}], isReportPage: [{
|
|
@@ -279,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
279
279
|
}], fullscreen: [{
|
|
280
280
|
type: Input
|
|
281
281
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRakIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7OztBQVN6SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQWlEbkQsWUFDWSxjQUE2QixFQUM3QixlQUErQixFQUNoQyxFQUFjLEVBQ2IsT0FBZSxFQUNmLGNBQTZCLEVBQzdCLElBQXVCLEVBQy9CLHFCQUE0QyxFQUM1QyxpQkFBb0M7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFUQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3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QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDSixTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFFM0Isb0JBQW9CO3NCQUR2QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFPbEIsVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIFVsdk1haW5TZXJ2aWNlLFxuICAgIFBhZ2luZ1NldHRpbmcsXG4gICAgUG9ydGFsU2VydmljZSxcbiAgICBTZWFyY2hQYW5lbFNldHRpbmdzLFxuICAgIEJyZWFkQ3J1bWJJbmZvLFxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIENvbHVtbkluZm9UeXBlLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbmltcG9ydCB7IE1hbmFnZUZpbHRlcnNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9tYW5hZ2UtZmlsdGVycy1yZXBvcnQvbWFuYWdlLWZpbHRlcnMtcmVwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1wYW5lbC9zZWFyY2gtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoRmllbGRzTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS11bHYtbWFpbi11aScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXVsdi1tYWluLXVpLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS11bHYtbWFpbi11aS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1Vsdk1haW5TZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVVsdk1haW5VaUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSBpc1JlcG9ydFBhZ2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBsYXlvdXRJbmZvOiBhbnk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRyb2wtcmVhZG9ubHknKSByZWFkb25seTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRyb2wtZGlzYWJsZWQnKSBkaXNhYmxlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWFyZ2luLXVsdicpIG1hcmdpblVsdjtcbiAgICBAVmlld0NoaWxkKFNlYXJjaFBhbmVsQ29tcG9uZW50KVxuICAgIHNldCBzZWFyY2hQYW5lbENvbXBvbmVudCh2YWwpIHtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQYW5lbExvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgQElucHV0KCkgc2V0IGZ1bGxzY3JlZW4odmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldEZ1bGxzY3JlZW4odmFsKTtcbiAgICB9XG4gICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzOiBTZWFyY2hQYW5lbFNldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAgIGZpcnN0QXBwbHlBdXRvbWF0aWNhbGx5ID0gdHJ1ZTtcbiAgICBtYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB2aXdlck1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHZpZXdlciQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBwYWdpbmdTZXR0aW5nJDogT2JzZXJ2YWJsZTxQYWdpbmdTZXR0aW5nIHwgbnVsbD47XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcbiAgICBzZWFyY2hQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGhpZGVTZWFyY2hQYW5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXBvcnRJZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBzZWFyY2hQYW5lbE1vQ2hhbmdlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQ6IE9ic2VydmFibGU8U2VhcmNoUGFuZWxTZXR0aW5nc1tdPjtcbiAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkOiBPYnNlcnZhYmxlPFNlYXJjaFBhbmVsU2V0dGluZ3MgfCB1bmRlZmluZWQ+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgYnJlYWRDcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xuICAgIHNlYXJjaFBhbmVsTG9hZGVkOiBib29sZWFuO1xuICAgIGlzQW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGhhc1NlYXJjaFBhbmVsOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgIG1pbldpZHRoOiAnNTByZW0nLFxuICAgICAgICBib2R5TWluSGVpZ2h0OiAnY2FsYyg1MHZoIC0gODhweCknXG4gICAgfTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBjb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgX2JyYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xuICAgICAgICB0aGlzLmJyZWFkQ3J1bWJzJCA9IF9icmFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0SW5EaWFsb2codGhpcy5pbkRpYWxvZyk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldElzTXVsdGlTZWxlY3QodGhpcy5pc011bHRpU2VsZWN0KTtcbiAgICAgICAgLy8gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAvLyAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGlmIChcbiAgICAgICAgLy8gICAgICAgICAgICAgZS50YXJnZXQgJiZcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50ICE9PSBlLnRhcmdldCAmJlxuICAgICAgICAvLyAgICAgICAgICAgICAhdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxuICAgICAgICAvLyAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVxuICAgICAgICAvLyAgICAgICAgICkge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRJbmxpbmVFZGl0KGZhbHNlKTtcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUoKTtcbiAgICAgICAgdGhpcy5tYXJnaW5VbHYgPSAhdGhpcy5pc1JlcG9ydFBhZ2U7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0LlNldHRpbmcuU2VhcmNoUGFuZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUGFuZWxMb2FkZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNBbm9ueW1vdXMkID0gdGhpcy5fcG9ydGFsU2VydmljZS5pc0Fub255bW91cyQ7XG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaFBhbmVsJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbCQ7XG5cbiAgICAgICAgdGhpcy50aXRsZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLlRpdGxlJywgJycpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRDb250ZXh0KHRoaXMuY29udGV4dCk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldExheW91dEluZm8odGhpcy5sYXlvdXRJbmZvKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UubG9hZFNlYXJjaFBhbmVsU2V0dGluZ3MoKTtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1hc2skO1xuICAgICAgICB0aGlzLnZpd2VyTWFzayQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aXdlck1hc2skO1xuICAgICAgICB0aGlzLnBhZ2luZ1NldHRpbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnaW5nU2V0dGluZyQ7XG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxNb0NoYW5nZWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQkO1xuICAgICAgICB0aGlzLmhhc1NlYXJjaFBhbmVsID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxVaSAhPT0gbnVsbDtcbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbFVpJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsVWkkO1xuICAgICAgICB0aGlzLnJlcG9ydElkJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkJDtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVhZG9ubHkkLnN1YnNjcmliZSgocmVhZG9ubHkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByZWFkb25seTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmVuYWJsZSQuc3Vic2NyaWJlKChlbmFibGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZSA9ICFlbmFibGU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LlRpdGxlID09PSBiPy5UaXRsZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFwcGx5U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvZ2dsZUhpZGVTZWFyY2hwYW5lbChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LkhpZGVTZWFyY2hQYW5lbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy52aWV3ZXIkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uudmlld2VyJDtcbiAgICAgICAgdGhpcy5hbGxTZWFyY2hQYW5lbFNldHRpbmdzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJDtcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycvaG9tZSddKTtcbiAgICB9XG4gICAgb25TZWFyY2hQYW5lbE1vQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0U2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XG4gICAgfVxuICAgIG9uUGFnZUNoYW5nZShlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnZUNoYW5nZWQoZSk7XG4gICAgfVxuICAgIG9uT3Blbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBiYWNrZHJvcENsaWNrQ2xvc2VhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIGZvY3VzVHJhcHBlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbGxhcHNlZENoYW5nZShjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKGNvbGxhcHNlZCk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKHRydWUpO1xuICAgIH1cbiAgICBvbkhpZGVTZWFyY2hQYW5lbENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJTYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zYXZlRmlsdGVyKCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJTYXZlQXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wZW5TYXZlQXNGaWx0ZXIoKTtcbiAgICB9XG5cbiAgICBvblNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3MoKTtcbiAgICB9XG5cbiAgICBvbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wZW5TZWFyY2hGaWx0ZXJzTWFuYWdlKCk7XG4gICAgfVxuXG4gICAgb25DbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuY2xlYXJTZWFyY2goKTtcbiAgICB9XG5cbiAgICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuY2hhbmdlU2VsZWN0ZWRTZWFyY2hQYW5lbChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAoQmFyc2FBcGkuQ29tbW9uLlV0aWwuUmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGlzdDogeyBpOiBhbnk7IG46IGFueTsgYTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCBoID0gZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsaXN0W2ldID0ge1xuICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgbjogaFtpXSxcbiAgICAgICAgICAgICAgICBhOiBoW2ldLmlubmVySFRNTFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBsaXN0ID0gbGlzdC5yZXZlcnNlKCk7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgIGNvbnN0IHQgPSBgLmZkLXRhYmxlX19jZWxsLS1hY3RpdmFibGU6YWN0aXZlICosLmZkLXRhYmxlX19yb3ctLWFjdGl2YWJsZS5pcy1hY3RpdmUgKiwuZmQtdGFibGVfX3Jvdy0tYWN0aXZhYmxlOmFjdGl2ZSAqe2NvbG9yOnZhcigtLXNhcExpc3RfQWN0aXZlX1RleHRDb2xvcikhaW1wb3J0YW50fWA7XG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgICAgICAgY29uc3QgZiA9IGxpc3QuZmlsdGVyKChjKSA9PiBjLmEuaW5kZXhPZih0KSA+PSAwKTtcbiAgICAgICAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLlV0aWwuUmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgZlswXS5uLmlubmVySFRNTCA9IGZbMF0uYS5zbGljZSgwLCAxMDA1OCkgKyBmWzBdLmEuc2xpY2UoMTAwNTggKyB0Lmxlbmd0aCwgZlswXS5hLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0U2VhcmNoUGFuZWxNb0NoYW5nZWQoY2hhbmdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZHNTZXR0aW5nID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZ2V0U2VhcmNoUGFuZWxGaWVsZHNTZXR0aW5nKCk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMjVyZW0nLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZpZWxkczogWy4uLmZpZWxkc1NldHRpbmddXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCwgY29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHNldHRpbmc6IENvbHVtbkluZm9UeXBlW10pID0+IHtcbiAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0QW5kQXBwbHlTZWFyY2hQYW5lbFNldHRpbmdGaWVsZHNTZXR0aW5nKHNldHRpbmcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfb3BlblNhdmVBc0ZpbHRlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoTW8gPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbE1vKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyA9IHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzO1xuICAgICAgICBjb25zdCBmaWVsZHNTZXR0aW5nID0gc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5GaWVsZHNTZXR0aW5nO1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRlZmF1bHREaWFsb2dDb25maWcsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzI1cmVtJyxcbiAgICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgc2VhcmNoTW8sXG4gICAgICAgICAgICAgICAgZmllbGRzU2V0dGluZyxcbiAgICAgICAgICAgICAgICByZXBvcnRJZDogdGhpcy5fdWx2TWFpblNlcnZpY2UucmVwb3J0SWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaFBhbmVsU2F2ZUNvbXBvbmVudCwgY29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHNlYXJjaFBhbmVsU2V0dGluZzogU2VhcmNoUGFuZWxTZXR0aW5ncykgPT4ge1xuICAgICAgICAgICAgaWYgKHNlYXJjaFBhbmVsU2V0dGluZykge1xuICAgICAgICAgICAgICAgIHNlYXJjaFBhbmVsU2V0dGluZy5IaWRlU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWw7XG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuYWRkU2VhcmNoUGFuZWxTZXR0aW5ncyhzZWFyY2hQYW5lbFNldHRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2F2ZUZpbHRlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XG4gICAgICAgIGlmIChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5IaWRlU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWw7XG4gICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zYXZlU2VhcmNoUGFuZWxTZXR0aW5nKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaEZpbHRlcnNNYW5hZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLl91bHZNYWluU2VydmljZS5hbGxTZWFyY2hQYW5lbFNldHRpbmdzO1xuICAgICAgICBjb25zdCByZXBvcnRJZCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkO1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRlZmF1bHREaWFsb2dDb25maWcsXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogZmFsc2UsXG4gICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBUaXRsZTogYy5UaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgSXNEZWZhdWx0OiBjLklzRGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgSXNQdWJsaWM6IGMuSXNQdWJsaWMsXG4gICAgICAgICAgICAgICAgICAgIElzUHJpbWFyeTogISFjLklzUHJpbWFyeSxcbiAgICAgICAgICAgICAgICAgICAgQXBwbHlBdXRvbWF0aWNhbGx5OiBjLkFwcGx5QXV0b21hdGljYWxseSxcbiAgICAgICAgICAgICAgICAgICAgUmVwb3J0SWQ6IHJlcG9ydElkLFxuICAgICAgICAgICAgICAgICAgICBJZDogYy5JZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoRmllbGRzTWFuYWdlQ29tcG9uZW50LCBjb25maWcpO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogU2VhcmNoUGFuZWxTZXR0aW5nc1tdKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZykge1xuICAgICAgICAgICAgICAgIHNldHRpbmdcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuSXNQcmltYXJ5KVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgobmV3U2V0dGluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BzID0gYWxsU2VhcmNoUGFuZWxTZXR0aW5ncy5maW5kKChjKSA9PiBjLklkID09PSBuZXdTZXR0aW5nLklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLk1lcmdlKHNwcywgbmV3U2V0dGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnVwZGF0ZVNlYXJjaFBhbmVsU2V0dGluZ3MoYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxic3UtYmFyc2EtdWx2LW1haW5cbiAgICBbYXR0ci5pc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICBbdmlld2VyQ29udHJvbF09XCJ2aWV3ZXIkIHwgYXN5bmNcIlxuICAgIFtsb2FkaW5nXT1cIihtYXNrJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgW3ZpZXdlckxvYWRpbmddPVwiKHZpd2VyTWFzayQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIFtpc1JlcG9ydFBhZ2VdPVwiaXNSZXBvcnRQYWdlXCJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbc2VhcmNoUGFuZWxVaV09XCIoc2VhcmNoUGFuZWxVaSQgfCBhc3luYykhIVwiXG4gICAgW2JyZWFkQ3J1bWJzXT1cIihicmVhZENydW1icyQgfCBhc3luYykhIVwiXG4gICAgW2FsbFNlYXJjaFBhbmVsU2V0dGluZ3NdPVwiKGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkIHwgYXN5bmMpISFcIlxuICAgIFtpc0Fub255bW91c109XCIoaXNBbm9ueW1vdXMkIHwgYXN5bmMpISFcIlxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgW3NlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc109XCIoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VhcmNoUGFuZWxNb0NoYW5nZWRdPVwiKHNlYXJjaFBhbmVsTW9DaGFuZ2VkJCB8IGFzeW5jKSEhXCJcbiAgICBbc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWRdPVwiKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCB8IGFzeW5jKSEhXCJcbiAgICBbaGlkZVNlYXJjaFBhbmVsXT1cIihoaWRlU2VhcmNoUGFuZWwkIHwgYXN5bmMpISFcIlxuICAgIFtwYWdpbmdTZXR0aW5nXT1cIihwYWdpbmdTZXR0aW5nJCB8IGFzeW5jKSEhXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHkkIHwgYXN5bmNcIlxuICAgIChjbG9zZSk9XCJvbkNsb3NlKClcIlxuICAgIChzZWFyY2hQYW5lbE1vQ2hhbmdlKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXG4gICAgKG9wZW5NYW5hZ2VGaWx0ZXJzKT1cIm9uT3Blbk1hbmFnZUZpbHRlcnMoKVwiXG4gICAgKGNvbGxhcHNlZENoYW5nZSk9XCJvbkNvbGxhcHNlZENoYW5nZSgkZXZlbnQpXCJcbiAgICAoaGlkZVNlYXJjaFBhbmVsQ2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcbiAgICAoZmlsdGVyU2F2ZSk9XCJvbkZpbHRlclNhdmUoKVwiXG4gICAgKGZpbHRlclNhdmVBcyk9XCJvbkZpbHRlclNhdmVBcygpXCJcbiAgICAoc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcpPVwib25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpXCJcbiAgICAobWFuYWdlRmlsdGVycyk9XCJvbk1hbmFnZUZpbHRlcnMoKVwiXG4gICAgKGNsZWFyU2VhcmNoKT1cIm9uQ2xlYXJTZWFyY2goKVwiXG4gICAgKHNlYXJjaCk9XCJvblNlYXJjaCgpXCJcbiAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MpPVwib25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKCRldmVudClcIlxuPlxuPC9ic3UtYmFyc2EtdWx2LW1haW4+XG4iXX0=
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdWx2LW1haW4tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpFLE9BQU8sRUFDSCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGNBQWMsRUFRakIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUNuSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7OztBQVN6SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQWlEbkQsWUFDWSxjQUE2QixFQUM3QixlQUErQixFQUNoQyxFQUFjLEVBQ2IsT0FBZSxFQUNmLGNBQTZCLEVBQzdCLElBQXVCLEVBQy9CLHFCQUE0QyxFQUM1QyxpQkFBb0M7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFUQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3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QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDSixTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFFM0Isb0JBQW9CO3NCQUR2QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFPbEIsVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQmFyc2FBcGksXHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgVWx2TWFpblNlcnZpY2UsXHJcbiAgICBQYWdpbmdTZXR0aW5nLFxyXG4gICAgUG9ydGFsU2VydmljZSxcclxuICAgIFNlYXJjaFBhbmVsU2V0dGluZ3MsXHJcbiAgICBCcmVhZENydW1iSW5mbyxcclxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgQ29sdW1uSW5mb1R5cGUsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemVcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLWZpbHRlcnMtcmVwb3J0L21hbmFnZS1maWx0ZXJzLXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1wYW5lbC9zZWFyY2gtcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0U2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuLi9yZXBvcnQtc2VhcmNoLWZpZWxkcy1oaWRkZW4tc2V0dGluZ3MvcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFNlYXJjaFBhbmVsU2F2ZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0U2VhcmNoRmllbGRzTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS11bHYtbWFpbi11aScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdWx2LW1haW4tdWkuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdWx2LW1haW4tdWkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1Vsdk1haW5TZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVVsdk1haW5VaUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xyXG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogYW55O1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1yZWFkb25seScpIHJlYWRvbmx5O1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb250cm9sLWRpc2FibGVkJykgZGlzYWJsZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubWFyZ2luLXVsdicpIG1hcmdpblVsdjtcclxuICAgIEBWaWV3Q2hpbGQoU2VhcmNoUGFuZWxDb21wb25lbnQpXHJcbiAgICBzZXQgc2VhcmNoUGFuZWxDb21wb25lbnQodmFsKSB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIHNldCBmdWxsc2NyZWVuKHZhbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNldEZ1bGxzY3JlZW4odmFsKTtcclxuICAgIH1cclxuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nczogU2VhcmNoUGFuZWxTZXR0aW5ncyB8IHVuZGVmaW5lZDtcclxuICAgIGZpcnN0QXBwbHlBdXRvbWF0aWNhbGx5ID0gdHJ1ZTtcclxuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgdml3ZXJNYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHZpZXdlciQ6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHBhZ2luZ1NldHRpbmckOiBPYnNlcnZhYmxlPFBhZ2luZ1NldHRpbmcgfCBudWxsPjtcclxuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XHJcbiAgICBzZWFyY2hQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgaGlkZVNlYXJjaFBhbmVsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICByZXBvcnRJZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHNlYXJjaFBhbmVsTW9DaGFuZ2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkOiBPYnNlcnZhYmxlPFNlYXJjaFBhbmVsU2V0dGluZ3NbXT47XHJcbiAgICBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQ6IE9ic2VydmFibGU8U2VhcmNoUGFuZWxTZXR0aW5ncyB8IHVuZGVmaW5lZD47XHJcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTxBYmJyZXZhdGlvbkRldmljZVNpemU+O1xyXG4gICAgYnJlYWRDcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xyXG4gICAgc2VhcmNoUGFuZWxMb2FkZWQ6IGJvb2xlYW47XHJcbiAgICBpc0Fub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaGFzU2VhcmNoUGFuZWw6IGJvb2xlYW47XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZhdWx0RGlhbG9nQ29uZmlnID0ge1xyXG4gICAgICAgIHZlcnRpY2FsUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgbWluV2lkdGg6ICc1MHJlbScsXHJcbiAgICAgICAgYm9keU1pbkhlaWdodDogJ2NhbGMoNTB2aCAtIDg4cHgpJ1xyXG4gICAgfTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXHJcbiAgICAgICAgX2JyYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xyXG4gICAgICAgIHRoaXMucnRsJCA9IF9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XHJcbiAgICAgICAgdGhpcy5icmVhZENydW1icyQgPSBfYnJhZGNydW1iU2VydmljZS5icmVhZGNydW1icyQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRJbkRpYWxvZyh0aGlzLmluRGlhbG9nKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRJc011bHRpU2VsZWN0KHRoaXMuaXNNdWx0aVNlbGVjdCk7XHJcbiAgICAgICAgLy8gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxyXG4gICAgICAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXHJcbiAgICAgICAgLy8gICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgICAvLyAgICAgICAgIGlmIChcclxuICAgICAgICAvLyAgICAgICAgICAgICBlLnRhcmdldCAmJlxyXG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCAhPT0gZS50YXJnZXQgJiZcclxuICAgICAgICAvLyAgICAgICAgICAgICAhdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSAmJlxyXG4gICAgICAgIC8vICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXHJcbiAgICAgICAgLy8gICAgICAgICApIHtcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRJbmxpbmVFZGl0KGZhbHNlKTtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlQnVnSW5DaHJvbWVDc3NBY3RpdmUoKTtcclxuICAgICAgICB0aGlzLm1hcmdpblVsdiA9ICF0aGlzLmlzUmVwb3J0UGFnZTtcclxuICAgICAgICBpZiAoIXRoaXMuY29udGV4dC5TZXR0aW5nLlNlYXJjaFBhbmVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUGFuZWxMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzQW5vbnltb3VzJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuaXNBbm9ueW1vdXMkO1xyXG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaFBhbmVsJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbCQ7XHJcblxyXG4gICAgICAgIHRoaXMudGl0bGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy5UaXRsZScsICcnKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZXRDb250ZXh0KHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0TGF5b3V0SW5mbyh0aGlzLmxheW91dEluZm8pO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmxvYWRTZWFyY2hQYW5lbFNldHRpbmdzKCk7XHJcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1hc2skO1xyXG4gICAgICAgIHRoaXMudml3ZXJNYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpd2VyTWFzayQ7XHJcbiAgICAgICAgdGhpcy5wYWdpbmdTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2luZ1NldHRpbmckO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxNb0NoYW5nZWQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQkO1xyXG4gICAgICAgIHRoaXMuaGFzU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpICE9PSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxVaSQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbFVpJDtcclxuICAgICAgICB0aGlzLnJlcG9ydElkJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkJDtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZWFkb25seSQuc3Vic2NyaWJlKChyZWFkb25seSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlYWRvbmx5ID0gcmVhZG9ubHk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJC5zdWJzY3JpYmUoKGVuYWJsZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGUgPSAhZW5hYmxlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYT8uVGl0bGUgPT09IGI/LlRpdGxlKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5hcHBseVNlYXJjaFBhbmVsU2V0dGluZ3Moc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvZ2dsZUhpZGVTZWFyY2hwYW5lbChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LkhpZGVTZWFyY2hQYW5lbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudmlld2VyJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpZXdlciQ7XHJcbiAgICAgICAgdGhpcy5hbGxTZWFyY2hQYW5lbFNldHRpbmdzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFsbFNlYXJjaFBhbmVsU2V0dGluZ3MkO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncyQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCQ7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycvaG9tZSddKTtcclxuICAgIH1cclxuICAgIG9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0U2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBvblBhZ2VDaGFuZ2UoZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnZUNoYW5nZWQoZSk7XHJcbiAgICB9XHJcbiAgICBvbk9wZW5NYW5hZ2VGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xpY2tDbG9zZWFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBmb2N1c1RyYXBwZWQ6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNvbGxhcHNlZENoYW5nZShjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS50b2dnbGVIaWRlU2VhcmNocGFuZWwoY29sbGFwc2VkKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5zZWFyY2hQYW5lbE1vQ2hhbmdlZCh0cnVlKTtcclxuICAgIH1cclxuICAgIG9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudG9nZ2xlSGlkZVNlYXJjaHBhbmVsKCk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25GaWx0ZXJTYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NhdmVGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbHRlclNhdmVBcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vcGVuU2F2ZUFzRmlsdGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb3BlblNlYXJjaEZpbHRlcnNNYW5hZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNsZWFyU2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWFyY2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jaGFuZ2VTZWxlY3RlZFNlYXJjaFBhbmVsKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3JlbW92ZUJ1Z0luQ2hyb21lQ3NzQWN0aXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBsaXN0OiB7IGk6IGFueTsgbjogYW55OyBhOiBhbnkgfVtdID0gW107XHJcbiAgICAgICAgY29uc3QgaCA9IGRvY3VtZW50LmhlYWQuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxpc3RbaV0gPSB7XHJcbiAgICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgICAgbjogaFtpXSxcclxuICAgICAgICAgICAgICAgIGE6IGhbaV0uaW5uZXJIVE1MXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpc3QgPSBsaXN0LnJldmVyc2UoKTtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgICAgIGNvbnN0IHQgPSBgLmZkLXRhYmxlX19jZWxsLS1hY3RpdmFibGU6YWN0aXZlICosLmZkLXRhYmxlX19yb3ctLWFjdGl2YWJsZS5pcy1hY3RpdmUgKiwuZmQtdGFibGVfX3Jvdy0tYWN0aXZhYmxlOmFjdGl2ZSAqe2NvbG9yOnZhcigtLXNhcExpc3RfQWN0aXZlX1RleHRDb2xvcikhaW1wb3J0YW50fWA7XHJcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xyXG4gICAgICAgIGNvbnN0IGYgPSBsaXN0LmZpbHRlcigoYykgPT4gYy5hLmluZGV4T2YodCkgPj0gMCk7XHJcbiAgICAgICAgaWYgKGYubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uVXRpbC5SZW1vdmVCdWdJbkNocm9tZUNzc0FjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGZbMF0ubi5pbm5lckhUTUwgPSBmWzBdLmEuc2xpY2UoMCwgMTAwNTgpICsgZlswXS5hLnNsaWNlKDEwMDU4ICsgdC5sZW5ndGgsIGZbMF0uYS5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NldFNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlYXJjaFBhbmVsTW9DaGFuZ2VkKGNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkc1NldHRpbmcgPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbEZpZWxkc1NldHRpbmcoKTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGZpZWxkczogWy4uLmZpZWxkc1NldHRpbmddXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCwgY29uZmlnKTtcclxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogQ29sdW1uSW5mb1R5cGVbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2V0QW5kQXBwbHlTZWFyY2hQYW5lbFNldHRpbmdGaWVsZHNTZXR0aW5nKHNldHRpbmcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VhcmNoUGFuZWxNb0NoYW5nZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX29wZW5TYXZlQXNGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoTW8gPSB0aGlzLl91bHZNYWluU2VydmljZS5nZXRTZWFyY2hQYW5lbE1vKCk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5zZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M7XHJcbiAgICAgICAgY29uc3QgZmllbGRzU2V0dGluZyA9IHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncz8uRmllbGRzU2V0dGluZztcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgbWluV2lkdGg6ICcyNXJlbScsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIHNlYXJjaE1vLFxyXG4gICAgICAgICAgICAgICAgZmllbGRzU2V0dGluZyxcclxuICAgICAgICAgICAgICAgIHJlcG9ydElkOiB0aGlzLl91bHZNYWluU2VydmljZS5yZXBvcnRJZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50LCBjb25maWcpO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZWFyY2hQYW5lbFNldHRpbmc6IFNlYXJjaFBhbmVsU2V0dGluZ3MpID0+IHtcclxuICAgICAgICAgICAgaWYgKHNlYXJjaFBhbmVsU2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgc2VhcmNoUGFuZWxTZXR0aW5nLkhpZGVTZWFyY2hQYW5lbCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmFkZFNlYXJjaFBhbmVsU2V0dGluZ3Moc2VhcmNoUGFuZWxTZXR0aW5nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2F2ZUZpbHRlcigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MgPSB0aGlzLnNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICBpZiAoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5IaWRlU2VhcmNoUGFuZWwgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWw7XHJcbiAgICAgICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNhdmVTZWFyY2hQYW5lbFNldHRpbmcoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9vcGVuU2VhcmNoRmlsdGVyc01hbmFnZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhbGxTZWFyY2hQYW5lbFNldHRpbmdzID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuYWxsU2VhcmNoUGFuZWxTZXR0aW5ncztcclxuICAgICAgICBjb25zdCByZXBvcnRJZCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlcG9ydElkO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5kZWZhdWx0RGlhbG9nQ29uZmlnLFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFsbFNlYXJjaFBhbmVsU2V0dGluZ3M6IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MubWFwKChjKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIFRpdGxlOiBjLlRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIElzRGVmYXVsdDogYy5Jc0RlZmF1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgSXNQdWJsaWM6IGMuSXNQdWJsaWMsXHJcbiAgICAgICAgICAgICAgICAgICAgSXNQcmltYXJ5OiAhIWMuSXNQcmltYXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIEFwcGx5QXV0b21hdGljYWxseTogYy5BcHBseUF1dG9tYXRpY2FsbHksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVwb3J0SWQ6IHJlcG9ydElkLFxyXG4gICAgICAgICAgICAgICAgICAgIElkOiBjLklkXHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCwgY29uZmlnKTtcclxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc2V0dGluZzogU2VhcmNoUGFuZWxTZXR0aW5nc1tdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuSXNQcmltYXJ5KVxyXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChuZXdTZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwcyA9IGFsbFNlYXJjaFBhbmVsU2V0dGluZ3MuZmluZCgoYykgPT4gYy5JZCA9PT0gbmV3U2V0dGluZy5JZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuTWVyZ2Uoc3BzLCBuZXdTZXR0aW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UudXBkYXRlU2VhcmNoUGFuZWxTZXR0aW5ncyhhbGxTZWFyY2hQYW5lbFNldHRpbmdzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxic3UtYmFyc2EtdWx2LW1haW5cclxuICAgIFthdHRyLmlzUmVwb3J0UGFnZV09XCJpc1JlcG9ydFBhZ2VcIlxyXG4gICAgW3ZpZXdlckNvbnRyb2xdPVwidmlld2VyJCB8IGFzeW5jXCJcclxuICAgIFtsb2FkaW5nXT1cIihtYXNrJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbdmlld2VyTG9hZGluZ109XCIodml3ZXJNYXNrJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbaXNSZXBvcnRQYWdlXT1cImlzUmVwb3J0UGFnZVwiXHJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgW3NlYXJjaFBhbmVsVWldPVwiKHNlYXJjaFBhbmVsVWkkIHwgYXN5bmMpISFcIlxyXG4gICAgW2JyZWFkQ3J1bWJzXT1cIihicmVhZENydW1icyQgfCBhc3luYykhIVwiXHJcbiAgICBbYWxsU2VhcmNoUGFuZWxTZXR0aW5nc109XCIoYWxsU2VhcmNoUGFuZWxTZXR0aW5ncyQgfCBhc3luYykhIVwiXHJcbiAgICBbaXNBbm9ueW1vdXNdPVwiKGlzQW5vbnltb3VzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXHJcbiAgICBbc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzXT1cIihzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3MkIHwgYXN5bmMpISFcIlxyXG4gICAgW3NlYXJjaFBhbmVsTW9DaGFuZ2VkXT1cIihzZWFyY2hQYW5lbE1vQ2hhbmdlZCQgfCBhc3luYykhIVwiXHJcbiAgICBbc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWRdPVwiKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkJCB8IGFzeW5jKSEhXCJcclxuICAgIFtoaWRlU2VhcmNoUGFuZWxdPVwiKGhpZGVTZWFyY2hQYW5lbCQgfCBhc3luYykhIVwiXHJcbiAgICBbcGFnaW5nU2V0dGluZ109XCIocGFnaW5nU2V0dGluZyQgfCBhc3luYykhIVwiXHJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcclxuICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eSQgfCBhc3luY1wiXHJcbiAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcclxuICAgIChzZWFyY2hQYW5lbE1vQ2hhbmdlKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiXHJcbiAgICAob3Blbk1hbmFnZUZpbHRlcnMpPVwib25PcGVuTWFuYWdlRmlsdGVycygpXCJcclxuICAgIChjb2xsYXBzZWRDaGFuZ2UpPVwib25Db2xsYXBzZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoaGlkZVNlYXJjaFBhbmVsQ2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcclxuICAgIChmaWx0ZXJTYXZlKT1cIm9uRmlsdGVyU2F2ZSgpXCJcclxuICAgIChmaWx0ZXJTYXZlQXMpPVwib25GaWx0ZXJTYXZlQXMoKVwiXHJcbiAgICAoc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcpPVwib25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpXCJcclxuICAgIChtYW5hZ2VGaWx0ZXJzKT1cIm9uTWFuYWdlRmlsdGVycygpXCJcclxuICAgIChjbGVhclNlYXJjaCk9XCJvbkNsZWFyU2VhcmNoKClcIlxyXG4gICAgKHNlYXJjaCk9XCJvblNlYXJjaCgpXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChzZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKT1cIm9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncygkZXZlbnQpXCJcclxuPlxyXG48L2JzdS1iYXJzYS11bHYtbWFpbj5cclxuIl19
|
|
@@ -51,7 +51,10 @@ export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
|
51
51
|
dialogRef.AddUlvToWindow = (ulvControl1, ulvControl2) => {
|
|
52
52
|
dialogRef.loading(false);
|
|
53
53
|
const selectFormTitleText = this._bbbTranslatePipe.transform('SelectFormTitle');
|
|
54
|
-
dialogRef.data.title =
|
|
54
|
+
dialogRef.data.title =
|
|
55
|
+
ulvControl1.Setting.Extra?.ExtraJsonPropReport?.Title === false
|
|
56
|
+
? ''
|
|
57
|
+
: selectFormTitleText.replace('{0}', ulvControl1.Setting.Extra.Report.TypeDefCaption);
|
|
55
58
|
dialogRef.data.ulv1 = ulvControl1;
|
|
56
59
|
if (ulvControl1.viewerControl) {
|
|
57
60
|
this._handleUlvViewerEvent(ulvControl1, adapter, dialogRef);
|
|
@@ -180,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
180
183
|
}], Show: [{
|
|
181
184
|
type: Input
|
|
182
185
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQU8xRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtn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UUFDbkQsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZELGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0QsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDckIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzdEO1lBRUQsMENBQTBDO1lBQzFDLDZEQUE2RDtTQUNoRTtJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsSUFBeUI7UUFDeEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7O3dIQXpLUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixvTEFDSixXQUFXLG9EQ2QvQyxzNkpBd0dBOzJGRDNGYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO21NQUkvQyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFvQnBDLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSwgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBCYmJUcmFuc2xhdGVQaXBlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtZm9ybS1tdWx0aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWx2Rm9ybU11bHRpU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGRpYWxvZ0NvbnRhaW5lcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGRldmljZVNpemU6IHN0cmluZztcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2JiYlRyYW5zbGF0ZVBpcGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QgPSB0aGlzO1xuICAgICAgICBfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRldmljZVNpemUgPSBjO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBTaG93ID0gKGFkYXB0ZXIsIGNvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ2wnIHx8IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3hsJztcbiAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICAgICAgZGF0YTogeyAuLi5jb25maWcsIGFkYXB0ZXIgfSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkaWFsb2dQYW5lbENsYXNzOiBgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZyAke3RoaXMuZGV2aWNlU2l6ZSA/ICd1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nLW1vYmlsZScgOiAnJ31gLFxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBpZiAobGFyZ2VTY3JlZW4pIHtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc1MHZ3JztcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluV2lkdGggPSAnNDAwJztcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5IZWlnaHQgPSAnNjB2aCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRhcHRlci5IaWRlT2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nQ29udGFpbmVyLCBkaWFsb2dDb25maWcpO1xuICAgICAgICBkaWFsb2dSZWYubG9hZGluZyhjb25maWcuSXNMb2FkZWQgPT09IHRydWUgPyBmYWxzZSA6IHRydWUpOyAvLyBtZWFucyB1bHYgaXMgbG9hZGVkIGFuZCBpdCBkb2VzIG5vdCBzaG93IGxvYWRpbmcgaW4gZGlhbG9nXG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5tYXNrID0gKHZhbCkgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcodmFsKTtcbiAgICAgICAgfTtcbiAgICAgICAgKGRpYWxvZ1JlZiBhcyBhbnkpLkFkZFVsdlRvV2luZG93ID0gKHVsdkNvbnRyb2wxLCB1bHZDb250cm9sMikgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Rm9ybVRpdGxlVGV4dCA9IHRoaXMuX2JiYlRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdTZWxlY3RGb3JtVGl0bGUnKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnRpdGxlID0gc2VsZWN0Rm9ybVRpdGxlVGV4dC5yZXBsYWNlKCd7MH0nLCB1bHZDb250cm9sMS5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlRGVmQ2FwdGlvbik7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxID0gdWx2Q29udHJvbDE7XG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDEudmlld2VyQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxLCBhZGFwdGVyLCBkaWFsb2dSZWYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5vbih7XG4gICAgICAgICAgICAgICAgICAgIFZpZXdlckNvbnRyb2xDaGFuZ2VkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMSwgYWRhcHRlciwgZGlhbG9nUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVsdkNvbnRyb2wyKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MiA9IHVsdkNvbnRyb2wyO1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSB1bHZDb250cm9sMi5TZXR0aW5nLkRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcblxuICAgIHByaXZhdGUgX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxOiBhbnksIGFkYXB0ZXI6IGFueSwgZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55LCBhbnk+KSB7XG4gICAgICAgIHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IGFkYXB0ZXIuU2hvd09rQ2FuY2VsQnV0dG9ucztcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5vbih7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgcm93c2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICByb3dkZXNlbGVjdDogKHNlbmRlciwgaW5kZXgsIG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb3dTZWxlY3RBbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvd0RlU2VsZWN0QWxsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25PayhkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHVsdiwgdWx2MiB9ID0gdGhpcy5fZ2V0VWx2KGRpYWxvZ1JlZik7XG4gICAgICAgIC8vIGlmICh1bHYpIHtcbiAgICAgICAgLy8gICAgIGlmICh1bHYyKSB7XG4gICAgICAgIC8vICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgIC8vICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuX2J0bkNsaWNrKHVsdiwgJ09rJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VWx2KGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogeyB1bHY6IGFueTsgdWx2MjogYW55IH0ge1xuICAgICAgICBjb25zdCB1bHYyID0gZGlhbG9nUmVmLmRhdGEudWx2MjtcbiAgICAgICAgY29uc3QgdWx2MSA9IGRpYWxvZ1JlZi5kYXRhLnVsdjE7XG4gICAgICAgIGNvbnN0IHVsdiA9IHVsdjIgfHwgdWx2MTtcbiAgICAgICAgcmV0dXJuIHsgdWx2LCB1bHYyIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYnRuQ2xpY2sodWx2OiBhbnksIGJ0bktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9rQnRuID0gdWx2LmJ1dHRvbnMuZmluZCgoYykgPT4gYy5LZXkgPT09IGJ0bktleSk7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gb2tCdG4uc2NvcGU7XG4gICAgICAgIG9rQnRuLmhhbmRsZXIuYmluZChzY29wZSkob2tCdG4pO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGlmICghZGlhbG9nUmVmLmRhdGEuYWRhcHRlcj8uU2hvd09rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHVsdiwgdWx2MiB9ID0gdGhpcy5fZ2V0VWx2KGRpYWxvZ1JlZik7XG4gICAgICAgIHRoaXMuX2J0bkNsaWNrKHVsdiwgJ0NhbmNlbCcpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgnQ2xlYXJBbGxTZWxlY3RlZCcpO1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBbXTtcbiAgICB9XG5cbiAgICBvblJlbW92ZVNlbGVjdGVkKGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBpdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUl0ZW0oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgbW86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LmZpbHRlcigoYykgPT4gYy5JZCAhPT0gbW8uSWQpO1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdEZXNlbGVjdFJvd0luRGlhbG9nJywgW21vXSk7XG4gICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdSZW1vdmUnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgLy8gYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfYWRkSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gbW8uSWQpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBbLi4uc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LCBtb107XG4gICAgICAgICAgICBpZiAoZGlhbG9nUmVmLmRhdGEudWx2Mikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICAvLyBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfdHJhY2tCeVNlbGVjdGVkRm4oX2luZGV4OiBudW1iZXIsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiBudW1iZXIgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5JZDtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2NvbnRhaW5lcj5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGlkPVwiZmQtZGlhbG9nLWhlYWRlci0zXCIgZmQtdGl0bGU+e3sgZGlhbG9nLmRhdGEudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGlhbG9nQ29uZmlnLmZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nXT1cImRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nQ29tcG9uZW50XT1cImRpYWxvZ1RwbFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGFyaWFMYWJlbD1cImNsb3NlXCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIj48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPCEtLSA8aDMgZmQtdGl0bGU+e3sgZGlhbG9nLmRhdGEudGl0bGUgfX08L2gzPlxuICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaWFsb2cuZGF0YS51bHYxIGFzIHVsdjFcIj5cbiAgICAgICAgICAgICAgICA8YnN1LXVpLXVsdi1tYWluLXVpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LWZvcm0tbXVsdGktc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwidWx2MVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbkRpYWxvZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z1bGxzY3JlZW5dPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LXVpLXVsdi1tYWluLXVpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2cuZGF0YS51bHYyICYmIGRpYWxvZy5kYXRhLlNob3dTZWNvbmRQYW5lbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19yb3cgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fc2VsZWN0aW9uLXJvd1wiXG4gICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlIGNsYXNzPVwic2VsZWN0ZWQtYW5kLWNvbmRpdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyAnU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlIH19IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHt7IGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXM/Lk1vRGF0YUxpc3Q/Lmxlbmd0aCB8fCAwIH19KVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2g1PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCIgKm5nSWY9XCJkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3RlZCBpdGVtcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtdG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImhpZ2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fc2VsZWN0aW9uLXRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VDbGljayk9XCJvblJlbW92ZVNlbGVjdGVkKGRpYWxvZywgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IGFzIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBfdHJhY2tCeVNlbGVjdGVkRm5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uJENhcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRva2VuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnMtY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ0NsZWFyJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhcihkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXIgKm5nSWY9XCJkaWFsb2cuZGF0YS51bHYxICYmICFkaWFsb2cuZGF0YS51bHYxPy5IaWRlT2tDYW5jZWxCdXR0b25zXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19hY3Rpb25zLXJvd1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nLmRhdGEuYWRhcHRlcj8uU2hvd09rQ2FuY2VsQnV0dG9ucyAhPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXN1Y2Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9rKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiJ2NvbXBhY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZGlzbWlzcy1kaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbChkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQU8xRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtnQkFDNUIsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLGdCQUFnQixFQUFFLDZCQUE2QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxRyxlQUFlLEVBQUUsS0FBSzthQUN6QixDQUFDO1lBQ0YsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsWUFBWSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQzVCLFlBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixZQUFZLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDOUIsWUFBWSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0gsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQzNCLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzdCLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ2xDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUMvRSxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNkRBQTZEO1lBQ3hILFNBQWlCLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1lBQ0QsU0FBaUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUU7Z0JBQzdELFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNoRixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUs7b0JBQ2hCLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEtBQUssS0FBSyxLQUFLO3dCQUMzRCxDQUFDLENBQUMsRUFBRTt3QkFDSixDQUFDLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzlGLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztnQkFDbEMsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFO29CQUMzQixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDL0Q7cUJBQU07b0JBQ0gsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDWCxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7NEJBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO3dCQUNoRSxDQUFDO3FCQUNKLENBQUMsQ0FBQztpQkFDTjtnQkFDRCxJQUFJLFdBQVcsRUFBRTtvQkFDYixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7b0JBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2lCQUMzRDtZQUNMLENBQUMsQ0FBQztZQUNGLE9BQU8sU0FBUyxDQUFDO1lBQ2pCLG9CQUFvQjtRQUN4QixDQUFDLENBQUM7UUF4REUsSUFBSSxDQUFDLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLENBQUM7UUFDN0QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDdEMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQXFETyxxQkFBcUIsQ0FBQyxXQUFnQixFQUFFLE9BQVksRUFBRSxTQUE4QjtRQUN4RixXQUFXLENBQUMsYUFBYSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztRQUM1RSxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN6QixvQkFBb0I7WUFDcEIsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELG9CQUFvQjtZQUNwQixXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDZixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQW9CO1FBQ3JCLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGtEQUFrRDtRQUNsRCxxRUFBcUU7UUFDckUsUUFBUTtRQUNSLElBQUk7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQW9CO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7UUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQVEsRUFBRSxNQUFjO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxTQUFvQjtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE9BQU87U0FDVjtRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQW9CO1FBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFvQixFQUFFLElBQXlCO1FBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxXQUFXLENBQUMsU0FBeUIsRUFBRSxFQUFPO1FBQ3BELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEYsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNyQixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN2QyxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNoRTtRQUNELDBDQUEwQztRQUMxQyxnRUFBZ0U7SUFDcEUsQ0FBQztJQUVTLFFBQVEsQ0FBQyxTQUF5QixFQUFFLEVBQXVCO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN2RCxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM3RDtZQUVELDBDQUEwQztZQUMxQyw2REFBNkQ7U0FDaEU7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBYyxFQUFFLElBQXlCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDOzt3SEE1S1EsMkJBQTJCOzRHQUEzQiwyQkFBMkIsb0xBQ0osV0FBVyxvRENkL0MsczZKQXdHQTsyRkQzRmEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNJLDJCQUEyQixpQkFHdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTttTUFJL0MsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBb0JwQyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCwgQmJiVHJhbnNsYXRlUGlwZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LWZvcm0tbXVsdGktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBkZXZpY2VTaXplOiBzdHJpbmc7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gX2NvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcbiAgICAgICAgQmFyc2FBcGkuQncuVWx2Rm9ybU11bHRpU2VsZWN0ID0gdGhpcztcbiAgICAgICAgX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gYztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgU2hvdyA9IChhZGFwdGVyLCBjb25maWcpID0+IHtcbiAgICAgICAgY29uc3QgbGFyZ2VTY3JlZW4gPSB0aGlzLmRldmljZVNpemUgPT09ICdsJyB8fCB0aGlzLmRldmljZVNpemUgPT09ICd4bCc7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHsgLi4uY29uZmlnLCBhZGFwdGVyIH0sXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGlhbG9nUGFuZWxDbGFzczogYHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2cgJHt0aGlzLmRldmljZVNpemUgPyAndWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZy1tb2JpbGUnIDogJyd9YCxcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGxhcmdlU2NyZWVuKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTB2dyc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbldpZHRoID0gJzQwMCc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzYwdmgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkYXB0ZXIuSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ0NvbnRhaW5lciwgZGlhbG9nQ29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoY29uZmlnLklzTG9hZGVkID09PSB0cnVlID8gZmFsc2UgOiB0cnVlKTsgLy8gbWVhbnMgdWx2IGlzIGxvYWRlZCBhbmQgaXQgZG9lcyBub3Qgc2hvdyBsb2FkaW5nIGluIGRpYWxvZ1xuICAgICAgICAoZGlhbG9nUmVmIGFzIGFueSkubWFzayA9ICh2YWwpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKHZhbCk7XG4gICAgICAgIH07XG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5BZGRVbHZUb1dpbmRvdyA9ICh1bHZDb250cm9sMSwgdWx2Q29udHJvbDIpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEZvcm1UaXRsZVRleHQgPSB0aGlzLl9iYmJUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnU2VsZWN0Rm9ybVRpdGxlJyk7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS50aXRsZSA9XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5FeHRyYT8uRXh0cmFKc29uUHJvcFJlcG9ydD8uVGl0bGUgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RGb3JtVGl0bGVUZXh0LnJlcGxhY2UoJ3swfScsIHVsdkNvbnRyb2wxLlNldHRpbmcuRXh0cmEuUmVwb3J0LlR5cGVEZWZDYXB0aW9uKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEgPSB1bHZDb250cm9sMTtcbiAgICAgICAgICAgIGlmICh1bHZDb250cm9sMS52aWV3ZXJDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLm9uKHtcbiAgICAgICAgICAgICAgICAgICAgVmlld2VyQ29udHJvbENoYW5nZWQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxLCBhZGFwdGVyLCBkaWFsb2dSZWYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDIpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYyID0gdWx2Q29udHJvbDI7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IHVsdkNvbnRyb2wyLlNldHRpbmcuRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBfaGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDE6IGFueSwgYWRhcHRlcjogYW55LCBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnksIGFueT4pIHtcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5TaG93T2tDYW5jZWxCdXR0b25zID0gYWRhcHRlci5TaG93T2tDYW5jZWxCdXR0b25zO1xuICAgICAgICB1bHZDb250cm9sMS52aWV3ZXJDb250cm9sLm9uKHtcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm93RGVTZWxlY3RBbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk9rKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgLy8gaWYgKHVsdikge1xuICAgICAgICAvLyAgICAgaWYgKHVsdjIpIHtcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgLy8gICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnT2snKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRVbHYoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB7IHVsdjogYW55OyB1bHYyOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IHVsdjIgPSBkaWFsb2dSZWYuZGF0YS51bHYyO1xuICAgICAgICBjb25zdCB1bHYxID0gZGlhbG9nUmVmLmRhdGEudWx2MTtcbiAgICAgICAgY29uc3QgdWx2ID0gdWx2MiB8fCB1bHYxO1xuICAgICAgICByZXR1cm4geyB1bHYsIHVsdjIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9idG5DbGljayh1bHY6IGFueSwgYnRuS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2tCdG4gPSB1bHYuYnV0dG9ucy5maW5kKChjKSA9PiBjLktleSA9PT0gYnRuS2V5KTtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBva0J0bi5zY29wZTtcbiAgICAgICAgb2tCdG4uaGFuZGxlci5iaW5kKHNjb3BlKShva0J0bik7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnQ2FuY2VsJyk7XG4gICAgfVxuXG4gICAgb25DbGVhcihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdDbGVhckFsbFNlbGVjdGVkJyk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nUmVmOiBEaWFsb2dSZWYsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIGl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmVtb3ZlSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QuZmlsdGVyKChjKSA9PiBjLklkICE9PSBtby5JZCk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ0Rlc2VsZWN0Um93SW5EaWFsb2cnLCBbbW9dKTtcbiAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAvLyBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnUmVtb3ZlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9hZGRJdGVtKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCkpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFsuLi5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QsIG1vXTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihfaW5kZXg6IG51bWJlciwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLklkO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjY29udGFpbmVyPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiICNkaWFsb2dUcGw+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkaWFsb2dDb25maWcuZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2ddPVwiZGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8IS0tIDxoMyBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDM+XG4gICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjEgYXMgdWx2MVwiPlxuICAgICAgICAgICAgICAgIDxic3UtdWktdWx2LW1haW4tdWlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtZm9ybS1tdWx0aS1zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ1bHYxXCJcbiAgICAgICAgICAgICAgICAgICAgW2luRGlhbG9nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJkaWFsb2cuZGF0YS5TaG93U2Vjb25kUGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICA+PC9ic3UtdWktdWx2LW1haW4tdWk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjIgJiYgZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPnt7ICdTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8uTW9EYXRhTGlzdD8ubGVuZ3RoIHx8IDAgfX0pXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvaDU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vuc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIiAqbmdJZj1cImRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwiaGlnaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cIm9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggYXMgc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IF90cmFja0J5U2VsZWN0ZWRGblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS4kQ2FwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjEgJiYgIWRpYWxvZy5kYXRhLnVsdjE/LkhpZGVPa0NhbmNlbEJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX2FjdGlvbnMtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2cuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT2soZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCInY29tcGFjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgIDwvZmQtZGlhbG9nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|