geonetwork-ui 2.7.0-dev.65c46841b → 2.7.0-dev.7488c1064
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +47 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -3
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +11 -1
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
- package/esm2022/translations/de.json +10 -0
- package/esm2022/translations/en.json +10 -0
- package/esm2022/translations/es.json +10 -0
- package/esm2022/translations/fr.json +10 -0
- package/esm2022/translations/it.json +10 -0
- package/esm2022/translations/nl.json +10 -0
- package/esm2022/translations/pt.json +10 -0
- package/esm2022/translations/sk.json +10 -0
- package/fesm2022/geonetwork-ui.mjs +2492 -2288
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +1 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
- package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +50 -3
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +7 -5
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +11 -0
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
- package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- package/translations/de.json +10 -0
- package/translations/en.json +10 -0
- package/translations/es.json +10 -0
- package/translations/fr.json +10 -0
- package/translations/it.json +10 -0
- package/translations/nl.json +10 -0
- package/translations/pt.json +10 -0
- package/translations/sk.json +10 -0
|
@@ -148,7 +148,7 @@ export class DataService {
|
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
async getGeodataLinksFromTms(tmsLink, keepOriginalLink = false) {
|
|
151
|
-
const endpoint = new TmsEndpoint(tmsLink.url.toString());
|
|
151
|
+
const endpoint = new TmsEndpoint(tmsLink.url.toString().replace(/\/?$/, `/${tmsLink.name}`));
|
|
152
152
|
const tileMaps = await endpoint.allTileMaps.catch(() => {
|
|
153
153
|
throw new Error(`ogc.unreachable.unknown`);
|
|
154
154
|
});
|
|
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
241
241
|
providedIn: 'root',
|
|
242
242
|
}]
|
|
243
243
|
}], ctorParameters: () => [{ type: i1.ProxyService }] });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCxXQUFXLEdBQ1osTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBR0wsV0FBVyxFQUVYLGNBQWMsR0FDZixNQUFNLDhDQUE4QyxDQUFBO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLG9CQUFvQixFQUNwQixZQUFZLEdBQ2IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU9oRSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtBQUNyQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUM1QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FB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QUM3RCxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFBO2dCQUNsRCxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNuRSxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBQ25ELENBQUM7K0dBaFRVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBPZ2NBcGlDb2xsZWN0aW9uSW5mbyxcbiAgT2djQXBpRW5kcG9pbnQsXG4gIE9nY0FwaVJlY29yZCxcbiAgV2ZzRW5kcG9pbnQsXG4gIFdmc1ZlcnNpb24sXG4gIFRtc0VuZHBvaW50LFxufSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHtcbiAgQmFzZVJlYWRlcixcbiAgRmV0Y2hFcnJvcixcbiAgb3BlbkRhdGFzZXQsXG4gIFN1cHBvcnRlZFR5cGUsXG4gIFN1cHBvcnRlZFR5cGVzLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYydcbmltcG9ydCB7XG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dCxcbiAgZ2V0TWltZVR5cGVGb3JGb3JtYXQsXG4gIFByb3h5U2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRGF0YXZpekNvbmZpZ01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5cbm1hcmtlcignd2ZzLnVucmVhY2hhYmxlLmNvcnMnKVxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUuaHR0cCcpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IuZm9yYmlkZGVuJylcbm1hcmtlcignd2ZzLnVucmVhY2hhYmxlLnVua25vd24nKVxubWFya2VyKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxubWFya2VyKCd3ZnMuZ2VvanNvbmdtbC5ub3RzdXBwb3J0ZWQnKVxubWFya2VyKCdvZ2MudW5yZWFjaGFibGUudW5rbm93bicpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IubmV0d29yaycpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IuaHR0cCcpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IucGFyc2UnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnVuc3VwcG9ydGVkVHlwZScpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IudW5rbm93bicpXG5cbmludGVyZmFjZSBXZnNEb3dubG9hZFVybHMge1xuICBhbGw6IHsgW2Zvcm1hdDogc3RyaW5nXTogc3RyaW5nIH1cbiAgZ2VvanNvbjogc3RyaW5nXG4gIGdtbDogeyBmZWF0dXJlVXJsOiBzdHJpbmc7IG5hbWVzcGFjZTogc3RyaW5nOyB3ZnNWZXJzaW9uOiBXZnNWZXJzaW9uIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm94eTogUHJveHlTZXJ2aWNlKSB7fVxuXG4gIGdldFdmc0VuZHBvaW50KHdmc1VybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZnNFbmRwb2ludD4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgbmV3IFdmc0VuZHBvaW50KHRoaXMucHJveHkuZ2V0UHJveGllZFVybCh3ZnNVcmwpKS5pc1JlYWR5KClcbiAgICApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogRmV0Y2hFcnJvciB8IEVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICduZXR3b3JrJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUuY29yc2ApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAnaHR0cCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLmh0dHBgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ3BhcnNlJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUucGFyc2VgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ3Vuc3VwcG9ydGVkVHlwZScpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnVuc3VwcG9ydGVkVHlwZWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZFVybHNGcm9tV2ZzKFxuICAgIHdmc1VybDogc3RyaW5nLFxuICAgIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8V2ZzRG93bmxvYWRVcmxzPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsKS5waXBlKFxuICAgICAgbWFwKChlbmRwb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBlbmRwb2ludC5nZXRGZWF0dXJlVHlwZXMoKVxuICAgICAgICBjb25zdCBmZWF0dXJlVHlwZSA9IGVuZHBvaW50LmdldEZlYXR1cmVUeXBlU3VtbWFyeShcbiAgICAgICAgICBmZWF0dXJlVHlwZXMubGVuZ3RoID09PSAxICYmICFmZWF0dXJlVHlwZU5hbWVcbiAgICAgICAgICAgID8gZmVhdHVyZVR5cGVzWzBdLm5hbWVcbiAgICAgICAgICAgIDogZmVhdHVyZVR5cGVOYW1lXG4gICAgICAgIClcbiAgICAgICAgaWYgKCFmZWF0dXJlVHlwZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFsbDogZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5yZWR1Y2UoXG4gICAgICAgICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgW2N1cnJdOiBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IGN1cnIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgICksXG4gICAgICAgICAgZ2VvanNvbjogZW5kcG9pbnQuc3VwcG9ydHNKc29uKGZlYXR1cmVUeXBlLm5hbWUpXG4gICAgICAgICAgICA/IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgIGFzSnNvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIGdtbDpcbiAgICAgICAgICAgIGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMuZmluZCgoZikgPT5cbiAgICAgICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgKGZlYXR1cmVUeXBlLmRlZmF1bHRDcnMgPT09ICdFUFNHOjQzMjYnIHx8XG4gICAgICAgICAgICAgIGZlYXR1cmVUeXBlLm90aGVyQ3JzPy5pbmNsdWRlcygnRVBTRzo0MzI2JykpXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgZmVhdHVyZVVybDogZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdDogZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5maW5kKChmKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZ21sJylcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0Q3JzOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlOiBmZWF0dXJlVHlwZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgd2ZzVmVyc2lvbjogZW5kcG9pbnQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFdmc0ZlYXR1cmVDb3VudChcbiAgICB3ZnNVcmw6IHN0cmluZyxcbiAgICBmZWF0dXJlVHlwZU5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmdldFdmc0VuZHBvaW50KHdmc1VybCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZW5kcG9pbnQpID0+XG4gICAgICAgIGZyb20oZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVGdWxsKGZlYXR1cmVUeXBlTmFtZSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChmZWF0dXJlVHlwZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFmZWF0dXJlVHlwZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmVhdHVyZVR5cGUub2JqZWN0Q291bnRcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoYXBpVXJsOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKFxuICAgICAgYCR7YXBpVXJsfS9xdWVyeT9mPSR7Zm9ybWF0fSZ3aGVyZT0xPTEmb3V0RmllbGRzPSpgXG4gICAgKVxuICB9XG5cbiAgZ2V0RG93bmxvYWRMaW5rc0Zyb21XZnMoXG4gICAgd2ZzTGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgKTogT2JzZXJ2YWJsZTxEYXRhc2V0T25saW5lUmVzb3VyY2VbXT4ge1xuICAgIC8vIFBvdXIgREwgdG91dGVzIGxlcyBkb25uw6llc1xuICAgIHJldHVybiB0aGlzLmdldERvd25sb2FkVXJsc0Zyb21XZnMoXG4gICAgICB3ZnNMaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgd2ZzTGluay5uYW1lXG4gICAgKS5waXBlKFxuICAgICAgbWFwKCh1cmxzKSA9PiB7XG4gICAgICAgIGlmICh1cmxzLmdlb2pzb24pIHtcbiAgICAgICAgICB1cmxzLmFsbFsnYXBwbGljYXRpb24vanNvbiddID0gdXJscy5nZW9qc29uXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybHNcbiAgICAgIH0pLFxuICAgICAgbWFwKCh1cmxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlczogRGF0YXNldE9ubGluZVJlc291cmNlW10gPSBPYmplY3Qua2V5cyh1cmxzLmFsbCkubWFwKFxuICAgICAgICAgIChmb3JtYXQpID0+ICh7XG4gICAgICAgICAgICAuLi53ZnNMaW5rLFxuICAgICAgICAgICAgbmFtZTogd2ZzTGluay5uYW1lLFxuICAgICAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyBhcyBjb25zdCxcbiAgICAgICAgICAgIHVybDogbmV3IFVSTCh1cmxzLmFsbFtmb3JtYXRdKSxcbiAgICAgICAgICAgIG1pbWVUeXBlOiBnZXRNaW1lVHlwZUZvckZvcm1hdChcbiAgICAgICAgICAgICAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KGZvcm1hdClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFzeW5jIGdldERvd25sb2FkTGlua3NGcm9tT2djQXBpRmVhdHVyZXMoXG4gICAgb2djQXBpTGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgKTogUHJvbWlzZTxEYXRhc2V0T25saW5lUmVzb3VyY2VbXT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JbmZvID0gYXdhaXQgdGhpcy5nZXREb3dubG9hZFVybHNGcm9tT2djQXBpKFxuICAgICAgb2djQXBpTGluay51cmwuaHJlZlxuICAgIClcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY29sbGVjdGlvbkluZm8uYnVsa0Rvd25sb2FkTGlua3MpLm1hcCgoZG93bmxvYWRMaW5rKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vZ2NBcGlMaW5rLFxuICAgICAgICBuYW1lOiBjb2xsZWN0aW9uSW5mby5pZCxcbiAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyxcbiAgICAgICAgdXJsOiBuZXcgVVJMKGNvbGxlY3Rpb25JbmZvLmJ1bGtEb3dubG9hZExpbmtzW2Rvd25sb2FkTGlua10pLFxuICAgICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoXG4gICAgICAgICAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KGRvd25sb2FkTGluaylcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaSh1cmw6IHN0cmluZyk6IFByb21pc2U8T2djQXBpQ29sbGVjdGlvbkluZm8+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpXG4gICAgcmV0dXJuIGF3YWl0IGVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50LmdldENvbGxlY3Rpb25JbmZvKGNvbGxlY3Rpb25zWzBdLm5hbWUpXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRJdGVtc0Zyb21PZ2NBcGkodXJsOiBzdHJpbmcpOiBQcm9taXNlPE9nY0FwaVJlY29yZD4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuZmVhdHVyZUNvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25zLmxlbmd0aFxuICAgICAgICAgID8gZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW0oY29sbGVjdGlvbnNbMF0sICcxJylcbiAgICAgICAgICA6IG51bGxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRHZW9kYXRhTGlua3NGcm9tVG1zKFxuICAgIHRtc0xpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICAgIGtlZXBPcmlnaW5hbExpbmsgPSBmYWxzZVxuICApOiBQcm9taXNlPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uW10+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IG5ldyBUbXNFbmRwb2ludCh0bXNMaW5rLnVybC50b1N0cmluZygpKVxuICAgIGNvbnN0IHRpbGVNYXBzID0gYXdhaXQgZW5kcG9pbnQuYWxsVGlsZU1hcHMuY2F0Y2goKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBvZ2MudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgfSlcbiAgICBpZiAoIXRpbGVNYXBzPy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgICAvLyBUT0RPOiBhdCBzb21lIHBvaW50IHVzZSB0aGUgaWRlbnRpZmllckluU2VydmljZSBmaWVsZCBpZiBtb3JlIHRoYXQgb25lIGxheWVycyBpbiB0aGUgVE1TIHNlcnZpY2VcbiAgICBjb25zdCB0aWxlTWFwSW5mbyA9IGF3YWl0IGVuZHBvaW50LmdldFRpbGVNYXBJbmZvKHRpbGVNYXBzWzBdLmhyZWYpXG5cbiAgICAvLyBjYXNlIDE6IG5vIHN0eWxlczsgcmV0dXJuIGEgcGxhaW4gVE1TIGxpbmtcbiAgICBpZiAoIXRpbGVNYXBJbmZvPy5tZXRhZGF0YT8ubGVuZ3RoKSByZXR1cm4gW3Rtc0xpbmtdXG5cbiAgICAvLyBjYXNlIDI6IHN0eWxlcyBwcmVzZW50OyByZXR1cm4gZWFjaCBhcyBhIHNlcGFyYXRlIGxpbmtcbiAgICBjb25zdCBzdHlsZUxpbmtzID0gdGlsZU1hcEluZm8ubWV0YWRhdGFcbiAgICAgIC5maWx0ZXIoKG1ldGEpID0+IG1ldGEuaHJlZilcbiAgICAgIC5tYXAoKG1ldGEpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBtZXRhLmhyZWYuc3BsaXQoJy8nKS5wb3AoKSB8fCAnJ1xuICAgICAgICBjb25zdCBsaW5rTmFtZSA9XG4gICAgICAgICAgdG1zTGluay5kZXNjcmlwdGlvbiB8fCAoJ25hbWUnIGluIHRtc0xpbmsgPyB0bXNMaW5rLm5hbWUgOiAnJylcbiAgICAgICAgY29uc3Qgc3R5bGVOYW1lID0gZmlsZU5hbWUuc3BsaXQoJy4nKVswXVxuICAgICAgICBjb25zdCBuYW1lID0gYCR7bGlua05hbWV9IC0gJHtzdHlsZU5hbWV9YFxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgICB1cmw6IG5ldyBVUkwobWV0YS5ocmVmKSxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogJ21hcGxpYnJlLXN0eWxlJyxcbiAgICAgICAgfSBhcyBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICAgICAgfSlcbiAgICBpZiAoa2VlcE9yaWdpbmFsTGluaykge1xuICAgICAgc3R5bGVMaW5rcy51bnNoaWZ0KHRtc0xpbmspXG4gICAgfVxuICAgIHJldHVybiBzdHlsZUxpbmtzXG4gIH1cblxuICBnZXREb3dubG9hZExpbmtzRnJvbUVzcmlSZXN0KFxuICAgIGVzcmlSZXN0TGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgKTogRGF0YXNldE9ubGluZVJlc291cmNlW10ge1xuICAgIHJldHVybiBbJ2pzb24nLCAnZ2VvanNvbiddLm1hcCgoZm9ybWF0KSA9PiAoe1xuICAgICAgLi4uZXNyaVJlc3RMaW5rLFxuICAgICAgdXJsOiBuZXcgVVJMKFxuICAgICAgICB0aGlzLmdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KGVzcmlSZXN0TGluay51cmwudG9TdHJpbmcoKSwgZm9ybWF0KVxuICAgICAgKSxcbiAgICAgIG1pbWVUeXBlOiBnZXRNaW1lVHlwZUZvckZvcm1hdChnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZm9ybWF0KSksXG4gICAgfSkpXG4gIH1cblxuICByZWFkQXNHZW9Kc29uKFxuICAgIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgICBjYWNoZUFjdGl2ZTogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPEZlYXR1cmVDb2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldChsaW5rLCBjYWNoZUFjdGl2ZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZGF0YXNldCkgPT4gZGF0YXNldC5zZWxlY3RBbGwoKS5yZWFkKCkpLFxuICAgICAgbWFwKChmZWF0dXJlcykgPT4gKHtcbiAgICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICB3cml0ZUNvbmZpZ0FzSlNPTihjb25maWc6IERhdGF2aXpDb25maWdNb2RlbCk6IEZpbGUge1xuICAgIGNvbnN0IGpzb25Db250ZW50ID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKVxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbanNvbkNvbnRlbnRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgIHJldHVybiBuZXcgRmlsZShbYmxvYl0sICdkYXRhdml6Q29uZmlnLmpzb24nLCB7XG4gICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSlcbiAgfVxuXG4gIGdldERhdGFzZXQoXG4gICAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICAgIGNhY2hlQWN0aXZlOiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8QmFzZVJlYWRlcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgIGNvbnN0IHdmc1VybEVuZHBvaW50ID0gdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKGxpbmsudXJsLnRvU3RyaW5nKCkpXG4gICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgb3BlbkRhdGFzZXQoXG4gICAgICAgICAgd2ZzVXJsRW5kcG9pbnQsXG4gICAgICAgICAgJ3dmcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgd2ZzRmVhdHVyZVR5cGU6IGxpbmsubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhY2hlQWN0aXZlXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGxpbmsudHlwZSA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgY29uc3QgbGlua1Byb3hpZmllZFVybCA9IHRoaXMucHJveHkuZ2V0UHJveGllZFVybChsaW5rLnVybC50b1N0cmluZygpKVxuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgc3VwcG9ydGVkVHlwZSA9XG4gICAgICAgIFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZm9ybWF0IGFzIGFueSkgPiAtMVxuICAgICAgICAgID8gKGZvcm1hdCBhcyBTdXBwb3J0ZWRUeXBlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgb3BlbkRhdGFzZXQobGlua1Byb3hpZmllZFVybCwgc3VwcG9ydGVkVHlwZSwgdW5kZWZpbmVkLCBjYWNoZUFjdGl2ZSlcbiAgICAgICkucGlwZSgpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ2VzcmlSZXN0J1xuICAgICkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChcbiAgICAgICAgbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgJ2dlb2pzb24nXG4gICAgICApXG4gICAgICByZXR1cm4gZnJvbShvcGVuRGF0YXNldCh1cmwsICdnZW9qc29uJywgdW5kZWZpbmVkLCBjYWNoZUFjdGl2ZSkpLnBpcGUoKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcydcbiAgICApIHtcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaShsaW5rLnVybC5ocmVmKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uSW5mbykgPT4ge1xuICAgICAgICAgIGNvbnN0IGdlb2pzb25VcmwgPSBjb2xsZWN0aW9uSW5mby5qc29uRG93bmxvYWRMaW5rXG4gICAgICAgICAgcmV0dXJuIG9wZW5EYXRhc2V0KGdlb2pzb25VcmwsICdnZW9qc29uJywgdW5kZWZpbmVkLCBjYWNoZUFjdGl2ZSlcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgodXJsKSA9PiB7XG4gICAgICAgICAgaWYgKHVybCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZ2VvanNvbmdtbC5ub3RzdXBwb3J0ZWQnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG59XG4iXX0=
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCxXQUFXLEdBQ1osTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBR0wsV0FBVyxFQUVYLGNBQWMsR0FDZixNQUFNLDhDQUE4QyxDQUFBO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLG9CQUFvQixFQUNwQixZQUFZLEdBQ2IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQU9oRSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtBQUM5QixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUNsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtBQUNyQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUNqQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQUMvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUM1QixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUM3QixNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQTtBQUN2QyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtBQVcvQixNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFvQixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO0lBQUcsQ0FBQztJQUUzQyxjQUFjLENBQUMsTUFBYztRQUMzQixPQUFPLElBQUksQ0FDVCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM1RCxDQUFDLElBQUksQ0FDSixVQUFVLENBQUMsQ0FBQyxLQUF5QixFQUFFLEVBQUU7WUFDdkMsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7Z0JBQ3pDLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7Z0JBQ3pDLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7Z0JBQzFDLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFLENBQUM7b0JBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtnQkFDcEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtnQkFDNUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUNwQixNQUFjLEVBQ2QsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUE7WUFDL0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUNoRCxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWU7Z0JBQzNDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDdEIsQ0FBQyxDQUFDLGVBQWUsQ0FDcEIsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1lBQzdDLENBQUM7WUFDRCxPQUFPO2dCQUNMLEdBQUcsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNmLEdBQUcsSUFBSTtvQkFDUCxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTt3QkFDL0MsWUFBWSxFQUFFLElBQUk7cUJBQ25CLENBQUM7aUJBQ0gsQ0FBQyxFQUNGLEVBQUUsQ0FDSDtnQkFDRCxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUM5QyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO3dCQUN2QyxNQUFNLEVBQUUsSUFBSTt3QkFDWixTQUFTLEVBQUUsV0FBVztxQkFDdkIsQ0FBQztvQkFDSixDQUFDLENBQUMsSUFBSTtnQkFDUixHQUFHLEVBQ0QsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUNoQztvQkFDRCxDQUFDLFdBQVcsQ0FBQyxVQUFVLEtBQUssV0FBVzt3QkFDckMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzVDLENBQUMsQ0FBQzt3QkFDRSxVQUFVLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFOzRCQUNuRCxZQUFZLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqRCxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUNoQzs0QkFDRCxTQUFTLEVBQUUsV0FBVzt5QkFDdkIsQ0FBQzt3QkFDRixTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUk7d0JBQzNCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFO3FCQUNsQztvQkFDSCxDQUFDLENBQUMsSUFBSTthQUNYLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUNoQixNQUFjLEVBQ2QsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDckMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN2RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUM3QixHQUFHLE1BQU0sWUFBWSxNQUFNLHdCQUF3QixDQUNwRCxDQUFBO0lBQ0gsQ0FBQztJQUVELHVCQUF1QixDQUNyQixPQUFtQztRQUVuQyw2QkFBNkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDN0MsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxNQUFNLFNBQVMsR0FBNEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUNsRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDWCxHQUFHLE9BQU87Z0JBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixJQUFJLEVBQUUsVUFBbUI7Z0JBQ3pCLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixRQUFRLEVBQUUsb0JBQW9CLENBQzVCLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUN2QzthQUNGLENBQUMsQ0FDSCxDQUFBO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsa0NBQWtDLENBQ3RDLFVBQXNDO1FBRXRDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUN6RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDcEIsQ0FBQTtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN4RSxPQUFPO2dCQUNMLEdBQUcsVUFBVTtnQkFDYixJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM1RCxRQUFRLEVBQUUsb0JBQW9CLENBQzVCLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxDQUM3QzthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQUMsR0FBVztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4QyxPQUFPLE1BQU0sUUFBUSxDQUFDLGNBQWM7YUFDakMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hELENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBQzVDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3hDLE9BQU8sTUFBTSxRQUFRLENBQUMsa0JBQWtCO2FBQ3JDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sV0FBVyxDQUFDLE1BQU07Z0JBQ3ZCLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUNWLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUMxQixPQUFtQyxFQUNuQyxnQkFBZ0IsR0FBRyxLQUFLO1FBRXhCLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxDQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDM0QsQ0FBQTtRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRWxDLG1HQUFtRztRQUNuRyxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRW5FLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNO1lBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXBELHlEQUF5RDtRQUN6RCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUTthQUNwQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDM0IsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUE7WUFDakQsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDeEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLE1BQU0sU0FBUyxFQUFFLENBQUE7WUFDekMsT0FBTztnQkFDTCxJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSTtnQkFDSixxQkFBcUIsRUFBRSxnQkFBZ0I7YUFDVixDQUFBO1FBQ2pDLENBQUMsQ0FBQyxDQUFBO1FBQ0osSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0IsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFRCw0QkFBNEIsQ0FDMUIsWUFBd0M7UUFFeEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxZQUFZO1lBQ2YsR0FBRyxFQUFFLElBQUksR0FBRyxDQUNWLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUNyRTtZQUNELFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2RSxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFRCxhQUFhLENBQ1gsSUFBMkIsRUFDM0IsV0FBb0I7UUFFcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzVDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQ2xELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVE7U0FDVCxDQUFDLENBQUMsQ0FDSixDQUFBO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQTBCO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtRQUNsRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsb0JBQW9CLEVBQUU7WUFDNUMsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUNSLElBQTJCLEVBQzNCLFdBQW9CO1FBRXBCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3BFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNwRSxPQUFPLElBQUksQ0FDVCxXQUFXLENBQ1QsY0FBYyxFQUNkLEtBQUssRUFDTDtnQkFDRSxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDMUIsRUFDRCxXQUFXLENBQ1osQ0FDRixDQUFBO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUN0RSxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbEMsTUFBTSxhQUFhLEdBQ2pCLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDLENBQUUsTUFBd0I7Z0JBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUE7WUFDZixPQUFPLElBQUksQ0FDVCxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FDckUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNWLENBQUM7YUFBTSxJQUNMLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN2QixJQUFJLENBQUMscUJBQXFCLEtBQUssVUFBVSxFQUN6QyxDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUNuQixTQUFTLENBQ1YsQ0FBQTtZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3pFLENBQUM7YUFBTSxJQUNMLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN2QixJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxFQUM1QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUE7Z0JBQ2xELE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ25FLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNWLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQzsrR0FsVFUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7XG4gIE9nY0FwaUNvbGxlY3Rpb25JbmZvLFxuICBPZ2NBcGlFbmRwb2ludCxcbiAgT2djQXBpUmVjb3JkLFxuICBXZnNFbmRwb2ludCxcbiAgV2ZzVmVyc2lvbixcbiAgVG1zRW5kcG9pbnQsXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQge1xuICBCYXNlUmVhZGVyLFxuICBGZXRjaEVycm9yLFxuICBvcGVuRGF0YXNldCxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuaW1wb3J0IHtcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0LFxuICBnZXRNaW1lVHlwZUZvckZvcm1hdCxcbiAgUHJveHlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBEYXRhdml6Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcblxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUuY29ycycpXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS5odHRwJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5mb3JiaWRkZW4nKVxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUudW5rbm93bicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG5tYXJrZXIoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG5tYXJrZXIoJ29nYy51bnJlYWNoYWJsZS51bmtub3duJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5uZXR3b3JrJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5odHRwJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5wYXJzZScpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IudW5zdXBwb3J0ZWRUeXBlJylcbm1hcmtlcignZGF0YXNldC5lcnJvci51bmtub3duJylcblxuaW50ZXJmYWNlIFdmc0Rvd25sb2FkVXJscyB7XG4gIGFsbDogeyBbZm9ybWF0OiBzdHJpbmddOiBzdHJpbmcgfVxuICBnZW9qc29uOiBzdHJpbmdcbiAgZ21sOiB7IGZlYXR1cmVVcmw6IHN0cmluZzsgbmFtZXNwYWNlOiBzdHJpbmc7IHdmc1ZlcnNpb246IFdmc1ZlcnNpb24gfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb3h5OiBQcm94eVNlcnZpY2UpIHt9XG5cbiAgZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdmc0VuZHBvaW50PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBuZXcgV2ZzRW5kcG9pbnQodGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKHdmc1VybCkpLmlzUmVhZHkoKVxuICAgICkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ25ldHdvcmsnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5jb3JzYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICdodHRwJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUuaHR0cGApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAncGFyc2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5wYXJzZWApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAndW5zdXBwb3J0ZWRUeXBlJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5zdXBwb3J0ZWRUeXBlYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkVXJsc0Zyb21XZnMoXG4gICAgd2ZzVXJsOiBzdHJpbmcsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxXZnNEb3dubG9hZFVybHM+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXZnNFbmRwb2ludCh3ZnNVcmwpLnBpcGUoXG4gICAgICBtYXAoKGVuZHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGVuZHBvaW50LmdldEZlYXR1cmVUeXBlcygpXG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlID0gZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVTdW1tYXJ5KFxuICAgICAgICAgIGZlYXR1cmVUeXBlcy5sZW5ndGggPT09IDEgJiYgIWZlYXR1cmVUeXBlTmFtZVxuICAgICAgICAgICAgPyBmZWF0dXJlVHlwZXNbMF0ubmFtZVxuICAgICAgICAgICAgOiBmZWF0dXJlVHlwZU5hbWVcbiAgICAgICAgKVxuICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWxsOiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbY3Vycl06IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdDogY3VycixcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBnZW9qc29uOiBlbmRwb2ludC5zdXBwb3J0c0pzb24oZmVhdHVyZVR5cGUubmFtZSlcbiAgICAgICAgICAgID8gZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgYXNKc29uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgZ21sOlxuICAgICAgICAgICAgZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5maW5kKChmKSA9PlxuICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICAoZmVhdHVyZVR5cGUuZGVmYXVsdENycyA9PT0gJ0VQU0c6NDMyNicgfHxcbiAgICAgICAgICAgICAgZmVhdHVyZVR5cGUub3RoZXJDcnM/LmluY2x1ZGVzKCdFUFNHOjQzMjYnKSlcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlVXJsOiBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0OiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgICAgICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6IGZlYXR1cmVUeXBlLm5hbWUsXG4gICAgICAgICAgICAgICAgICB3ZnNWZXJzaW9uOiBlbmRwb2ludC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0V2ZzRmVhdHVyZUNvdW50KFxuICAgIHdmc1VybDogc3RyaW5nLFxuICAgIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChlbmRwb2ludCkgPT5cbiAgICAgICAgZnJvbShlbmRwb2ludC5nZXRGZWF0dXJlVHlwZUZ1bGwoZmVhdHVyZVR5cGVOYW1lKSkucGlwZShcbiAgICAgICAgICBtYXAoKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVHlwZS5vYmplY3RDb3VudFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChhcGlVcmw6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwoXG4gICAgICBgJHthcGlVcmx9L3F1ZXJ5P2Y9JHtmb3JtYXR9JndoZXJlPTE9MSZvdXRGaWVsZHM9KmBcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZExpbmtzRnJvbVdmcyhcbiAgICB3ZnNMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdPiB7XG4gICAgLy8gUG91ciBETCB0b3V0ZXMgbGVzIGRvbm7DqWVzXG4gICAgcmV0dXJuIHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbVdmcyhcbiAgICAgIHdmc0xpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB3ZnNMaW5rLm5hbWVcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHVybHMpID0+IHtcbiAgICAgICAgaWYgKHVybHMuZ2VvanNvbikge1xuICAgICAgICAgIHVybHMuYWxsWydhcHBsaWNhdGlvbi9qc29uJ10gPSB1cmxzLmdlb2pzb25cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsc1xuICAgICAgfSksXG4gICAgICBtYXAoKHVybHMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VzOiBEYXRhc2V0T25saW5lUmVzb3VyY2VbXSA9IE9iamVjdC5rZXlzKHVybHMuYWxsKS5tYXAoXG4gICAgICAgICAgKGZvcm1hdCkgPT4gKHtcbiAgICAgICAgICAgIC4uLndmc0xpbmssXG4gICAgICAgICAgICBuYW1lOiB3ZnNMaW5rLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiAnZG93bmxvYWQnIGFzIGNvbnN0LFxuICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHVybHMuYWxsW2Zvcm1hdF0pLFxuICAgICAgICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KFxuICAgICAgICAgICAgICBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZm9ybWF0KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIHJldHVybiByZXNvdXJjZXNcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgZ2V0RG93bmxvYWRMaW5rc0Zyb21PZ2NBcGlGZWF0dXJlcyhcbiAgICBvZ2NBcGlMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBQcm9taXNlPERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdPiB7XG4gICAgY29uc3QgY29sbGVjdGlvbkluZm8gPSBhd2FpdCB0aGlzLmdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkoXG4gICAgICBvZ2NBcGlMaW5rLnVybC5ocmVmXG4gICAgKVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhjb2xsZWN0aW9uSW5mby5idWxrRG93bmxvYWRMaW5rcykubWFwKChkb3dubG9hZExpbmspID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9nY0FwaUxpbmssXG4gICAgICAgIG5hbWU6IGNvbGxlY3Rpb25JbmZvLmlkLFxuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwoY29sbGVjdGlvbkluZm8uYnVsa0Rvd25sb2FkTGlua3NbZG93bmxvYWRMaW5rXSksXG4gICAgICAgIG1pbWVUeXBlOiBnZXRNaW1lVHlwZUZvckZvcm1hdChcbiAgICAgICAgICBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZG93bmxvYWRMaW5rKVxuICAgICAgICApLFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXREb3dubG9hZFVybHNGcm9tT2djQXBpKHVybDogc3RyaW5nKTogUHJvbWlzZTxPZ2NBcGlDb2xsZWN0aW9uSW5mbz4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuYWxsQ29sbGVjdGlvbnNcbiAgICAgIC50aGVuKChjb2xsZWN0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8oY29sbGVjdGlvbnNbMF0ubmFtZSlcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgb2djLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEl0ZW1zRnJvbU9nY0FwaSh1cmw6IHN0cmluZyk6IFByb21pc2U8T2djQXBpUmVjb3JkPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodXJsKVxuICAgIHJldHVybiBhd2FpdCBlbmRwb2ludC5mZWF0dXJlQ29sbGVjdGlvbnNcbiAgICAgIC50aGVuKChjb2xsZWN0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbnMubGVuZ3RoXG4gICAgICAgICAgPyBlbmRwb2ludC5nZXRDb2xsZWN0aW9uSXRlbShjb2xsZWN0aW9uc1swXSwgJzEnKVxuICAgICAgICAgIDogbnVsbFxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgb2djLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEdlb2RhdGFMaW5rc0Zyb21UbXMoXG4gICAgdG1zTGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gICAga2VlcE9yaWdpbmFsTGluayA9IGZhbHNlXG4gICk6IFByb21pc2U8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25bXT4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IFRtc0VuZHBvaW50KFxuICAgICAgdG1zTGluay51cmwudG9TdHJpbmcoKS5yZXBsYWNlKC9cXC8/JC8sIGAvJHt0bXNMaW5rLm5hbWV9YClcbiAgICApXG4gICAgY29uc3QgdGlsZU1hcHMgPSBhd2FpdCBlbmRwb2ludC5hbGxUaWxlTWFwcy5jYXRjaCgoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICB9KVxuICAgIGlmICghdGlsZU1hcHM/Lmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICAgIC8vIFRPRE86IGF0IHNvbWUgcG9pbnQgdXNlIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlIGZpZWxkIGlmIG1vcmUgdGhhdCBvbmUgbGF5ZXJzIGluIHRoZSBUTVMgc2VydmljZVxuICAgIGNvbnN0IHRpbGVNYXBJbmZvID0gYXdhaXQgZW5kcG9pbnQuZ2V0VGlsZU1hcEluZm8odGlsZU1hcHNbMF0uaHJlZilcblxuICAgIC8vIGNhc2UgMTogbm8gc3R5bGVzOyByZXR1cm4gYSBwbGFpbiBUTVMgbGlua1xuICAgIGlmICghdGlsZU1hcEluZm8/Lm1ldGFkYXRhPy5sZW5ndGgpIHJldHVybiBbdG1zTGlua11cblxuICAgIC8vIGNhc2UgMjogc3R5bGVzIHByZXNlbnQ7IHJldHVybiBlYWNoIGFzIGEgc2VwYXJhdGUgbGlua1xuICAgIGNvbnN0IHN0eWxlTGlua3MgPSB0aWxlTWFwSW5mby5tZXRhZGF0YVxuICAgICAgLmZpbHRlcigobWV0YSkgPT4gbWV0YS5ocmVmKVxuICAgICAgLm1hcCgobWV0YSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IG1ldGEuaHJlZi5zcGxpdCgnLycpLnBvcCgpIHx8ICcnXG4gICAgICAgIGNvbnN0IGxpbmtOYW1lID1cbiAgICAgICAgICB0bXNMaW5rLmRlc2NyaXB0aW9uIHx8ICgnbmFtZScgaW4gdG1zTGluayA/IHRtc0xpbmsubmFtZSA6ICcnKVxuICAgICAgICBjb25zdCBzdHlsZU5hbWUgPSBmaWxlTmFtZS5zcGxpdCgnLicpWzBdXG4gICAgICAgIGNvbnN0IG5hbWUgPSBgJHtsaW5rTmFtZX0gLSAke3N0eWxlTmFtZX1gXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgICAgICAgIHVybDogbmV3IFVSTChtZXRhLmhyZWYpLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgYWNjZXNzU2VydmljZVByb3RvY29sOiAnbWFwbGlicmUtc3R5bGUnLFxuICAgICAgICB9IGFzIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICAgICB9KVxuICAgIGlmIChrZWVwT3JpZ2luYWxMaW5rKSB7XG4gICAgICBzdHlsZUxpbmtzLnVuc2hpZnQodG1zTGluaylcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlTGlua3NcbiAgfVxuXG4gIGdldERvd25sb2FkTGlua3NGcm9tRXNyaVJlc3QoXG4gICAgZXNyaVJlc3RMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBEYXRhc2V0T25saW5lUmVzb3VyY2VbXSB7XG4gICAgcmV0dXJuIFsnanNvbicsICdnZW9qc29uJ10ubWFwKChmb3JtYXQpID0+ICh7XG4gICAgICAuLi5lc3JpUmVzdExpbmssXG4gICAgICB1cmw6IG5ldyBVUkwoXG4gICAgICAgIHRoaXMuZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoZXNyaVJlc3RMaW5rLnVybC50b1N0cmluZygpLCBmb3JtYXQpXG4gICAgICApLFxuICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChmb3JtYXQpKSxcbiAgICB9KSlcbiAgfVxuXG4gIHJlYWRBc0dlb0pzb24oXG4gICAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICAgIGNhY2hlQWN0aXZlOiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0KGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChkYXRhc2V0KSA9PiBkYXRhc2V0LnNlbGVjdEFsbCgpLnJlYWQoKSksXG4gICAgICBtYXAoKGZlYXR1cmVzKSA9PiAoe1xuICAgICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgICBmZWF0dXJlcyxcbiAgICAgIH0pKVxuICAgIClcbiAgfVxuXG4gIHdyaXRlQ29uZmlnQXNKU09OKGNvbmZpZzogRGF0YXZpekNvbmZpZ01vZGVsKTogRmlsZSB7XG4gICAgY29uc3QganNvbkNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShjb25maWcsIG51bGwsIDIpXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uQ29udGVudF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgcmV0dXJuIG5ldyBGaWxlKFtibG9iXSwgJ2RhdGF2aXpDb25maWcuanNvbicsIHtcbiAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9KVxuICB9XG5cbiAgZ2V0RGF0YXNldChcbiAgICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gICAgY2FjaGVBY3RpdmU6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxCYXNlUmVhZGVyPiB7XG4gICAgaWYgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgY29uc3Qgd2ZzVXJsRW5kcG9pbnQgPSB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwobGluay51cmwudG9TdHJpbmcoKSlcbiAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICBvcGVuRGF0YXNldChcbiAgICAgICAgICB3ZnNVcmxFbmRwb2ludCxcbiAgICAgICAgICAnd2ZzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZnNGZWF0dXJlVHlwZTogbGluay5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2FjaGVBY3RpdmVcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAobGluay50eXBlID09PSAnZG93bmxvYWQnKSB7XG4gICAgICBjb25zdCBsaW5rUHJveGlmaWVkVXJsID0gdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKGxpbmsudXJsLnRvU3RyaW5nKCkpXG4gICAgICBjb25zdCBmb3JtYXQgPSBnZXRGaWxlRm9ybWF0KGxpbmspXG4gICAgICBjb25zdCBzdXBwb3J0ZWRUeXBlID1cbiAgICAgICAgU3VwcG9ydGVkVHlwZXMuaW5kZXhPZihmb3JtYXQgYXMgYW55KSA+IC0xXG4gICAgICAgICAgPyAoZm9ybWF0IGFzIFN1cHBvcnRlZFR5cGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICBvcGVuRGF0YXNldChsaW5rUHJveGlmaWVkVXJsLCBzdXBwb3J0ZWRUeXBlLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKVxuICAgICAgKS5waXBlKClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnZXNyaVJlc3QnXG4gICAgKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KFxuICAgICAgICBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICAnZ2VvanNvbidcbiAgICAgIClcbiAgICAgIHJldHVybiBmcm9tKG9wZW5EYXRhc2V0KHVybCwgJ2dlb2pzb24nLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKSkucGlwZSgpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIGZyb20odGhpcy5nZXREb3dubG9hZFVybHNGcm9tT2djQXBpKGxpbmsudXJsLmhyZWYpKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb25JbmZvKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ2VvanNvblVybCA9IGNvbGxlY3Rpb25JbmZvLmpzb25Eb3dubG9hZExpbmtcbiAgICAgICAgICByZXR1cm4gb3BlbkRhdGFzZXQoZ2VvanNvblVybCwgJ2dlb2pzb24nLCB1bmRlZmluZWQsIGNhY2hlQWN0aXZlKVxuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCh1cmwpID0+IHtcbiAgICAgICAgICBpZiAodXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { extend } from 'ol/extent';
|
|
3
|
-
import
|
|
3
|
+
import { getGeometryBoundingBox } from '../../../../../../libs/util/shared/src';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
const GEOJSON = new GeoJSON();
|
|
6
5
|
export class MapUtilsService {
|
|
7
6
|
getRecordExtent(record) {
|
|
8
7
|
if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
|
|
@@ -13,8 +12,7 @@ export class MapUtilsService {
|
|
|
13
12
|
if ('bbox' in curr)
|
|
14
13
|
return extend(prev, curr.bbox);
|
|
15
14
|
else if ('geometry' in curr) {
|
|
16
|
-
|
|
17
|
-
return extend(prev, geom.getExtent());
|
|
15
|
+
return extend(prev, getGeometryBoundingBox(curr.geometry));
|
|
18
16
|
}
|
|
19
17
|
return prev;
|
|
20
18
|
}, [Infinity, Infinity, -Infinity, -Infinity]);
|
|
@@ -28,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28
26
|
providedIn: 'root',
|
|
29
27
|
}]
|
|
30
28
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWxDLE9BQU8sRUFBZSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOztBQUs1RixNQUFNLE9BQU8sZUFBZTtJQUMxQixlQUFlLENBQUMsTUFBOEI7UUFDNUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0Qsd0RBQXdEO1FBQ3hELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQ2pDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2IsSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBZ0IsQ0FBQTtpQkFDNUQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sTUFBTSxDQUNYLElBQUksRUFDSixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3ZCLENBQUE7WUFDbEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxFQUNELENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQzsrR0FuQlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGV4dGVuZCB9IGZyb20gJ29sL2V4dGVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBCb3VuZGluZ0JveCwgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVXRpbHNTZXJ2aWNlIHtcbiAgZ2V0UmVjb3JkRXh0ZW50KHJlY29yZDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPik6IEJvdW5kaW5nQm94IHtcbiAgICBpZiAoISgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCkgfHwgcmVjb3JkLnNwYXRpYWxFeHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGFsbCB0aGUgc3BhdGlhbCBleHRlbnRzIGludG8gYW4gaW5jbHVkaW5nIGJib3hcbiAgICByZXR1cm4gcmVjb3JkLnNwYXRpYWxFeHRlbnRzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIGlmICgnYmJveCcgaW4gY3VycikgcmV0dXJuIGV4dGVuZChwcmV2LCBjdXJyLmJib3gpIGFzIEJvdW5kaW5nQm94XG4gICAgICAgIGVsc2UgaWYgKCdnZW9tZXRyeScgaW4gY3Vycikge1xuICAgICAgICAgIHJldHVybiBleHRlbmQoXG4gICAgICAgICAgICBwcmV2LFxuICAgICAgICAgICAgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveChjdXJyLmdlb21ldHJ5KVxuICAgICAgICAgICkgYXMgQm91bmRpbmdCb3hcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfSxcbiAgICAgIFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XVxuICAgIClcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fromActions from './actions';
|
|
2
2
|
import { DEFAULT_SEARCH_KEY } from './actions';
|
|
3
3
|
import { DEFAULT_PAGE_SIZE, FIELDS_SUMMARY } from '../constants';
|
|
4
|
+
import { getOptionalSearchConfig } from '../../../../../../libs/util/app-config/src';
|
|
4
5
|
export const SEARCH_FEATURE_KEY = 'searchState';
|
|
5
6
|
export const initSearch = () => {
|
|
6
7
|
return {
|
|
@@ -11,7 +12,9 @@ export const initSearch = () => {
|
|
|
11
12
|
},
|
|
12
13
|
params: {
|
|
13
14
|
filters: {},
|
|
14
|
-
pageSize:
|
|
15
|
+
pageSize: getOptionalSearchConfig()?.LIMIT
|
|
16
|
+
? getOptionalSearchConfig().LIMIT
|
|
17
|
+
: DEFAULT_PAGE_SIZE,
|
|
15
18
|
currentPage: 0,
|
|
16
19
|
favoritesOnly: false,
|
|
17
20
|
useSpatialFilter: true,
|
|
@@ -283,4 +286,4 @@ export function reducerSearch(state, action) {
|
|
|
283
286
|
}
|
|
284
287
|
return state;
|
|
285
288
|
}
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR2hFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQTtBQW9DL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQXNCLEVBQUU7SUFDaEQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLGNBQWM7WUFDdEIsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLEVBQUUsS0FBSztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsY0FBYyxFQUFFLEtBQUs7UUFDckIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQjtJQUN2QyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsVUFBVSxFQUFFO0NBQ25DLENBQUE7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixLQUFLLEdBQUcsWUFBWSxFQUNwQixNQUFpQztJQUVqQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdB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S0FBSyxXQUFXLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO29CQUNoQixZQUFZLEVBQUU7d0JBQ1osR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVk7d0JBQzdCLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3FCQUN6QztpQkFDRjthQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQTtZQUNoQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO2dCQUN4QixjQUFjLEVBQUUsS0FBSzthQUN0QixDQUFBO1FBQ0gsQ0FBQztRQUVELEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFBO1FBQ0gsQ0FBQztRQUVELEtBQUssV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUU7b0JBQ04sR0FBRyxLQUFLLENBQUMsTUFBTTtvQkFDZixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDakM7YUFDRixDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBERUZBVUxUX1NFQVJDSF9LRVkgfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbnMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWVsZE5hbWUsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSwgRklFTERTX1NVTU1BUlkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5leHBvcnQgY29uc3QgU0VBUkNIX0ZFQVRVUkVfS0VZID0gJ3NlYXJjaFN0YXRlJ1xuXG5leHBvcnQgdHlwZSBTZWFyY2hTdGF0ZVBhcmFtcyA9IHtcbiAgZmlsdGVycz86IEZpZWxkRmlsdGVyc1xuICBjdXJyZW50UGFnZTogbnVtYmVyIC8vIHplcm8tYmFzZWRcbiAgcGFnZVNpemU6IG51bWJlclxuICBzb3J0PzogU29ydEJ5RmllbGRcbiAgZmllbGRzPzogRmllbGROYW1lW11cbiAgZmF2b3JpdGVzT25seT86IGJvb2xlYW5cbiAgdXNlU3BhdGlhbEZpbHRlcj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgU2VhcmNoRXJyb3IgPSB7XG4gIGNvZGU6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbn0gfCBudWxsXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU3RhdGVTZWFyY2gge1xuICBjb25maWc6IHtcbiAgICBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uc1BhcmFtc1xuICAgIGZpbHRlcnM6IEZpZWxkRmlsdGVyc1xuICAgIHNvdXJjZTogRmllbGROYW1lW11cbiAgfVxuICBwYXJhbXM6IFNlYXJjaFN0YXRlUGFyYW1zXG4gIHJlc3VsdHM6IHtcbiAgICBjb3VudDogbnVtYmVyXG4gICAgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdXG4gICAgYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNcbiAgfVxuICByZXN1bHRzTGF5b3V0Pzogc3RyaW5nXG4gIGxvYWRpbmdSZXN1bHRzOiBib29sZWFuXG4gIGVycm9yOiBTZWFyY2hFcnJvclxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hTdGF0ZSA9IHsgW2tleTogc3RyaW5nXTogU2VhcmNoU3RhdGVTZWFyY2ggfVxuXG5leHBvcnQgY29uc3QgaW5pdFNlYXJjaCA9ICgpOiBTZWFyY2hTdGF0ZVNlYXJjaCA9PiB7XG4gIHJldHVybiB7XG4gICAgY29uZmlnOiB7XG4gICAgICBmaWx0ZXJzOiB7fSxcbiAgICAgIHNvdXJjZTogRklFTERTX1NVTU1BUlksXG4gICAgICBhZ2dyZWdhdGlvbnM6IHt9LFxuICAgIH0sXG4gICAgcGFyYW1zOiB7XG4gICAgICBmaWx0ZXJzOiB7fSxcbiAgICAgIHBhZ2VTaXplOiBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIGN1cnJlbnRQYWdlOiAwLFxuICAgICAgZmF2b3JpdGVzT25seTogZmFsc2UsXG4gICAgICB1c2VTcGF0aWFsRmlsdGVyOiB0cnVlLFxuICAgIH0sXG4gICAgcmVzdWx0czoge1xuICAgICAgY291bnQ6IDAsXG4gICAgICByZWNvcmRzOiBbXSxcbiAgICAgIGFnZ3JlZ2F0aW9uczoge30sXG4gICAgfSxcbiAgICBsb2FkaW5nUmVzdWx0czogZmFsc2UsXG4gICAgZXJyb3I6IG51bGwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU2VhcmNoU3RhdGUgPSB7XG4gIFtERUZBVUxUX1NFQVJDSF9LRVldOiBpbml0U2VhcmNoKCksXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgYWN0aW9uOiBmcm9tQWN0aW9ucy5TZWFyY2hBY3Rpb25zXG4pOiBTZWFyY2hTdGF0ZSB7XG4gIGNvbnN0IHsgaWQgfSA9IGFjdGlvblxuICBpZiAoaWQpIHtcbiAgICBsZXQgc3RhdGVTZWFyY2ggPSBzdGF0ZVtpZF0gfHwgaW5pdFNlYXJjaCgpXG4gICAgaWYgKGFjdGlvbi50eXBlICE9PSBmcm9tQWN0aW9ucy5BRERfU0VBUkNIKSB7XG4gICAgICBzdGF0ZVNlYXJjaCA9IHJlZHVjZXJTZWFyY2goc3RhdGVTZWFyY2gsIGFjdGlvbilcbiAgICB9XG4gICAgaWYgKHN0YXRlU2VhcmNoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW2lkXTogc3RhdGVTZWFyY2gsXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlclNlYXJjaChcbiAgc3RhdGU6IFNlYXJjaFN0YXRlU2VhcmNoLFxuICBhY3Rpb246IGZyb21BY3Rpb25zLlNlYXJjaEFjdGlvbnNcbik6IFNlYXJjaFN0YXRlU2VhcmNoIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0NPTkZJR19GSUxURVJTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIGZpbHRlcnM6IHsgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfRklMVEVSUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmaWx0ZXJzOiB7IC4uLmFjdGlvbi5wYXlsb2FkIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuVVBEQVRFX0ZJTFRFUlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgLi4uc3RhdGUucGFyYW1zLmZpbHRlcnMsXG4gICAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9TRUFSQ0g6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfU09SVF9CWToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBzb3J0OiBhY3Rpb24uc29ydEJ5LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9GQVZPUklURVNfT05MWToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmYXZvcml0ZXNPbmx5OiBhY3Rpb24uZmF2b3JpdGVzT25seSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUEFHRV9TSVpFOiB7XG4gICAgICBjb25zdCB7IGxpbWl0IH0gPSBhY3Rpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgcGFnZVNpemU6IGxpbWl0LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlBBR0lOQVRFOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGN1cnJlbnRQYWdlOiBhY3Rpb24ucGFnZU51bWJlciAtIDEsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1JFU1VMVFNfTEFZT1VUOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0c0xheW91dDogYWN0aW9uLnJlc3VsdHNMYXlvdXQsXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuQUREX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICByZWNvcmRzOiBbLi4uc3RhdGUucmVzdWx0cy5yZWNvcmRzLCAuLi5hY3Rpb24ucGF5bG9hZF0sXG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DTEVBUl9SRVNVTFRTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgcmVjb3JkczogW10sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9NT1JFX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgY3VycmVudFBhZ2U6IHN0YXRlLnBhcmFtcy5jdXJyZW50UGFnZSArIDEsXG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiB0cnVlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlJFUVVFU1RfTkVXX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkaW5nUmVzdWx0czogdHJ1ZSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUkVTVUxUU19ISVRTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgY291bnQ6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9SRVNVTFRTX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0NPTkZJR19BR0dSRUdBVElPTlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5VUERBVEVfQ09ORklHX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLnN0YXRlLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IHsgLi4uc3RhdGUuY29uZmlnLmFnZ3JlZ2F0aW9ucywgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX1JFUVVFU1RfRklFTERTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIHNvdXJjZTogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9NT1JFX09OX0FHR1JFR0FUSU9OOiB7XG4gICAgICBjb25zdCBjb25maWcgPSBzdGF0ZS5jb25maWdcbiAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uID0gY29uZmlnLmFnZ3JlZ2F0aW9uc1thY3Rpb24uYWdncmVnYXRpb25OYW1lXVxuICAgICAgaWYgKGFnZ3JlZ2F0aW9uLnR5cGUgIT09ICd0ZXJtcycpIHJldHVybiBzdGF0ZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5hZ2dyZWdhdGlvbnMsXG4gICAgICAgICAgICBbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV06IHtcbiAgICAgICAgICAgICAgLi4uYWdncmVnYXRpb24sXG4gICAgICAgICAgICAgIGxpbWl0OiBhZ2dyZWdhdGlvbi5saW1pdCArIGFjdGlvbi5pbmNyZW1lbnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0lOQ0xVREVfT05fQUdHUkVHQVRJT046IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLmNvbmZpZ1xuICAgICAgY29uc3QgYWdncmVnYXRpb24gPSBjb25maWcuYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdXG4gICAgICBpZiAoYWdncmVnYXRpb24udHlwZSAhPT0gJ3Rlcm1zJykgcmV0dXJuIHN0YXRlXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uY29uZmlnLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXToge1xuICAgICAgICAgICAgICAuLi5hZ2dyZWdhdGlvbixcbiAgICAgICAgICAgICAgZmlsdGVyOiBhY3Rpb24uaW5jbHVkZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5QQVRDSF9SRVNVTFRTX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5hZ2dyZWdhdGlvbnMsXG4gICAgICAgICAgICBbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV06IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfRVJST1I6IHtcbiAgICAgIGNvbnN0IHsgY29kZSwgbWVzc2FnZSB9ID0gYWN0aW9uXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IHsgY29kZSwgbWVzc2FnZSB9LFxuICAgICAgICBsb2FkaW5nUmVzdWx0czogZmFsc2UsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DTEVBUl9FUlJPUjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1NQQVRJQUxfRklMVEVSX0VOQUJMRUQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgdXNlU3BhdGlhbEZpbHRlcjogYWN0aW9uLmVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlXG59XG4iXX0=
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBR3BGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQTtBQW9DL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQXNCLEVBQUU7SUFDaEQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLGNBQWM7WUFDdEIsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEtBQUs7Z0JBQ3hDLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUs7Z0JBQ2pDLENBQUMsQ0FBQyxpQkFBaUI7WUFDckIsV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLEVBQUUsS0FBSztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsY0FBYyxFQUFFLEtBQUs7UUFDckIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQjtJQUN2QyxD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dGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBERUZBVUxUX1NFQVJDSF9LRVkgfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbnMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWVsZE5hbWUsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSwgRklFTERTX1NVTU1BUlkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRPcHRpb25hbFNlYXJjaENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYydcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCBjb25zdCBTRUFSQ0hfRkVBVFVSRV9LRVkgPSAnc2VhcmNoU3RhdGUnXG5cbmV4cG9ydCB0eXBlIFNlYXJjaFN0YXRlUGFyYW1zID0ge1xuICBmaWx0ZXJzPzogRmllbGRGaWx0ZXJzXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgLy8gemVyby1iYXNlZFxuICBwYWdlU2l6ZTogbnVtYmVyXG4gIHNvcnQ/OiBTb3J0QnlGaWVsZFxuICBmaWVsZHM/OiBGaWVsZE5hbWVbXVxuICBmYXZvcml0ZXNPbmx5PzogYm9vbGVhblxuICB1c2VTcGF0aWFsRmlsdGVyPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hFcnJvciA9IHtcbiAgY29kZTogbnVtYmVyXG4gIG1lc3NhZ2U6IHN0cmluZ1xufSB8IG51bGxcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hTdGF0ZVNlYXJjaCB7XG4gIGNvbmZpZzoge1xuICAgIGFnZ3JlZ2F0aW9uczogQWdncmVnYXRpb25zUGFyYW1zXG4gICAgZmlsdGVyczogRmllbGRGaWx0ZXJzXG4gICAgc291cmNlOiBGaWVsZE5hbWVbXVxuICB9XG4gIHBhcmFtczogU2VhcmNoU3RhdGVQYXJhbXNcbiAgcmVzdWx0czoge1xuICAgIGNvdW50OiBudW1iZXJcbiAgICByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW11cbiAgICBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uc1xuICB9XG4gIHJlc3VsdHNMYXlvdXQ/OiBzdHJpbmdcbiAgbG9hZGluZ1Jlc3VsdHM6IGJvb2xlYW5cbiAgZXJyb3I6IFNlYXJjaEVycm9yXG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaFN0YXRlID0geyBba2V5OiBzdHJpbmddOiBTZWFyY2hTdGF0ZVNlYXJjaCB9XG5cbmV4cG9ydCBjb25zdCBpbml0U2VhcmNoID0gKCk6IFNlYXJjaFN0YXRlU2VhcmNoID0+IHtcbiAgcmV0dXJuIHtcbiAgICBjb25maWc6IHtcbiAgICAgIGZpbHRlcnM6IHt9LFxuICAgICAgc291cmNlOiBGSUVMRFNfU1VNTUFSWSxcbiAgICAgIGFnZ3JlZ2F0aW9uczoge30sXG4gICAgfSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZpbHRlcnM6IHt9LFxuICAgICAgcGFnZVNpemU6IGdldE9wdGlvbmFsU2VhcmNoQ29uZmlnKCk/LkxJTUlUXG4gICAgICAgID8gZ2V0T3B0aW9uYWxTZWFyY2hDb25maWcoKS5MSU1JVFxuICAgICAgICA6IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgY3VycmVudFBhZ2U6IDAsXG4gICAgICBmYXZvcml0ZXNPbmx5OiBmYWxzZSxcbiAgICAgIHVzZVNwYXRpYWxGaWx0ZXI6IHRydWUsXG4gICAgfSxcbiAgICByZXN1bHRzOiB7XG4gICAgICBjb3VudDogMCxcbiAgICAgIHJlY29yZHM6IFtdLFxuICAgICAgYWdncmVnYXRpb25zOiB7fSxcbiAgICB9LFxuICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlOiBTZWFyY2hTdGF0ZSA9IHtcbiAgW0RFRkFVTFRfU0VBUkNIX0tFWV06IGluaXRTZWFyY2goKSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIoXG4gIHN0YXRlID0gaW5pdGlhbFN0YXRlLFxuICBhY3Rpb246IGZyb21BY3Rpb25zLlNlYXJjaEFjdGlvbnNcbik6IFNlYXJjaFN0YXRlIHtcbiAgY29uc3QgeyBpZCB9ID0gYWN0aW9uXG4gIGlmIChpZCkge1xuICAgIGxldCBzdGF0ZVNlYXJjaCA9IHN0YXRlW2lkXSB8fCBpbml0U2VhcmNoKClcbiAgICBpZiAoYWN0aW9uLnR5cGUgIT09IGZyb21BY3Rpb25zLkFERF9TRUFSQ0gpIHtcbiAgICAgIHN0YXRlU2VhcmNoID0gcmVkdWNlclNlYXJjaChzdGF0ZVNlYXJjaCwgYWN0aW9uKVxuICAgIH1cbiAgICBpZiAoc3RhdGVTZWFyY2gpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbaWRdOiBzdGF0ZVNlYXJjaCxcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXRlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyU2VhcmNoKFxuICBzdGF0ZTogU2VhcmNoU3RhdGVTZWFyY2gsXG4gIGFjdGlvbjogZnJvbUFjdGlvbnMuU2VhcmNoQWN0aW9uc1xuKTogU2VhcmNoU3RhdGVTZWFyY2gge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX0ZJTFRFUlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgZmlsdGVyczogeyAuLi5hY3Rpb24ucGF5bG9hZCB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9GSUxURVJTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGZpbHRlcnM6IHsgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5VUERBVEVfRklMVEVSUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMuZmlsdGVycyxcbiAgICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1NFQVJDSDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9TT1JUX0JZOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIHNvcnQ6IGFjdGlvbi5zb3J0QnksXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0ZBVk9SSVRFU19PTkxZOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGZhdm9yaXRlc09ubHk6IGFjdGlvbi5mYXZvcml0ZXNPbmx5LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9QQUdFX1NJWkU6IHtcbiAgICAgIGNvbnN0IHsgbGltaXQgfSA9IGFjdGlvblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBwYWdlU2l6ZTogbGltaXQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUEFHSU5BVEU6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgY3VycmVudFBhZ2U6IGFjdGlvbi5wYWdlTnVtYmVyIC0gMSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUkVTVUxUU19MQVlPVVQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzTGF5b3V0OiBhY3Rpb24ucmVzdWx0c0xheW91dCxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5BRERfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIHJlY29yZHM6IFsuLi5zdGF0ZS5yZXN1bHRzLnJlY29yZHMsIC4uLmFjdGlvbi5wYXlsb2FkXSxcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZGluZ1Jlc3VsdHM6IGZhbHNlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNMRUFSX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICByZWNvcmRzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5SRVFVRVNUX01PUkVfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBjdXJyZW50UGFnZTogc3RhdGUucGFyYW1zLmN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZGluZ1Jlc3VsdHM6IHRydWUsXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9ORVdfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiB0cnVlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9SRVNVTFRTX0hJVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICBjb3VudDogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1JFU1VMVFNfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLnN0YXRlLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlVQREFURV9DT05GSUdfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczogeyAuLi5zdGF0ZS5jb25maWcuYWdncmVnYXRpb25zLCAuLi5hY3Rpb24ucGF5bG9hZCB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9DT05GSUdfUkVRVUVTVF9GSUVMRFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgc291cmNlOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5SRVFVRVNUX01PUkVfT05fQUdHUkVHQVRJT046IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLmNvbmZpZ1xuICAgICAgY29uc3QgYWdncmVnYXRpb24gPSBjb25maWcuYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdXG4gICAgICBpZiAoYWdncmVnYXRpb24udHlwZSAhPT0gJ3Rlcm1zJykgcmV0dXJuIHN0YXRlXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uY29uZmlnLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXToge1xuICAgICAgICAgICAgICAuLi5hZ2dyZWdhdGlvbixcbiAgICAgICAgICAgICAgbGltaXQ6IGFnZ3JlZ2F0aW9uLmxpbWl0ICsgYWN0aW9uLmluY3JlbWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfSU5DTFVERV9PTl9BR0dSRUdBVElPTjoge1xuICAgICAgY29uc3QgY29uZmlnID0gc3RhdGUuY29uZmlnXG4gICAgICBjb25zdCBhZ2dyZWdhdGlvbiA9IGNvbmZpZy5hZ2dyZWdhdGlvbnNbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV1cbiAgICAgIGlmIChhZ2dyZWdhdGlvbi50eXBlICE9PSAndGVybXMnKSByZXR1cm4gc3RhdGVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiB7XG4gICAgICAgICAgICAuLi5jb25maWcuYWdncmVnYXRpb25zLFxuICAgICAgICAgICAgW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdOiB7XG4gICAgICAgICAgICAgIC4uLmFnZ3JlZ2F0aW9uLFxuICAgICAgICAgICAgICBmaWx0ZXI6IGFjdGlvbi5pbmNsdWRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlBBVENIX1JFU1VMVFNfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXTogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9FUlJPUjoge1xuICAgICAgY29uc3QgeyBjb2RlLCBtZXNzYWdlIH0gPSBhY3Rpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlcnJvcjogeyBjb2RlLCBtZXNzYWdlIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNMRUFSX0VSUk9SOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfU1BBVElBTF9GSUxURVJfRU5BQkxFRDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICB1c2VTcGF0aWFsRmlsdGVyOiBhY3Rpb24uZW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVcbn1cbiJdfQ==
|
|
@@ -49,7 +49,7 @@ export class ApiCardComponent {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
|
|
53
53
|
provideIcons({
|
|
54
54
|
iconoirSettings,
|
|
55
55
|
}),
|
|
@@ -68,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
68
68
|
provideIcons({
|
|
69
69
|
iconoirSettings,
|
|
70
70
|
}),
|
|
71
|
-
], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{
|
|
71
|
+
], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
|
|
72
72
|
}], propDecorators: { link: [{
|
|
73
73
|
type: Input
|
|
74
74
|
}], currentLink: [{
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
78
78
|
}], openRecordApiForm: [{
|
|
79
79
|
type: Output
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBd0JuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBcEI3QjtRQXdCbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLGlDQUFpQztZQUNwQyxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BDLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsRUFBRSxFQUFFLGtDQUFrQztTQUN2QyxDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVkLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ2Isc0JBQWlCLEdBQ3pCLElBQUksWUFBWSxFQUE4QixDQUFBO0tBMEJqRDtJQXJDQyxJQUFhLElBQUksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFPRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssS0FBSztZQUM5QyxDQUFDLENBQUMsc0NBQXNDO1lBQ3hDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0I7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxhQUFhO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssT0FBTyxDQUFBO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWU7WUFDbEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDakUsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBL0NVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdOQ3hDN0IsdzlGQXVGQSx5REQ1REksWUFBWSx3WUFDWix1QkFBdUIsMkhBQ3ZCLGtCQUFrQiw2R0FDbEIsYUFBYSxpREFDYixnQkFBZ0IsNlRBQ2hCLE1BQU0sa0dBRU87WUFDYixZQUFZLENBQUM7Z0JBQ1gsZUFBZTthQUNoQixDQUFDO1NBQ0g7OzRGQUVVLGdCQUFnQjtrQkFwQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixNQUFNO3FCQUNQLGlCQUNjO3dCQUNiLFlBQVksQ0FBQzs0QkFDWCxlQUFlO3lCQUNoQixDQUFDO3FCQUNIOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29weVRleHRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclNldHRpbmdzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nSWNvbixcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyU2V0dGluZ3MsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX3NpemU6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbiAgQElucHV0KCkgbGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgY3VycmVudExpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ2duLXVpLWNhcmQtbCBweS0yIHB4LTUgZmxleC1yb3cnLFxuICAgIE06ICdnbi11aS1jYXJkLW0gcHktMiBweC01IGZsZXgtcm93JyxcbiAgICBTOiAnZ24tdWktY2FyZC1zIHAtNCBmbGV4LWNvbCcsXG4gICAgWFM6ICdnbi11aS1jYXJkLXhzIHB5LTIgcHgtNSBmbGV4LXJvdycsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXVxuICB9XG4gIGdldCBzaXplKCk6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUycge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcbiAgZGlzcGxheUFwaUZvcm1CdXR0b246IGJvb2xlYW5cbiAgY3VycmVudGx5QWN0aXZlID0gZmFsc2VcbiAgQE91dHB1dCgpIG9wZW5SZWNvcmRBcGlGb3JtOiBFdmVudEVtaXR0ZXI8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPigpXG5cbiAgZ2V0IGdlbmVyYXRlZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnXG4gICAgICA/ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlXZnMnXG4gICAgICA6ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlBUEknXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BsYXlBcGlGb3JtQnV0dG9uID1cbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycgfHxcbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnR1BGREwnXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPVxuICAgICAgY2hhbmdlcy5jdXJyZW50TGluay5jdXJyZW50VmFsdWUgPT09IHRoaXMubGluayA/IHRydWUgOiBmYWxzZVxuICB9XG5cbiAgb3BlblJlY29yZEFwaUZvcm1QYW5lbCgpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbikge1xuICAgICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPSAhdGhpcy5jdXJyZW50bHlBY3RpdmVcbiAgICAgIHRoaXMub3BlblJlY29yZEFwaUZvcm0uZW1pdCh0aGlzLmN1cnJlbnRseUFjdGl2ZSA/IHRoaXMubGluayA6IHVuZGVmaW5lZClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiByb3VuZGVkIGZpbHRlciBvdmVyZmxvdy1oaWRkZW4gY2FyZC1zaGFkb3dcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSAhPT0gJ1MnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtaW4tdy1bMzJweF1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ1MnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICBbdGV4dF09XCJsaW5rLnVybFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiJ3Rvb2x0aXAudXJsLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNwbGF5VGV4dF09XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBwdC0xIHB4LTIgaC1bMzRweF1cIlxuICAgID48L2duLXVpLWNvcHktdGV4dC1idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJkaXNwbGF5QXBpRm9ybUJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZ24tdWktY2FyZC1pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3B5LTIgcHgtNCByb3VuZGVkLXItbWQgYmctZ3JheS00MDAgaG92ZXI6YmctZ3JheS02MDAgZm9jdXM6YmctZ3JheS04MDAgdGV4dC13aGl0ZSc6XG4gICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICB9XCJcbiAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAhY3VycmVudGx5QWN0aXZlXG4gICAgICAgICAgPyAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vcGVuRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jbG9zZUZvcm0nIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgIChjbGljayk9XCJvcGVuUmVjb3JkQXBpRm9ybVBhbmVsKClcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhbGlnbi1taWRkbGUgY2FyZC1pY29uXCJcbiAgICAgICAgbmFtZT1cImljb25vaXJTZXR0aW5nc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1zZWNvbmRhcnkgb3BhY2l0eS0xMDAnOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWRldGFpbFwiPlxuICAgICAge3sgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMi41IGl0ZW1zLWNlbnRlciBwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnR1BGREwnXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgdXBwZXJjYXNlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtcHJpbWFyeS1saWdodGVzdCBncm91cC1ob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICchYmctcHJpbWFyeSc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICAgID57eyBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1wiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIHVwcGVyY2FzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgZ3JvdXAtaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnIWJnLXByaW1hcnknOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5ncGZkbDwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnUydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBd0JuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBcEI3QjtRQXdCbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLGlDQUFpQztZQUNwQyxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BDLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsRUFBRSxFQUFFLGtDQUFrQztTQUN2QyxDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVkLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ2Isc0JBQWlCLEdBQ3pCLElBQUksWUFBWSxFQUE4QixDQUFBO0tBMEJqRDtJQXJDQyxJQUFhLElBQUksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFPRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssS0FBSztZQUM5QyxDQUFDLENBQUMsc0NBQXNDO1lBQ3hDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0I7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxhQUFhO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssT0FBTyxDQUFBO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWU7WUFDbEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDakUsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBL0NVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdOQ3hDN0IseWlHQTBGQSx5REQvREksWUFBWSx3WUFDWix1QkFBdUIsMkhBQ3ZCLGtCQUFrQiw2R0FDbEIsYUFBYSxpREFDYixnQkFBZ0IsNlRBQ2hCLE1BQU0sa0dBRU87WUFDYixZQUFZLENBQUM7Z0JBQ1gsZUFBZTthQUNoQixDQUFDO1NBQ0g7OzRGQUVVLGdCQUFnQjtrQkFwQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixNQUFNO3FCQUNQLGlCQUNjO3dCQUNiLFlBQVksQ0FBQzs0QkFDWCxlQUFlO3lCQUNoQixDQUFDO3FCQUNIOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29weVRleHRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclNldHRpbmdzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nSWNvbixcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyU2V0dGluZ3MsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX3NpemU6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbiAgQElucHV0KCkgbGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgY3VycmVudExpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ2duLXVpLWNhcmQtbCBweS0yIHB4LTUgZmxleC1yb3cnLFxuICAgIE06ICdnbi11aS1jYXJkLW0gcHktMiBweC01IGZsZXgtcm93JyxcbiAgICBTOiAnZ24tdWktY2FyZC1zIHAtNCBmbGV4LWNvbCcsXG4gICAgWFM6ICdnbi11aS1jYXJkLXhzIHB5LTIgcHgtNSBmbGV4LXJvdycsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXVxuICB9XG4gIGdldCBzaXplKCk6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUycge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcbiAgZGlzcGxheUFwaUZvcm1CdXR0b246IGJvb2xlYW5cbiAgY3VycmVudGx5QWN0aXZlID0gZmFsc2VcbiAgQE91dHB1dCgpIG9wZW5SZWNvcmRBcGlGb3JtOiBFdmVudEVtaXR0ZXI8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPigpXG5cbiAgZ2V0IGdlbmVyYXRlZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnXG4gICAgICA/ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlXZnMnXG4gICAgICA6ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlBUEknXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BsYXlBcGlGb3JtQnV0dG9uID1cbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycgfHxcbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnR1BGREwnXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPVxuICAgICAgY2hhbmdlcy5jdXJyZW50TGluay5jdXJyZW50VmFsdWUgPT09IHRoaXMubGluayA/IHRydWUgOiBmYWxzZVxuICB9XG5cbiAgb3BlblJlY29yZEFwaUZvcm1QYW5lbCgpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbikge1xuICAgICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPSAhdGhpcy5jdXJyZW50bHlBY3RpdmVcbiAgICAgIHRoaXMub3BlblJlY29yZEFwaUZvcm0uZW1pdCh0aGlzLmN1cnJlbnRseUFjdGl2ZSA/IHRoaXMubGluayA6IHVuZGVmaW5lZClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiByb3VuZGVkIGZpbHRlciBvdmVyZmxvdy1oaWRkZW4gY2FyZC1zaGFkb3dcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSAhPT0gJ1MnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtaW4tdy1bMzJweF1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ1MnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICBbdGV4dF09XCJsaW5rLnVybFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiJ3Rvb2x0aXAudXJsLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNwbGF5VGV4dF09XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBwdC0xIHB4LTIgaC1bMzRweF1cIlxuICAgID48L2duLXVpLWNvcHktdGV4dC1idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJkaXNwbGF5QXBpRm9ybUJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZ24tdWktY2FyZC1pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3B5LTIgcHgtNCByb3VuZGVkLXItbWQgYmctZ3JheS00MDAgaG92ZXI6YmctZ3JheS02MDAgZm9jdXM6YmctZ3JheS04MDAgdGV4dC13aGl0ZSc6XG4gICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICB9XCJcbiAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAhY3VycmVudGx5QWN0aXZlXG4gICAgICAgICAgPyAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vcGVuRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jbG9zZUZvcm0nIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgIChjbGljayk9XCJvcGVuUmVjb3JkQXBpRm9ybVBhbmVsKClcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhbGlnbi1taWRkbGUgY2FyZC1pY29uXCJcbiAgICAgICAgbmFtZT1cImljb25vaXJTZXR0aW5nc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1zZWNvbmRhcnkgb3BhY2l0eS0xMDAnOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWRldGFpbFwiPlxuICAgICAge3sgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMi41IGl0ZW1zLWNlbnRlciBwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnR1BGREwnXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgdXBwZXJjYXNlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtcHJpbWFyeS1saWdodGVzdCBncm91cC1ob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICchYmctcHJpbWFyeSc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wue3tcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1wiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIHVwcGVyY2FzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgZ3JvdXAtaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnIWJnLXByaW1hcnknOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5ncGZkbDwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnUydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
2
2
|
import { TranslateDirective, TranslateService } from '@ngx-translate/core';
|
|
3
3
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
4
|
-
import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
|
|
4
|
+
import { getBadgeColor, getFileFormat, getIsMobile, } from '../../../../../../libs/util/shared/src';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
|
|
7
7
|
import { DownloadItemComponent } from '../download-item/download-item.component';
|
|
@@ -16,6 +16,7 @@ export class DownloadsListComponent {
|
|
|
16
16
|
constructor(translateService, changeDetector) {
|
|
17
17
|
this.translateService = translateService;
|
|
18
18
|
this.changeDetector = changeDetector;
|
|
19
|
+
this.isMobile$ = getIsMobile();
|
|
19
20
|
this.activeFilterFormats = ['all'];
|
|
20
21
|
}
|
|
21
22
|
get linksCount() {
|
|
@@ -103,7 +104,7 @@ export class DownloadsListComponent {
|
|
|
103
104
|
link.accessServiceProtocol === 'ogcFeatures'));
|
|
104
105
|
}
|
|
105
106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
107
108
|
}
|
|
108
109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
|
|
109
110
|
type: Component,
|
|
@@ -114,8 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
114
115
|
DownloadItemComponent,
|
|
115
116
|
TranslateDirective,
|
|
116
117
|
PreviousNextButtonsComponent,
|
|
117
|
-
], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n
|
|
118
|
+
], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n" }]
|
|
118
119
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { links: [{
|
|
119
120
|
type: Input
|
|
120
121
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRXJGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiw0QkFBNEIsR0FDN0IsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQUU3QyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFVLENBQUE7QUFrQmhGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDVSxnQkFBa0MsRUFDbEMsY0FBaUM7UUFEakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFVM0Msd0JBQW1CLEdBQW1CLENBQUMsS0FBSyxDQUFDLENBQUE7SUFUMUMsQ0FBQztJQUtKLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFJRCxVQUFVLENBQUMsTUFBMEI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUE7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLEtBQW9DO1FBRXBDLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFBO1FBRXJFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQ3BFLE9BQU8sRUFDUCxFQUFFLENBQ0gsQ0FBQTtZQUNELE1BQU0sU0FBUyxHQUFHLEdBQUcsTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUE7WUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDckMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ2xELElBQ0UsSUFBSSxDQUFDLHFCQUFxQixLQUFLLGFBQWE7b0JBQzVDLFlBQVksRUFBRSxxQkFBcUIsS0FBSyxhQUFhLEVBQ3JELENBQUM7b0JBQ0QsY0FBYyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQ2xDLENBQ0YsQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDN0QsQ0FBQTtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFvQjtRQUNyQyxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNsQyxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUN4RCxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FDNUIsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHO2dCQUN6QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7Z0JBQ3RELE1BQU07YUFDUCxDQUFBO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFvQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQW9CO1FBQ3ZDLElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHlCQUF5QixNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRCxjQUFjLENBQ1osSUFBaUMsRUFDakMsTUFBb0I7UUFFcEIsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFBO1FBQzVCLENBQUM7UUFDRCxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUN4QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssUUFBUSxDQUNwRCxDQUFBO1lBQ0QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUN2QixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUM1RCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlDO1FBQzdDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBaUM7UUFDNUMsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFpQztRQUN6QyxPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVO1lBQ3hCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7Z0JBQ25DLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxhQUFhLENBQUMsQ0FDaEQsQ0FBQTtJQUNILENBQUM7K0dBaklVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDRHQ3ZDbkMseTREQW9FQSx5RERyQ0ksWUFBWSxnUUFDWixlQUFlLCtIQUNmLGtCQUFrQiwrSUFDbEIscUJBQXFCLGtKQUNyQixrQkFBa0Isa0hBQ2xCLDRCQUE0Qjs7NEZBR25CLHNCQUFzQjtrQkFmbEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLDRCQUE0QjtxQkFDN0I7cUhBU1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IGdldEJhZGdlQ29sb3IsIGdldEZpbGVGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IERvd25sb2FkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Rvd25sb2FkLWl0ZW0vZG93bmxvYWQtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQge1xuICBCbG9ja0xpc3RDb21wb25lbnQsXG4gIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcblxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIuYWxsJylcbm1hcmtlcignZGF0YWh1Yi5zZWFyY2guZmlsdGVyLm90aGVycycpXG5cbmNvbnN0IEZJTFRFUl9GT1JNQVRTID0gWydhbGwnLCAnY3N2JywgJ2V4Y2VsJywgJ2pzb24nLCAnc2hwJywgJ290aGVycyddIGFzIGNvbnN0XG50eXBlIEZpbHRlckZvcm1hdCA9ICh0eXBlb2YgRklMVEVSX0ZPUk1BVFMpW251bWJlcl1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZG93bmxvYWRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgRG93bmxvYWRJdGVtQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBQcmV2aW91c05leHRCdXR0b25zQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBfbGlzdDogQmxvY2tMaXN0Q29tcG9uZW50XG4gIEBJbnB1dCgpIGxpbmtzOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXVxuXG4gIGdldCBsaW5rc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRMaW5rcz8ubGVuZ3RoIHx8IDBcbiAgfVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAgICpuZ0lmPVwiX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAjYmxvY2tMaXN0XG4gICAgKGxpc3RDaGFuZ2VzKT1cInVwZGF0ZUxpc3QoJGV2ZW50KVwiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJnYXAtNCBwdC01IHBiLTdcIlxuICA+XG4gICAgPGduLXVpLWRvd25sb2FkLWl0ZW1cbiAgICAgICNibG9ja1xuICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiXG4gICAgICBbbGlua109XCJsaW5rXCJcbiAgICAgIFtjb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgICAgW2Zvcm1hdF09XCJnZXRMaW5rRm9ybWF0KGxpbmspXCJcbiAgICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgICAgIFtzaXplXT1cImJsb2NrTGlzdC5zdWJDb21wb25lbnRTaXplXCJcbiAgICA+PC9nbi11aS1kb3dubG9hZC1pdGVtPlxuICA8L2duLXVpLWJsb2NrLWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cIm1iLTUgbWQ6aGlkZGVuIGJsb2NrXCIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiPlxuICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgIHNpemU9XCJNXCJcbiAgICBbbGlua109XCJsaW5rXCJcbiAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbjwvZGl2PlxuIl19
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsNEJBQTRCLEdBQzdCLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFFN0MsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFDbkMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFFdEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBVSxDQUFBO0FBa0JoRixNQUFNLE9BQU8sc0JB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QUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgZ2V0QmFkZ2VDb2xvcixcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0SXNNb2JpbGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRG93bmxvYWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgUHJldmlvdXNOZXh0QnV0dG9uc0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuXG5tYXJrZXIoJ2RhdGFodWIuc2VhcmNoLmZpbHRlci5hbGwnKVxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIub3RoZXJzJylcblxuY29uc3QgRklMVEVSX0ZPUk1BVFMgPSBbJ2FsbCcsICdjc3YnLCAnZXhjZWwnLCAnanNvbicsICdzaHAnLCAnb3RoZXJzJ10gYXMgY29uc3RcbnR5cGUgRmlsdGVyRm9ybWF0ID0gKHR5cGVvZiBGSUxURVJfRk9STUFUUylbbnVtYmVyXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kb3dubG9hZHMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2Fkc0xpc3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIF9saXN0OiBCbG9ja0xpc3RDb21wb25lbnRcbiAgQElucHV0KCkgbGlua3M6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbltdXG5cbiAgZ2V0IGxpbmtzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZExpbmtzPy5sZW5ndGggfHwgMFxuICB9XG5cbiAgaXNNb2JpbGUkID0gZ2V0SXNNb2JpbGUoKVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICNibG9ja0xpc3RcbiAgICAobGlzdENoYW5nZXMpPVwidXBkYXRlTGlzdCgkZXZlbnQpXCJcbiAgICBjb250YWluZXJDbGFzcz1cImdhcC00IHB0LTUgcGItN1wiXG4gID5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgI2Jsb2NrXG4gICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBmaWx0ZXJlZExpbmtzXCJcbiAgICAgIFtsaW5rXT1cImxpbmtcIlxuICAgICAgW2NvbG9yXT1cImdldExpbmtDb2xvcihsaW5rKVwiXG4gICAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgICAgW2lzRnJvbUFwaV09XCJpc0Zyb21BcGkobGluaylcIlxuICAgICAgW3NpemVdPVwiYmxvY2tMaXN0LnN1YkNvbXBvbmVudFNpemVcIlxuICAgID48L2duLXVpLWRvd25sb2FkLWl0ZW0+XG4gIDwvZ24tdWktYmxvY2stbGlzdD5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwibWItNVwiICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZpbHRlcmVkTGlua3NcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc01vYmlsZSQgfCBhc3luYykgPT09IHRydWVcIj5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgc2l6ZT1cIk1cIlxuICAgICAgW2xpbmtdPVwibGlua1wiXG4gICAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICAgIFtmb3JtYXRdPVwiZ2V0TGlua0Zvcm1hdChsaW5rKVwiXG4gICAgICBbaXNGcm9tQXBpXT1cImlzRnJvbUFwaShsaW5rKVwiXG4gICAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|