geonetwork-ui 2.8.0-dev.749c3ea3b → 2.8.0-dev.82b7031fa
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/metadata-converter/src/lib/common/resource-types.mjs +6 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
- package/esm2022/libs/feature/record/src/lib/stac-view/stac-view.component.mjs +140 -48
- package/esm2022/libs/feature/record/src/lib/stac-view/utils.mjs +26 -0
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +36 -22
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +3 -3
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +86 -32
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +1 -1
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +3 -3
- package/esm2022/translations/de.json +2 -0
- package/esm2022/translations/en.json +2 -0
- package/esm2022/translations/es.json +2 -0
- package/esm2022/translations/fr.json +2 -0
- package/esm2022/translations/it.json +2 -0
- package/esm2022/translations/nl.json +2 -0
- package/esm2022/translations/pt.json +2 -0
- package/esm2022/translations/sk.json +2 -0
- package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs → geonetwork-ui-date-locales-DhlIiWpT.mjs} +2 -2
- package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs.map → geonetwork-ui-date-locales-DhlIiWpT.mjs.map} +1 -1
- package/fesm2022/geonetwork-ui.mjs +345 -137
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts +12 -5
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +3 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts +25 -7
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/stac-view/utils.d.ts +7 -0
- package/libs/feature/record/src/lib/stac-view/utils.d.ts.map +1 -0
- package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +24 -14
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +11 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +11 -3
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -1
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +10 -8
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +1 -1
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -2
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -2
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.css +5 -0
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.html +27 -8
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.ts +201 -52
- package/src/libs/feature/record/src/lib/stac-view/utils.ts +57 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -1
- package/src/libs/feature/search/src/lib/constants.ts +1 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +1 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +37 -33
- package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.html +3 -3
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.html +16 -14
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +144 -65
- package/translations/de.json +2 -0
- package/translations/en.json +2 -0
- package/translations/es.json +2 -0
- package/translations/fr.json +2 -0
- package/translations/it.json +2 -0
- package/translations/nl.json +2 -0
- package/translations/pt.json +2 -0
- package/translations/sk.json +2 -0
|
@@ -8,10 +8,12 @@ export const PossibleResourceTypes = {
|
|
|
8
8
|
'map-interactive': 'reuse', // new index field since Oct 10, 2024
|
|
9
9
|
'map-static': 'reuse', // new index field
|
|
10
10
|
mapDigital: 'reuse',
|
|
11
|
+
mapHardcopy: 'reuse',
|
|
11
12
|
series: 'dataset',
|
|
12
13
|
service: 'service',
|
|
13
14
|
staticMap: 'reuse',
|
|
14
15
|
};
|
|
16
|
+
export const ReusePresentationForms = ['mapDigital', 'mapHardcopy'];
|
|
15
17
|
export const PossibleResourceTypesDefinition = Object.entries(PossibleResourceTypes).reduce((acc, [key, val]) => ((acc[val] ??= []).push(key), acc), {});
|
|
16
18
|
export function getResourceType(type) {
|
|
17
19
|
return (PossibleResourceTypes[type] ||
|
|
@@ -34,7 +36,10 @@ export function getReuseType(type) {
|
|
|
34
36
|
? possibleReuseTypes[type] || 'other'
|
|
35
37
|
: undefined;
|
|
36
38
|
}
|
|
39
|
+
export function getReusePresentationForm(presentationForms) {
|
|
40
|
+
return presentationForms?.find((presentationForm) => ReusePresentationForms.includes(presentationForm));
|
|
41
|
+
}
|
|
37
42
|
export function kindToCodeListValue(record) {
|
|
38
43
|
return record.kind === 'reuse' ? record.reuseType : record.kind;
|
|
39
44
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9jb21tb24vcmVzb3VyY2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsV0FBVyxFQUFFLE9BQU87SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsY0FBYyxFQUFFLE9BQU87SUFDdkIsR0FBRyxFQUFFLE9BQU87SUFDWixZQUFZLEVBQUUsT0FBTyxFQUFFLGtCQUFrQjtJQUN6QyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCO0lBQzlDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxxQ0FBcUM7SUFDakUsWUFBWSxFQUFFLE9BQU8sRUFBRSxrQkFBa0I7SUFDekMsVUFBVSxFQUFFLE9BQU87SUFDbkIsV0FBVyxFQUFFLE9BQU87SUFDcEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLE9BQU87Q0FDVixDQUFBO0FBRVYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFhLENBQUE7QUFRL0UsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDM0QscUJBQXFCLENBQ3RCLENBQUMsTUFBTSxDQUNOLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFDdkQsRUFBRSxDQUM2QixDQUFBO0FBRWpDLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBWTtJQUMxQyxPQUFPLENBQ0wscUJBQXFCLENBQUMsSUFBMEMsQ0FBQztRQUNqRSxTQUFTLENBQ1YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVk7SUFDdkMsTUFBTSxrQkFBa0IsR0FBRztRQUN6QixXQUFXLEVBQUUsYUFBYTtRQUMxQixHQUFHLEVBQUUsS0FBSztRQUNWLFlBQVksRUFBRSxLQUFLLEVBQUUsa0JBQWtCO1FBQ3ZDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxrQkFBa0I7UUFDNUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLHFDQUFxQztRQUMvRCxZQUFZLEVBQUUsS0FBSyxFQUFFLGtCQUFrQjtRQUN2QyxVQUFVLEVBQUUsS0FBSztRQUNqQixjQUFjLEVBQUUsS0FBSztRQUNyQixTQUFTLEVBQUUsS0FBSztLQUNSLENBQUE7SUFFVixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFbEMsT0FBTyxJQUFJLEtBQUssT0FBTztRQUNyQixDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBdUMsQ0FBQyxJQUFJLE9BQU87UUFDeEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLGlCQUE0QjtJQUU1QixPQUFPLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FDbEQsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQ2xELENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE1BQXFCO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUE7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIFJlY29yZEtpbmQsXG4gIFJldXNlVHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5leHBvcnQgY29uc3QgUG9zc2libGVSZXNvdXJjZVR5cGVzID0ge1xuICBhcHBsaWNhdGlvbjogJ3JldXNlJyxcbiAgZGF0YXNldDogJ2RhdGFzZXQnLFxuICBpbnRlcmFjdGl2ZU1hcDogJ3JldXNlJyxcbiAgbWFwOiAncmV1c2UnLFxuICAnbWFwL3N0YXRpYyc6ICdyZXVzZScsIC8vIG9sZCBpbmRleCBmaWVsZFxuICAnbWFwL2ludGVyYWN0aXZlJzogJ3JldXNlJywgLy8gb2xkIGluZGV4IGZpZWxkXG4gICdtYXAtaW50ZXJhY3RpdmUnOiAncmV1c2UnLCAvLyBuZXcgaW5kZXggZmllbGQgc2luY2UgT2N0IDEwLCAyMDI0XG4gICdtYXAtc3RhdGljJzogJ3JldXNlJywgLy8gbmV3IGluZGV4IGZpZWxkXG4gIG1hcERpZ2l0YWw6ICdyZXVzZScsXG4gIG1hcEhhcmRjb3B5OiAncmV1c2UnLFxuICBzZXJpZXM6ICdkYXRhc2V0JyxcbiAgc2VydmljZTogJ3NlcnZpY2UnLFxuICBzdGF0aWNNYXA6ICdyZXVzZScsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBSZXVzZVByZXNlbnRhdGlvbkZvcm1zID0gWydtYXBEaWdpdGFsJywgJ21hcEhhcmRjb3B5J10gYXMgc3RyaW5nW11cblxudHlwZSBLaW5kVHlwZSA9IGtleW9mIHR5cGVvZiBQb3NzaWJsZVJlc291cmNlVHlwZXNcbnR5cGUgUmVzb3VyY2VUeXBlID0gJ3JldXNlJyB8ICdkYXRhc2V0JyB8ICdzZXJ2aWNlJ1xudHlwZSBQb3NzaWJsZVJlc291cmNlVHlwZXNHcm91cGVkID0ge1xuICBbSyBpbiBSZXNvdXJjZVR5cGVdOiBLaW5kVHlwZVtdXG59XG5cbmV4cG9ydCBjb25zdCBQb3NzaWJsZVJlc291cmNlVHlwZXNEZWZpbml0aW9uID0gT2JqZWN0LmVudHJpZXMoXG4gIFBvc3NpYmxlUmVzb3VyY2VUeXBlc1xuKS5yZWR1Y2UoXG4gIChhY2MsIFtrZXksIHZhbF0pID0+ICgoYWNjW3ZhbF0gPz89IFtdKS5wdXNoKGtleSksIGFjYyksXG4gIHt9XG4pIGFzIFBvc3NpYmxlUmVzb3VyY2VUeXBlc0dyb3VwZWRcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlVHlwZSh0eXBlOiBzdHJpbmcpOiBSZWNvcmRLaW5kIHtcbiAgcmV0dXJuIChcbiAgICBQb3NzaWJsZVJlc291cmNlVHlwZXNbdHlwZSBhcyBrZXlvZiB0eXBlb2YgUG9zc2libGVSZXNvdXJjZVR5cGVzXSB8fFxuICAgICdkYXRhc2V0J1xuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXVzZVR5cGUodHlwZTogc3RyaW5nKTogUmV1c2VUeXBlIHtcbiAgY29uc3QgcG9zc2libGVSZXVzZVR5cGVzID0ge1xuICAgIGFwcGxpY2F0aW9uOiAnYXBwbGljYXRpb24nLFxuICAgIG1hcDogJ21hcCcsXG4gICAgJ21hcC9zdGF0aWMnOiAnbWFwJywgLy8gb2xkIGluZGV4IGZpZWxkXG4gICAgJ21hcC9pbnRlcmFjdGl2ZSc6ICdtYXAnLCAvLyBvbGQgaW5kZXggZmllbGRcbiAgICAnbWFwLWludGVyYWN0aXZlJzogJ21hcCcsIC8vIG5ldyBpbmRleCBmaWVsZCBzaW5jZSBPY3QgMTAsIDIwMjRcbiAgICAnbWFwLXN0YXRpYyc6ICdtYXAnLCAvLyBuZXcgaW5kZXggZmllbGRcbiAgICBtYXBEaWdpdGFsOiAnbWFwJyxcbiAgICBpbnRlcmFjdGl2ZU1hcDogJ21hcCcsXG4gICAgc3RhdGljTWFwOiAnbWFwJyxcbiAgfSBhcyBjb25zdFxuXG4gIGNvbnN0IGtpbmQgPSBnZXRSZXNvdXJjZVR5cGUodHlwZSlcblxuICByZXR1cm4ga2luZCA9PT0gJ3JldXNlJ1xuICAgID8gcG9zc2libGVSZXVzZVR5cGVzW3R5cGUgYXMga2V5b2YgdHlwZW9mIHBvc3NpYmxlUmV1c2VUeXBlc10gfHwgJ290aGVyJ1xuICAgIDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXVzZVByZXNlbnRhdGlvbkZvcm0oXG4gIHByZXNlbnRhdGlvbkZvcm1zPzogc3RyaW5nW11cbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwcmVzZW50YXRpb25Gb3Jtcz8uZmluZCgocHJlc2VudGF0aW9uRm9ybSkgPT5cbiAgICBSZXVzZVByZXNlbnRhdGlvbkZvcm1zLmluY2x1ZGVzKHByZXNlbnRhdGlvbkZvcm0pXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtpbmRUb0NvZGVMaXN0VmFsdWUocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSB7XG4gIHJldHVybiByZWNvcmQua2luZCA9PT0gJ3JldXNlJyA/IHJlY29yZC5yZXVzZVR5cGUgOiByZWNvcmQua2luZFxufVxuIl19
|
|
@@ -4,7 +4,7 @@ import { Injectable } from '@angular/core';
|
|
|
4
4
|
import { getStatusFromStatusCode } from '../iso19139/utils/status.mapper';
|
|
5
5
|
import { getUpdateFrequencyFromFrequencyCode } from '../iso19139/utils/update-frequency.mapper';
|
|
6
6
|
import { matchProtocol } from '../common/distribution.mapper';
|
|
7
|
-
import { getResourceType, getReuseType } from '../common/resource-types';
|
|
7
|
+
import { getResourceType, getReusePresentationForm, getReuseType, } from '../common/resource-types';
|
|
8
8
|
import { TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import { toLang2, toLang3 } from '../../../../../../libs/util/i18n/src';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -213,8 +213,10 @@ export class Gn4FieldMapper {
|
|
|
213
213
|
}, output),
|
|
214
214
|
resourceType: (output, source) => {
|
|
215
215
|
const resourceType = getFirstValue(selectField(source, 'resourceType'));
|
|
216
|
-
const
|
|
217
|
-
const
|
|
216
|
+
const presentationForms = getAsArray(selectField(source, 'cl_presentationForm')).map((presentationForm) => presentationForm.key);
|
|
217
|
+
const type = getReusePresentationForm(presentationForms) || resourceType;
|
|
218
|
+
const kind = getResourceType(type);
|
|
219
|
+
const reuseType = getReuseType(type);
|
|
218
220
|
return {
|
|
219
221
|
...output,
|
|
220
222
|
kind,
|
|
@@ -406,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
406
408
|
providedIn: 'root',
|
|
407
409
|
}]
|
|
408
410
|
}], ctorParameters: () => [{ type: i1.MetadataUrlService }, { type: i2.TranslateService }] });
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LmZpZWxkLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2duNC9nbjQuZmllbGQubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsVUFBVSxFQUNWLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIscUJBQXFCLEVBRXJCLE1BQU0sR0FDUCxNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDekUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFRL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQVl2RSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNVLGtCQUFzQyxFQUN0QyxnQkFBa0M7UUFEbEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBT2xDLFdBQU0sR0FBb0M7WUFDbEQsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3JCLElB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QUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN6QixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyQix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3RDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzdCLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxxREFBcUQ7VUFDcEgsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLFVBQVUsQ0FBQTtRQUNuQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOytHQTVmVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldEFycmF5SXRlbSxcbiAgZ2V0QXNBcnJheSxcbiAgZ2V0QXNVcmwsXG4gIGdldEZpcnN0VmFsdWUsXG4gIG1hcENvbnRhY3QsXG4gIG1hcEtleXdvcmRzLFxuICBzZWxlY3RGYWxsYmFjayxcbiAgc2VsZWN0RmFsbGJhY2tGaWVsZHMsXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZSxcbiAgU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgdG9EYXRlLFxufSBmcm9tICcuL2F0b21pYy1vcGVyYXRpb25zJ1xuaW1wb3J0IHsgTWV0YWRhdGFVcmxTZXJ2aWNlIH0gZnJvbSAnLi9tZXRhZGF0YS11cmwuc2VydmljZSdcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZ2V0U3RhdHVzRnJvbVN0YXR1c0NvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9zdGF0dXMubWFwcGVyJ1xuaW1wb3J0IHsgZ2V0VXBkYXRlRnJlcXVlbmN5RnJvbUZyZXF1ZW5jeUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy91cGRhdGUtZnJlcXVlbmN5Lm1hcHBlcidcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIENvbnN0cmFpbnQsXG4gIERhdGFzZXRTcGF0aWFsRXh0ZW50LFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgT25saW5lUmVzb3VyY2VUeXBlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBtYXRjaFByb3RvY29sIH0gZnJvbSAnLi4vY29tbW9uL2Rpc3RyaWJ1dGlvbi5tYXBwZXInXG5pbXBvcnQgeyBUaGVzYXVydXMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VUeXBlLCBnZXRSZXVzZVR5cGUgfSBmcm9tICcuLi9jb21tb24vcmVzb3VyY2UtdHlwZXMnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IHRvTGFuZzIsIHRvTGFuZzMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbnR5cGUgRVNSZXNwb25zZVNvdXJjZSA9IFNvdXJjZVdpdGhVbmtub3duUHJvcHNcblxudHlwZSBFc0ZpZWxkTWFwcGVyRm4gPSAoXG4gIG91dHB1dDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPixcbiAgc291cmNlOiBFU1Jlc3BvbnNlU291cmNlXG4pID0+IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEduNEZpZWxkTWFwcGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZXRhZGF0YVVybFNlcnZpY2U6IE1ldGFkYXRhVXJsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGdldExvY2FsaXplZEluZGV4S2V5KCkge1xuICAgIHJldHVybiBgbGFuZyR7dG9MYW5nMyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpfWBcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIEVzRmllbGRNYXBwZXJGbj4gPSB7XG4gICAgaWQ6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoeyBpZDogc2VsZWN0RmllbGQoc291cmNlLCAnaWQnKSB9LCBvdXRwdXQpLFxuICAgIHV1aWQ6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgdXVpZCA9IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAndXVpZCcpXG4gICAgICBjb25zdCBsYW5kaW5nUGFnZSA9IGdldEFzVXJsKHRoaXMubWV0YWRhdGFVcmxTZXJ2aWNlLmdldFVybCh1dWlkKSlcbiAgICAgIHJldHVybiB7IC4uLm91dHB1dCwgdW5pcXVlSWRlbnRpZmllcjogdXVpZCwgbGFuZGluZ1BhZ2UgfVxuICAgIH0sXG4gICAgcXVhbGl0eVNjb3JlOiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7IHF1YWxpdHlTY29yZTogc2VsZWN0RmllbGQoc291cmNlLCAncXVhbGl0eVNjb3JlJykgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApLFxuICAgIHJlc291cmNlVGl0bGVPYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHRpdGxlOiBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAncmVzb3VyY2VUaXRsZU9iamVjdCcsXG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgICApLFxuICAgICAgICAnbm8gdGl0bGUnXG4gICAgICApLFxuICAgIH0pLFxuICAgIHJlc291cmNlQWJzdHJhY3RPYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIGFic3RyYWN0OiBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdCcsXG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgICApLFxuICAgICAgICAnbm8gdGl0bGUnXG4gICAgICApLFxuICAgIH0pLFxuICAgIG92ZXJ2aWV3OiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0T3ZlcnZpZXcgPSBnZXRGaXJzdFZhbHVlKHNlbGVjdEZpZWxkKHNvdXJjZSwgJ292ZXJ2aWV3JykpXG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZTxzdHJpbmc+KFxuICAgICAgICBzZWxlY3RGaWVsZChmaXJzdE92ZXJ2aWV3LCAndGV4dCcpLFxuICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICApXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIG92ZXJ2aWV3czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVybDogZ2V0QXNVcmwoc2VsZWN0RmFsbGJhY2tGaWVsZHMoZmlyc3RPdmVydmlldywgJ3VybCcsICdkYXRhJykpLFxuICAgICAgICAgICAgLi4uKGRlc2NyaXB0aW9uID8geyBkZXNjcmlwdGlvbiB9IDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgfSxcbiAgICBjbF90b3BpYzogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgdG9waWNzOiBbXG4gICAgICAgIC4uLihvdXRwdXQudG9waWNzIHx8IFtdKSxcbiAgICAgICAgLi4uZ2V0QXNBcnJheShcbiAgICAgICAgICBzZWxlY3RGaWVsZDxTb3VyY2VXaXRoVW5rbm93blByb3BzW10+KHNvdXJjZSwgJ2NsX3RvcGljJylcbiAgICAgICAgKS5tYXAoKHRvcGljKSA9PlxuICAgICAgICAgIHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZTxzdHJpbmc+KHRvcGljLCB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5KVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBjbF9zdGF0dXM6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHN0YXR1czogZ2V0U3RhdHVzRnJvbVN0YXR1c0NvZGUoXG4gICAgICAgIHNlbGVjdEZpZWxkKGdldEZpcnN0VmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCAnY2xfc3RhdHVzJykpLCAna2V5JylcbiAgICAgICksXG4gICAgfSksXG4gICAgY2xfbWFpbnRlbmFuY2VBbmRVcGRhdGVGcmVxdWVuY3k6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHVwZGF0ZUZyZXF1ZW5jeTogZ2V0VXBkYXRlRnJlcXVlbmN5RnJvbUZyZXF1ZW5jeUNvZGUoXG4gICAgICAgIHNlbGVjdEZpZWxkKFxuICAgICAgICAgIGdldEZpcnN0VmFsdWUoXG4gICAgICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdjbF9tYWludGVuYW5jZUFuZFVwZGF0ZUZyZXF1ZW5jeScpXG4gICAgICAgICAgKSxcbiAgICAgICAgICAna2V5J1xuICAgICAgICApXG4gICAgICApLFxuICAgIH0pLFxuICAgIGNyZWF0aW9uRGF0ZUZvclJlc291cmNlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZXNvdXJjZUNyZWF0ZWQ6IHRvRGF0ZShcbiAgICAgICAgZ2V0Rmlyc3RWYWx1ZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZSwgJ2NyZWF0aW9uRGF0ZUZvclJlc291cmNlJykpXG4gICAgICApLFxuICAgIH0pLFxuICAgIHJldmlzaW9uRGF0ZUZvclJlc291cmNlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZXNvdXJjZVVwZGF0ZWQ6IHRvRGF0ZShcbiAgICAgICAgZ2V0Rmlyc3RWYWx1ZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZSwgJ3JldmlzaW9uRGF0ZUZvclJlc291cmNlJykpXG4gICAgICApLFxuICAgIH0pLFxuICAgIHB1YmxpY2F0aW9uRGF0ZUZvclJlc291cmNlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZXNvdXJjZVB1Ymxpc2hlZDogdG9EYXRlKFxuICAgICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZSwgJ3B1YmxpY2F0aW9uRGF0ZUZvclJlc291cmNlJylcbiAgICAgICksXG4gICAgfSksXG4gICAgY3JlYXRlRGF0ZTogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgcmVjb3JkQ3JlYXRlZDogdG9EYXRlKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAnY3JlYXRlRGF0ZScpKSxcbiAgICB9KSxcbiAgICBjaGFuZ2VEYXRlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZWNvcmRVcGRhdGVkOiB0b0RhdGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdjaGFuZ2VEYXRlJykpLFxuICAgIH0pLFxuICAgIHB1YmxpY2F0aW9uRGF0ZTogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgcmVjb3JkUHVibGlzaGVkOiB0b0RhdGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdwdWJsaWNhdGlvbkRhdGUnKSksXG4gICAgfSksXG4gICAgcmVzb3VyY2VMYW5ndWFnZTogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCBsYW5nTGlzdCA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAncmVzb3VyY2VMYW5ndWFnZScpXG4gICAgICApXG4gICAgICBjb25zdCBsYW5ndWFnZXMgPSBsYW5nTGlzdC5tYXAodG9MYW5nMilcbiAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IG91dHB1dC5kZWZhdWx0TGFuZ3VhZ2UgPz8gbGFuZ3VhZ2VzWzBdID8/IG51bGwgLy8gc2V0IHRoZSBmaXJzdCBsYW5ndWFnZSBhcyBtYWluIG9uZSBhcyBmYWxsYmFja1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIGRlZmF1bHRMYW5ndWFnZSxcbiAgICAgIH1cbiAgICB9LFxuICAgIG90aGVyTGFuZ3VhZ2U6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgbGFuZ0xpc3QgPSBnZXRBc0FycmF5KHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAnb3RoZXJMYW5ndWFnZScpKVxuICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gbGFuZ0xpc3QubWFwKHRvTGFuZzIpXG4gICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBvdXRwdXQuZGVmYXVsdExhbmd1YWdlID8/IGxhbmd1YWdlc1swXSA/PyBudWxsXG4gICAgICBjb25zdCBvdGhlckxhbmd1YWdlcyA9IGxhbmd1YWdlcy5maWx0ZXIoXG4gICAgICAgIChsYW5nKSA9PiBsYW5nICE9PSBkZWZhdWx0TGFuZ3VhZ2VcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICBvdGhlckxhbmd1YWdlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIG1haW5MYW5ndWFnZTogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCBsYW5ndWFnZSA9IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAnbWFpbkxhbmd1YWdlJylcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBsYW5ndWFnZSA/IHRvTGFuZzIobGFuZ3VhZ2UpIDogbnVsbCxcbiAgICAgIH1cbiAgICB9LFxuICAgIGxpbms6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgcmF3TGlua3MgPSBnZXRBc0FycmF5KFxuICAgICAgICBzZWxlY3RGaWVsZDxTb3VyY2VXaXRoVW5rbm93blByb3BzW10+KHNvdXJjZSwgJ2xpbmsnKVxuICAgICAgKVxuICAgICAgY29uc3Qgb25saW5lUmVzb3VyY2VzID0gcmF3TGlua3NcbiAgICAgICAgLm1hcCgobGluaykgPT4gdGhpcy5tYXBMaW5rKGxpbmspKVxuICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSBudWxsKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICBvbmxpbmVSZXNvdXJjZXMsXG4gICAgICB9IGFzIENhdGFsb2dSZWNvcmRcbiAgICB9LFxuICAgIGNvbnRhY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIGNvbnRhY3RzOiBbXG4gICAgICAgIG1hcENvbnRhY3QoXG4gICAgICAgICAgZ2V0Rmlyc3RWYWx1ZShzZWxlY3RGaWVsZChzb3VyY2UsICdjb250YWN0JykpLFxuICAgICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSksXG4gICAgY29udGFjdEZvclJlc291cmNlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICBjb250YWN0c0ZvclJlc291cmNlOiBbXG4gICAgICAgIC4uLignY29udGFjdHNGb3JSZXNvdXJjZScgaW4gb3V0cHV0ICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkob3V0cHV0LmNvbnRhY3RzRm9yUmVzb3VyY2UpXG4gICAgICAgICAgPyBvdXRwdXQuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi5nZXRBc0FycmF5KHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3RGb3JSZXNvdXJjZScpKS5tYXAoXG4gICAgICAgICAgKGNvbnRhY3QpID0+IG1hcENvbnRhY3QoY29udGFjdCwgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleSlcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSksXG4gICAgc291cmNlQ2F0YWxvZ3VlOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgY2F0YWxvZ1V1aWQ6IHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnc291cmNlQ2F0YWxvZ3VlJyksXG4gICAgICAgICAgICAnbm8gdGl0bGUnXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApXG4gICAgfSxcbiAgICBhbGxLZXl3b3JkczogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAga2V5d29yZHM6IG1hcEtleXdvcmRzKFxuICAgICAgICBzZWxlY3RGaWVsZDxUaGVzYXVydXNbXT4oc291cmNlLCAnYWxsS2V5d29yZHMnKSxcbiAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgKSxcbiAgICB9KSxcbiAgICBpbnNwaXJlVGhlbWU6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHRvcGljczogW1xuICAgICAgICAuLi4ob3V0cHV0LnRvcGljcyB8fCBbXSksXG4gICAgICAgIC4uLmdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnaW5zcGlyZVRoZW1lX3N5bicpKSxcbiAgICAgIF0sXG4gICAgfSksXG4gICAgTURfQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmNvbnN0cmFpbnRGaWVsZChcbiAgICAgICAgJ290aGVyJyxcbiAgICAgICAgb3V0cHV0LFxuICAgICAgICBnZXRBc0FycmF5KHNlbGVjdEZpZWxkKHNvdXJjZSwgJ01EX0NvbnN0cmFpbnRzVXNlTGltaXRhdGlvbk9iamVjdCcpKVxuICAgICAgKSxcbiAgICBNRF9MZWdhbENvbnN0cmFpbnRzVXNlTGltaXRhdGlvbk9iamVjdDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5jb25zdHJhaW50RmllbGQoXG4gICAgICAgICdsZWdhbCcsXG4gICAgICAgIG91dHB1dCxcbiAgICAgICAgZ2V0QXNBcnJheShcbiAgICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdNRF9MZWdhbENvbnN0cmFpbnRzVXNlTGltaXRhdGlvbk9iamVjdCcpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgTURfTGVnYWxDb25zdHJhaW50c090aGVyQ29uc3RyYWludHNPYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuY29uc3RyYWludEZpZWxkKFxuICAgICAgICAnbGVnYWwnLFxuICAgICAgICBvdXRwdXQsXG4gICAgICAgIGdldEFzQXJyYXkoXG4gICAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnTURfTGVnYWxDb25zdHJhaW50c090aGVyQ29uc3RyYWludHNPYmplY3QnKVxuICAgICAgICApXG4gICAgICApLFxuICAgIE1EX1NlY3VyaXR5Q29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmNvbnN0cmFpbnRGaWVsZChcbiAgICAgICAgJ3NlY3VyaXR5JyxcbiAgICAgICAgb3V0cHV0LFxuICAgICAgICBnZXRBc0FycmF5KFxuICAgICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ01EX1NlY3VyaXR5Q29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0JylcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICBsaWNlbnNlT2JqZWN0OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmNvbnN0cmFpbnRGaWVsZChcbiAgICAgICAgJ2xpY2Vuc2UnLFxuICAgICAgICBvdXRwdXQsXG4gICAgICAgIGdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnbGljZW5zZU9iamVjdCcpKVxuICAgICAgKSxcbiAgICBsaW5lYWdlT2JqZWN0OiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICBsaW5lYWdlOiBzZWxlY3RUcmFuc2xhdGVkRmllbGQoXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgJ2xpbmVhZ2VPYmplY3QnLFxuICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICApLFxuICAgIH0pLFxuICAgIHVzZXJTYXZlZENvdW50OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgZmF2b3JpdGVDb3VudDogcGFyc2VJbnQoc2VsZWN0RmllbGQoc291cmNlLCAndXNlclNhdmVkQ291bnQnKSksXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dFxuICAgICAgKSxcbiAgICBpc09wZW5EYXRhOiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgaXNPcGVuRGF0YTogc2VsZWN0RmllbGQoc291cmNlLCAnaXNPcGVuRGF0YScpICE9PSAnZmFsc2UnLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgZmVhdHVyZVR5cGVzOiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgZmVhdHVyZVR5cGVzOiBzZWxlY3RGaWVsZChzb3VyY2UsICdmZWF0dXJlVHlwZXMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApLFxuICAgIHJlbGF0ZWQ6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgZmNhdFNvdXJjZSA9IHNlbGVjdEZpZWxkKFxuICAgICAgICBnZXRGaXJzdFZhbHVlKFxuICAgICAgICAgIHNlbGVjdEZpZWxkKFxuICAgICAgICAgICAgPFNvdXJjZVdpdGhVbmtub3duUHJvcHM+c2VsZWN0RmllbGQoc291cmNlLCAncmVsYXRlZCcpLFxuICAgICAgICAgICAgJ2ZjYXRzJ1xuICAgICAgICAgIClcbiAgICAgICAgKSA/PyB7fSxcbiAgICAgICAgJ19zb3VyY2UnXG4gICAgICApXG4gICAgICBjb25zdCBmZWF0dXJlQ2F0YWxvZ0lkZW50aWZpZXI6IHN0cmluZyA9IHNlbGVjdEZpZWxkKFxuICAgICAgICA8U291cmNlV2l0aFVua25vd25Qcm9wcz5mY2F0U291cmNlLFxuICAgICAgICAndXVpZCdcbiAgICAgIClcbiAgICAgIGNvbnN0IHNvdXJjZU9mTGlua3MgPSBnZXRBc0FycmF5KFxuICAgICAgICBzZWxlY3RGaWVsZChcbiAgICAgICAgICA8U291cmNlV2l0aFVua25vd25Qcm9wcz5zZWxlY3RGaWVsZChzb3VyY2UsICdyZWxhdGVkJyksXG4gICAgICAgICAgJ2hhc3NvdXJjZXMnXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIGNvbnN0IHNvdXJjZU9mSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gc291cmNlT2ZMaW5rc1xuICAgICAgICAuZmlsdGVyKChsaW5rKSA9PiBsaW5rWydvcmlnaW4nXSA9PT0gJ2NhdGFsb2cnKVxuICAgICAgICAubWFwKChsaW5rKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdEZpZWxkKFxuICAgICAgICAgICAgc2VsZWN0RmllbGQoPFNvdXJjZVdpdGhVbmtub3duUHJvcHM+bGluaywgJ19zb3VyY2UnKSxcbiAgICAgICAgICAgICd1dWlkJ1xuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIGNvbnN0IGV4dHJhVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4gPSB7fVxuICAgICAgaWYgKGZlYXR1cmVDYXRhbG9nSWRlbnRpZmllcikge1xuICAgICAgICBleHRyYVZhbHVlcy5mZWF0dXJlQ2F0YWxvZ0lkZW50aWZpZXIgPSBmZWF0dXJlQ2F0YWxvZ0lkZW50aWZpZXJcbiAgICAgIH1cbiAgICAgIGlmIChzb3VyY2VPZklkZW50aWZpZXJzICYmIHNvdXJjZU9mSWRlbnRpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBleHRyYVZhbHVlcy5zb3VyY2VPZklkZW50aWZpZXJzID0gc291cmNlT2ZJZGVudGlmaWVyc1xuICAgICAgfVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGV4dHJhVmFsdWVzKS5sZW5ndGggPiAwXG4gICAgICAgID8gdGhpcy5hZGRFeHRyYShleHRyYVZhbHVlcywgb3V0cHV0KVxuICAgICAgICA6IG91dHB1dFxuICAgIH0sXG4gICAgcmVjb3JkTGluazogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCByZWNvcmRMaW5rcyA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkPFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXT4oc291cmNlLCAncmVjb3JkTGluaycpXG4gICAgICApXG4gICAgICBjb25zdCBzb3VyY2VzSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gcmVjb3JkTGlua3NcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAobGluaykgPT4gbGlua1snb3JpZ2luJ10gPT09ICdjYXRhbG9nJyAmJiBsaW5rWyd0eXBlJ10gPT09ICdzb3VyY2VzJ1xuICAgICAgICApXG4gICAgICAgIC5tYXAoKGxpbmspID0+IHNlbGVjdEZpZWxkKDxTb3VyY2VXaXRoVW5rbm93blByb3BzPmxpbmssICd0bycpKVxuXG4gICAgICByZXR1cm4gc291cmNlc0lkZW50aWZpZXJzICYmIHNvdXJjZXNJZGVudGlmaWVycy5sZW5ndGggPiAwXG4gICAgICAgID8gdGhpcy5hZGRFeHRyYShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc291cmNlc0lkZW50aWZpZXJzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG91dHB1dFxuICAgICAgICAgIClcbiAgICAgICAgOiBvdXRwdXRcbiAgICB9LFxuICAgIGlzUHVibGlzaGVkVG9BbGw6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBpc1B1Ymxpc2hlZFRvQWxsOiBzZWxlY3RGaWVsZChzb3VyY2UsICdpc1B1Ymxpc2hlZFRvQWxsJyksXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dFxuICAgICAgKSxcbiAgICBpc0hhcnZlc3RlZDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5hZGRFeHRyYShcbiAgICAgICAge1xuICAgICAgICAgIGlzSGFydmVzdGVkOiBzZWxlY3RGaWVsZChzb3VyY2UsICdpc0hhcnZlc3RlZCcpICE9PSAnZmFsc2UnLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgZWRpdDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5hZGRFeHRyYShcbiAgICAgICAge1xuICAgICAgICAgIGVkaXQ6IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2VkaXQnKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApLFxuICAgIHVzZXJpbmZvOiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgb3duZXJJbmZvOiBzZWxlY3RGaWVsZChzb3VyY2UsICd1c2VyaW5mbycpLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgcmVzb3VyY2VUeXBlOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGdldEZpcnN0VmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCAncmVzb3VyY2VUeXBlJykpXG4gICAgICBjb25zdCBraW5kID0gZ2V0UmVzb3VyY2VUeXBlKHJlc291cmNlVHlwZSlcbiAgICAgIGNvbnN0IHJldXNlVHlwZSA9IGdldFJldXNlVHlwZShyZXNvdXJjZVR5cGUpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIGtpbmQsXG4gICAgICAgIC4uLihyZXVzZVR5cGUgJiYgeyByZXVzZVR5cGUgfSksXG4gICAgICB9IGFzIENhdGFsb2dSZWNvcmRcbiAgICB9LFxuICAgIGdlb206IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgZ2VvbXMgPSBnZXRBc0FycmF5KHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2dlb20nKSlcbiAgICAgIGNvbnN0IHNoYXBlcyA9IGdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnc2hhcGUnKSlcbiAgICAgIGNvbnN0IGV4dGVudERlc2NyaXB0aW9ucyA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2V4dGVudERlc2NyaXB0aW9uT2JqZWN0JylcbiAgICAgIClcbiAgICAgIGNvbnN0IHNwYXRpYWxFeHRlbnRzID0gZ2V0QXNBcnJheShzZWxlY3RGaWVsZChzb3VyY2UsICdzcGF0aWFsRXh0ZW50cycpKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICBzcGF0aWFsRXh0ZW50czogW1xuICAgICAgICAgIC4uLnNwYXRpYWxFeHRlbnRzLFxuICAgICAgICAgIC4uLmdlb21zLm1hcCgoZ2VvbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc2VsZWN0VHJhbnNsYXRlZFZhbHVlKFxuICAgICAgICAgICAgICBnZXRBcnJheUl0ZW0oZXh0ZW50RGVzY3JpcHRpb25zLCBpbmRleCksXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gc2hhcGVzW2luZGV4XSA/PyBnZW9tXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gIT09IG51bGwgPyB7IGRlc2NyaXB0aW9uIH0gOiBudWxsKSxcbiAgICAgICAgICAgICAgZ2VvbWV0cnksXG4gICAgICAgICAgICB9IGFzIERhdGFzZXRTcGF0aWFsRXh0ZW50XG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgfSxcbiAgICByZXNvdXJjZVRlbXBvcmFsRXh0ZW50RGF0ZVJhbmdlOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IHJhbmdlcyA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ3Jlc291cmNlVGVtcG9yYWxFeHRlbnREYXRlUmFuZ2UnKVxuICAgICAgKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICB0ZW1wb3JhbEV4dGVudHM6IHJhbmdlcy5tYXAoKHJhbmdlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhcnQgPSBzZWxlY3RGaWVsZChyYW5nZSwgJ2d0ZScpXG4gICAgICAgICAgY29uc3QgZW5kID0gc2VsZWN0RmllbGQocmFuZ2UsICdsdGUnKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi4oc3RhcnQgIT09IG51bGwgPyB7IHN0YXJ0OiB0b0RhdGUoc3RhcnQpIH0gOiBudWxsKSxcbiAgICAgICAgICAgIC4uLihlbmQgIT09IG51bGwgPyB7IGVuZDogdG9EYXRlKGVuZCkgfSA6IG51bGwpLFxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICB9XG4gICAgfSxcbiAgICByZXNvdXJjZUlkZW50aWZpZXI6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgaWRlbnRpZmllcnMgPSBnZXRBc0FycmF5KHNlbGVjdEZpZWxkKHNvdXJjZSwgJ3Jlc291cmNlSWRlbnRpZmllcicpKVxuXG4gICAgICBpZiAoIWlkZW50aWZpZXJzLmxlbmd0aCkgcmV0dXJuIG91dHB1dFxuXG4gICAgICBjb25zdCBtYXBwZWRJZGVudGlmaWVycyA9IGlkZW50aWZpZXJzXG4gICAgICAgIC5tYXAoKGlkKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29kZSA9IHNlbGVjdEZpZWxkPHN0cmluZz4oaWQsICdjb2RlJylcbiAgICAgICAgICBjb25zdCBjb2RlU3BhY2UgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KGlkLCAnY29kZVNwYWNlJylcbiAgICAgICAgICBjb25zdCBsaW5rID0gc2VsZWN0RmllbGQ8c3RyaW5nPihpZCwgJ2xpbmsnKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAuLi4oY29kZVNwYWNlICYmIHsgY29kZVNwYWNlIH0pLFxuICAgICAgICAgICAgLi4uKGxpbmsgJiYgeyB1cmw6IGxpbmsgfSksXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChpZCkgPT4gaWQgIT09IG51bGwpXG5cbiAgICAgIGlmICghbWFwcGVkSWRlbnRpZmllcnMubGVuZ3RoKSByZXR1cm4gb3V0cHV0XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgcmVzb3VyY2VJZGVudGlmaWVyczogbWFwcGVkSWRlbnRpZmllcnMsXG4gICAgICB9XG4gICAgfSxcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJpY0ZpZWxkID0gKG91dHB1dCkgPT4gb3V0cHV0XG5cbiAgcHJpdmF0ZSBjb25zdHJhaW50RmllbGQgPSAoXG4gICAgdHlwZTogJ2xpY2Vuc2UnIHwgJ2xlZ2FsJyB8ICdzZWN1cml0eScgfCAnb3RoZXInLFxuICAgIG91dHB1dDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPixcbiAgICBjb25zdHJhaW50QXJyYXk6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXVxuICApID0+IHtcbiAgICBsZXQgb3V0cHV0RmllbGQ6IHN0cmluZ1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnbGljZW5zZSc6XG4gICAgICAgIG91dHB1dEZpZWxkID0gJ2xpY2Vuc2VzJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbGVnYWwnOlxuICAgICAgICBvdXRwdXRGaWVsZCA9ICdsZWdhbENvbnN0cmFpbnRzJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnc2VjdXJpdHknOlxuICAgICAgICBvdXRwdXRGaWVsZCA9ICdzZWN1cml0eUNvbnN0cmFpbnRzJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnb3RoZXInOlxuICAgICAgICBvdXRwdXRGaWVsZCA9ICdvdGhlckNvbnN0cmFpbnRzJ1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXRBcnJheTogQ29uc3RyYWludFtdID1cbiAgICAgIG91dHB1dEZpZWxkIGluIG91dHB1dCA/IG91dHB1dFtvdXRwdXRGaWVsZF0gOiBbXVxuICAgIG91dHB1dEFycmF5LnB1c2goXG4gICAgICAuLi5jb25zdHJhaW50QXJyYXkubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBzZWxlY3RUcmFuc2xhdGVkVmFsdWUoXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICAgICkgYXMgc3RyaW5nXG4gICAgICAgIGNvbnN0IHVybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkKGl0ZW0sICdsaW5rJykpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdGV4dCxcbiAgICAgICAgICAuLi4odXJsID8geyB1cmwgfSA6IHt9KSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgW291dHB1dEZpZWxkXTogb3V0cHV0QXJyYXksXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGdldE1hcHBpbmdGbihmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZE5hbWUgaW4gdGhpcy5maWVsZHMgPyB0aGlzLmZpZWxkc1tmaWVsZE5hbWVdIDogdGhpcy5nZW5lcmljRmllbGRcbiAgfVxuXG4gIGdldExpbmtUeXBlKHVybDogc3RyaW5nLCBwcm90b2NvbD86IHN0cmluZyk6IE9ubGluZVJlc291cmNlVHlwZSB7XG4gICAgaWYgKCFwcm90b2NvbCkge1xuICAgICAgcmV0dXJuICdsaW5rJ1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAoL15FU1JJOlJFU1QvLnRlc3QocHJvdG9jb2wpICYmIC9GZWF0dXJlU2VydmVyLy50ZXN0KHVybCkpIHx8XG4gICAgICAvXk9HQzpXTVMvLnRlc3QocHJvdG9jb2wpIHx8XG4gICAgICAvXk9HQzpXRlMvLnRlc3QocHJvdG9jb2wpIHx8XG4gICAgICAvXk9HQzpXTVRTLy50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL1RNUy9pLnRlc3QocHJvdG9jb2wpIHx8XG4gICAgICAvb2djXFxXKmFwaVxcVypmZWF0dXJlcy9pLnRlc3QocHJvdG9jb2wpIHx8XG4gICAgICAvXkRCOlBPU1RHSVMvaS50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL3N0YWNcXFcqaXRlbXMvaS50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgKC9eV1dXOkRPV05MT0FELS8udGVzdChwcm90b2NvbCkgJiYgL2RhdGEuZ2VvcGYuZnIvLnRlc3QodXJsKSkgLy8gVE8gRE8gOiBjaGFuZ2Ugd2l0aCB0aGUgZ29vZCBwcm90b2NvbCB3aGVuIGRlY2lkZWRcbiAgICApIHtcbiAgICAgIHJldHVybiAnc2VydmljZSdcbiAgICB9XG4gICAgaWYgKC9eV1dXOkRPV05MT0FELy50ZXN0KHByb3RvY29sKSkge1xuICAgICAgcmV0dXJuICdkb3dubG9hZCdcbiAgICB9XG4gICAgcmV0dXJuICdsaW5rJ1xuICB9XG5cbiAgbWFwTGluayA9IChzb3VyY2VMaW5rOiBTb3VyY2VXaXRoVW5rbm93blByb3BzKTogT25saW5lUmVzb3VyY2UgfCBudWxsID0+IHtcbiAgICBjb25zdCB1cmwgPSBnZXRBc1VybChcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQ8c3RyaW5nPihcbiAgICAgICAgICBzb3VyY2VMaW5rLFxuICAgICAgICAgICd1cmxPYmplY3QnLFxuICAgICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICAgKSxcbiAgICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VMaW5rLCAndXJsJylcbiAgICAgIClcbiAgICApXG4gICAgY29uc3QgbmFtZSA9IHNlbGVjdEZhbGxiYWNrKFxuICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkPHN0cmluZz4oXG4gICAgICAgIHNvdXJjZUxpbmssXG4gICAgICAgICduYW1lT2JqZWN0JyxcbiAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgKSxcbiAgICAgIHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlTGluaywgJ25hbWUnKVxuICAgIClcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHNlbGVjdEZhbGxiYWNrKFxuICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkPHN0cmluZz4oXG4gICAgICAgIHNvdXJjZUxpbmssXG4gICAgICAgICdkZXNjcmlwdGlvbk9iamVjdCcsXG4gICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICksXG4gICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUxpbmssICdkZXNjcmlwdGlvbicpXG4gICAgKVxuICAgIGNvbnN0IGRlc2NyaXB0aW9uTGluayA9IHNlbGVjdEZpZWxkPG9iamVjdD4oc291cmNlTGluaywgJ2Rlc2NyaXB0aW9uT2JqZWN0JylcbiAgICBjb25zdCBhY2Nlc3NSZXN0cmljdGVkID1cbiAgICAgIGRlc2NyaXB0aW9uTGluayAmJlxuICAgICAgJ2xpbmsnIGluIGRlc2NyaXB0aW9uTGluayAmJlxuICAgICAgZGVzY3JpcHRpb25MaW5rLmxpbmsudG9TdHJpbmcoKS5pbmNsdWRlcygnI01EX1Jlc3RyaWN0aW9uQ29kZV9yZXN0cmljdGVkJylcbiAgICAvLyBubyB1cmw6IGZhaWwgZWFybHlcbiAgICBpZiAodXJsID09PSBudWxsKSB7XG4gICAgICAvLyBUT0RPOiBjb2xsZWN0IGVycm9ycyBhdCB0aGUgcmVjb3JkIGxldmVsP1xuICAgICAgY29uc29sZS53YXJuKCdBIGxpbmsgd2l0aG91dCB2YWxpZCBVUkwgd2FzIGZvdW5kJywgc291cmNlTGluaylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUxpbmssICdwcm90b2NvbCcpXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0TGlua1R5cGUodXJsLnRvU3RyaW5nKCksIHByb3RvY29sKVxuICAgIGNvbnN0IGFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG1hdGNoUHJvdG9jb2wocHJvdG9jb2wpXG4gICAgY29uc3QgbWltZVR5cGVNYXRjaGVzID1cbiAgICAgIHByb3RvY29sICYmIHByb3RvY29sLm1hdGNoKC9eV1dXOkRPV05MT0FEOiguK1xcLy4rKSQvKVxuICAgIGNvbnN0IG1pbWVUeXBlID0gbWltZVR5cGVNYXRjaGVzICYmIG1pbWVUeXBlTWF0Y2hlc1sxXVxuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0ge1xuICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb24gfSksXG4gICAgfVxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc2VydmljZSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZGlzdHJpYnV0aW9uLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgYWNjZXNzU2VydmljZVByb3RvY29sLFxuICAgICAgICAgIGFjY2Vzc1Jlc3RyaWN0ZWQ6IGFjY2Vzc1Jlc3RyaWN0ZWQsXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRpc3RyaWJ1dGlvbixcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICB9XG4gICAgICBjYXNlICdkb3dubG9hZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZGlzdHJpYnV0aW9uLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgLi4uKG1pbWVUeXBlICYmIHsgbWltZVR5cGUgfSksXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2VuZHBvaW50JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5kaXN0cmlidXRpb24sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6IGFjY2Vzc1NlcnZpY2VQcm90b2NvbCxcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRXh0cmEgPSAodmFsdWU6IG9iamVjdCwgb3V0cHV0OiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+KSA9PiAoe1xuICAgIC4uLm91dHB1dCxcbiAgICBleHRyYXM6IHsgLi4uKG91dHB1dC5leHRyYXMgfHwge30pLCAuLi52YWx1ZSB9LFxuICB9KVxufVxuIl19
|
|
411
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LmZpZWxkLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2duNC9nbjQuZmllbGQubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsVUFBVSxFQUNWLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIscUJBQXFCLEVBRXJCLE1BQU0sR0FDUCxNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDekUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFRL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRTdELE9BQU8sRUFDTCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLFlBQVksR0FDYixNQUFNLDBCQUEwQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFZdkUsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDVSxrQkFBc0MsRUFDdEMsZ0JBQWtDO1FBRGxDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQU9sQyxXQUFNLEdBQW9DO1lBQ2xELEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUs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dCI6WyJpbXBvcnQge1xuICBnZXRBcnJheUl0ZW0sXG4gIGdldEFzQXJyYXksXG4gIGdldEFzVXJsLFxuICBnZXRGaXJzdFZhbHVlLFxuICBtYXBDb250YWN0LFxuICBtYXBLZXl3b3JkcyxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZhbGxiYWNrRmllbGRzLFxuICBzZWxlY3RGaWVsZCxcbiAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkVmFsdWUsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIHRvRGF0ZSxcbn0gZnJvbSAnLi9hdG9taWMtb3BlcmF0aW9ucydcbmltcG9ydCB7IE1ldGFkYXRhVXJsU2VydmljZSB9IGZyb20gJy4vbWV0YWRhdGEtdXJsLnNlcnZpY2UnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGdldFN0YXR1c0Zyb21TdGF0dXNDb2RlIH0gZnJvbSAnLi4vaXNvMTkxMzkvdXRpbHMvc3RhdHVzLm1hcHBlcidcbmltcG9ydCB7IGdldFVwZGF0ZUZyZXF1ZW5jeUZyb21GcmVxdWVuY3lDb2RlIH0gZnJvbSAnLi4vaXNvMTkxMzkvdXRpbHMvdXBkYXRlLWZyZXF1ZW5jeS5tYXBwZXInXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBDb25zdHJhaW50LFxuICBEYXRhc2V0U3BhdGlhbEV4dGVudCxcbiAgT25saW5lUmVzb3VyY2UsXG4gIE9ubGluZVJlc291cmNlVHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgbWF0Y2hQcm90b2NvbCB9IGZyb20gJy4uL2NvbW1vbi9kaXN0cmlidXRpb24ubWFwcGVyJ1xuaW1wb3J0IHsgVGhlc2F1cnVzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7XG4gIGdldFJlc291cmNlVHlwZSxcbiAgZ2V0UmV1c2VQcmVzZW50YXRpb25Gb3JtLFxuICBnZXRSZXVzZVR5cGUsXG59IGZyb20gJy4uL2NvbW1vbi9yZXNvdXJjZS10eXBlcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgdG9MYW5nMiwgdG9MYW5nMyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcblxudHlwZSBFU1Jlc3BvbnNlU291cmNlID0gU291cmNlV2l0aFVua25vd25Qcm9wc1xuXG50eXBlIEVzRmllbGRNYXBwZXJGbiA9IChcbiAgb3V0cHV0OiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+LFxuICBzb3VyY2U6IEVTUmVzcG9uc2VTb3VyY2VcbikgPT4gUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR240RmllbGRNYXBwZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1ldGFkYXRhVXJsU2VydmljZTogTWV0YWRhdGFVcmxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBnZXQgZ2V0TG9jYWxpemVkSW5kZXhLZXkoKSB7XG4gICAgcmV0dXJuIGBsYW5nJHt0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyl9YFxuICB9XG5cbiAgcHJvdGVjdGVkIGZpZWxkczogUmVjb3JkPHN0cmluZywgRXNGaWVsZE1hcHBlckZuPiA9IHtcbiAgICBpZDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5hZGRFeHRyYSh7IGlkOiBzZWxlY3RGaWVsZChzb3VyY2UsICdpZCcpIH0sIG91dHB1dCksXG4gICAgdXVpZDogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCB1dWlkID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICd1dWlkJylcbiAgICAgIGNvbnN0IGxhbmRpbmdQYWdlID0gZ2V0QXNVcmwodGhpcy5tZXRhZGF0YVVybFNlcnZpY2UuZ2V0VXJsKHV1aWQpKVxuICAgICAgcmV0dXJuIHsgLi4ub3V0cHV0LCB1bmlxdWVJZGVudGlmaWVyOiB1dWlkLCBsYW5kaW5nUGFnZSB9XG4gICAgfSxcbiAgICBxdWFsaXR5U2NvcmU6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHsgcXVhbGl0eVNjb3JlOiBzZWxlY3RGaWVsZChzb3VyY2UsICdxdWFsaXR5U2NvcmUnKSB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgcmVzb3VyY2VUaXRsZU9iamVjdDogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgdGl0bGU6IHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoXG4gICAgICAgICAgc291cmNlLFxuICAgICAgICAgICdyZXNvdXJjZVRpdGxlT2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICAgICksXG4gICAgICAgICdubyB0aXRsZSdcbiAgICAgICksXG4gICAgfSksXG4gICAgcmVzb3VyY2VBYnN0cmFjdE9iamVjdDogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgYWJzdHJhY3Q6IHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoXG4gICAgICAgICAgc291cmNlLFxuICAgICAgICAgICdyZXNvdXJjZUFic3RyYWN0T2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICAgICksXG4gICAgICAgICdubyB0aXRsZSdcbiAgICAgICksXG4gICAgfSksXG4gICAgb3ZlcnZpZXc6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgZmlyc3RPdmVydmlldyA9IGdldEZpcnN0VmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCAnb3ZlcnZpZXcnKSlcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc2VsZWN0VHJhbnNsYXRlZFZhbHVlPHN0cmluZz4oXG4gICAgICAgIHNlbGVjdEZpZWxkKGZpcnN0T3ZlcnZpZXcsICd0ZXh0JyksXG4gICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgIClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgb3ZlcnZpZXdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdXJsOiBnZXRBc1VybChzZWxlY3RGYWxsYmFja0ZpZWxkcyhmaXJzdE92ZXJ2aWV3LCAndXJsJywgJ2RhdGEnKSksXG4gICAgICAgICAgICAuLi4oZGVzY3JpcHRpb24gPyB7IGRlc2NyaXB0aW9uIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNsX3RvcGljOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICB0b3BpY3M6IFtcbiAgICAgICAgLi4uKG91dHB1dC50b3BpY3MgfHwgW10pLFxuICAgICAgICAuLi5nZXRBc0FycmF5KFxuICAgICAgICAgIHNlbGVjdEZpZWxkPFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXT4oc291cmNlLCAnY2xfdG9waWMnKVxuICAgICAgICApLm1hcCgodG9waWMpID0+XG4gICAgICAgICAgc2VsZWN0VHJhbnNsYXRlZFZhbHVlPHN0cmluZz4odG9waWMsIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXkpXG4gICAgICAgICksXG4gICAgICBdLFxuICAgIH0pLFxuICAgIGNsX3N0YXR1czogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgc3RhdHVzOiBnZXRTdGF0dXNGcm9tU3RhdHVzQ29kZShcbiAgICAgICAgc2VsZWN0RmllbGQoZ2V0Rmlyc3RWYWx1ZShzZWxlY3RGaWVsZChzb3VyY2UsICdjbF9zdGF0dXMnKSksICdrZXknKVxuICAgICAgKSxcbiAgICB9KSxcbiAgICBjbF9tYWludGVuYW5jZUFuZFVwZGF0ZUZyZXF1ZW5jeTogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgdXBkYXRlRnJlcXVlbmN5OiBnZXRVcGRhdGVGcmVxdWVuY3lGcm9tRnJlcXVlbmN5Q29kZShcbiAgICAgICAgc2VsZWN0RmllbGQoXG4gICAgICAgICAgZ2V0Rmlyc3RWYWx1ZShcbiAgICAgICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NsX21haW50ZW5hbmNlQW5kVXBkYXRlRnJlcXVlbmN5JylcbiAgICAgICAgICApLFxuICAgICAgICAgICdrZXknXG4gICAgICAgIClcbiAgICAgICksXG4gICAgfSksXG4gICAgY3JlYXRpb25EYXRlRm9yUmVzb3VyY2U6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHJlc291cmNlQ3JlYXRlZDogdG9EYXRlKFxuICAgICAgICBnZXRGaXJzdFZhbHVlKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAnY3JlYXRpb25EYXRlRm9yUmVzb3VyY2UnKSlcbiAgICAgICksXG4gICAgfSksXG4gICAgcmV2aXNpb25EYXRlRm9yUmVzb3VyY2U6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHJlc291cmNlVXBkYXRlZDogdG9EYXRlKFxuICAgICAgICBnZXRGaXJzdFZhbHVlKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAncmV2aXNpb25EYXRlRm9yUmVzb3VyY2UnKSlcbiAgICAgICksXG4gICAgfSksXG4gICAgcHVibGljYXRpb25EYXRlRm9yUmVzb3VyY2U6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHJlc291cmNlUHVibGlzaGVkOiB0b0RhdGUoXG4gICAgICAgIHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlLCAncHVibGljYXRpb25EYXRlRm9yUmVzb3VyY2UnKVxuICAgICAgKSxcbiAgICB9KSxcbiAgICBjcmVhdGVEYXRlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZWNvcmRDcmVhdGVkOiB0b0RhdGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdjcmVhdGVEYXRlJykpLFxuICAgIH0pLFxuICAgIGNoYW5nZURhdGU6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIHJlY29yZFVwZGF0ZWQ6IHRvRGF0ZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZSwgJ2NoYW5nZURhdGUnKSksXG4gICAgfSksXG4gICAgcHVibGljYXRpb25EYXRlOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICByZWNvcmRQdWJsaXNoZWQ6IHRvRGF0ZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZSwgJ3B1YmxpY2F0aW9uRGF0ZScpKSxcbiAgICB9KSxcbiAgICByZXNvdXJjZUxhbmd1YWdlOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IGxhbmdMaXN0ID0gZ2V0QXNBcnJheShcbiAgICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdyZXNvdXJjZUxhbmd1YWdlJylcbiAgICAgIClcbiAgICAgIGNvbnN0IGxhbmd1YWdlcyA9IGxhbmdMaXN0Lm1hcCh0b0xhbmcyKVxuICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gb3V0cHV0LmRlZmF1bHRMYW5ndWFnZSA/PyBsYW5ndWFnZXNbMF0gPz8gbnVsbCAvLyBzZXQgdGhlIGZpcnN0IGxhbmd1YWdlIGFzIG1haW4gb25lIGFzIGZhbGxiYWNrXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgZGVmYXVsdExhbmd1YWdlLFxuICAgICAgfVxuICAgIH0sXG4gICAgb3RoZXJMYW5ndWFnZTogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCBsYW5nTGlzdCA9IGdldEFzQXJyYXkoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdvdGhlckxhbmd1YWdlJykpXG4gICAgICBjb25zdCBsYW5ndWFnZXMgPSBsYW5nTGlzdC5tYXAodG9MYW5nMilcbiAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IG91dHB1dC5kZWZhdWx0TGFuZ3VhZ2UgPz8gbGFuZ3VhZ2VzWzBdID8/IG51bGxcbiAgICAgIGNvbnN0IG90aGVyTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLmZpbHRlcihcbiAgICAgICAgKGxhbmcpID0+IGxhbmcgIT09IGRlZmF1bHRMYW5ndWFnZVxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIG90aGVyTGFuZ3VhZ2VzLFxuICAgICAgfVxuICAgIH0sXG4gICAgbWFpbkxhbmd1YWdlOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2UsICdtYWluTGFuZ3VhZ2UnKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IGxhbmd1YWdlID8gdG9MYW5nMihsYW5ndWFnZSkgOiBudWxsLFxuICAgICAgfVxuICAgIH0sXG4gICAgbGluazogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCByYXdMaW5rcyA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkPFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXT4oc291cmNlLCAnbGluaycpXG4gICAgICApXG4gICAgICBjb25zdCBvbmxpbmVSZXNvdXJjZXMgPSByYXdMaW5rc1xuICAgICAgICAubWFwKChsaW5rKSA9PiB0aGlzLm1hcExpbmsobGluaykpXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYgIT09IG51bGwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIG9ubGluZVJlc291cmNlcyxcbiAgICAgIH0gYXMgQ2F0YWxvZ1JlY29yZFxuICAgIH0sXG4gICAgY29udGFjdDogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgY29udGFjdHM6IFtcbiAgICAgICAgbWFwQ29udGFjdChcbiAgICAgICAgICBnZXRGaXJzdFZhbHVlKHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3QnKSksXG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBjb250YWN0Rm9yUmVzb3VyY2U6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIGNvbnRhY3RzRm9yUmVzb3VyY2U6IFtcbiAgICAgICAgLi4uKCdjb250YWN0c0ZvclJlc291cmNlJyBpbiBvdXRwdXQgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShvdXRwdXQuY29udGFjdHNGb3JSZXNvdXJjZSlcbiAgICAgICAgICA/IG91dHB1dC5jb250YWN0c0ZvclJlc291cmNlXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIC4uLmdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdEZvclJlc291cmNlJykpLm1hcChcbiAgICAgICAgICAoY29udGFjdCkgPT4gbWFwQ29udGFjdChjb250YWN0LCB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5KVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBzb3VyY2VDYXRhbG9ndWU6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRhbG9nVXVpZDogc2VsZWN0RmFsbGJhY2soXG4gICAgICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdzb3VyY2VDYXRhbG9ndWUnKSxcbiAgICAgICAgICAgICdubyB0aXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgIClcbiAgICB9LFxuICAgIGFsbEtleXdvcmRzOiAob3V0cHV0LCBzb3VyY2UpID0+ICh7XG4gICAgICAuLi5vdXRwdXQsXG4gICAgICBrZXl3b3JkczogbWFwS2V5d29yZHMoXG4gICAgICAgIHNlbGVjdEZpZWxkPFRoZXNhdXJ1c1tdPihzb3VyY2UsICdhbGxLZXl3b3JkcycpLFxuICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICApLFxuICAgIH0pLFxuICAgIGluc3BpcmVUaGVtZTogKG91dHB1dCwgc291cmNlKSA9PiAoe1xuICAgICAgLi4ub3V0cHV0LFxuICAgICAgdG9waWNzOiBbXG4gICAgICAgIC4uLihvdXRwdXQudG9waWNzIHx8IFtdKSxcbiAgICAgICAgLi4uZ2V0QXNBcnJheShzZWxlY3RGaWVsZChzb3VyY2UsICdpbnNwaXJlVGhlbWVfc3luJykpLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBNRF9Db25zdHJhaW50c1VzZUxpbWl0YXRpb25PYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuY29uc3RyYWludEZpZWxkKFxuICAgICAgICAnb3RoZXInLFxuICAgICAgICBvdXRwdXQsXG4gICAgICAgIGdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnTURfQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0JykpXG4gICAgICApLFxuICAgIE1EX0xlZ2FsQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmNvbnN0cmFpbnRGaWVsZChcbiAgICAgICAgJ2xlZ2FsJyxcbiAgICAgICAgb3V0cHV0LFxuICAgICAgICBnZXRBc0FycmF5KFxuICAgICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ01EX0xlZ2FsQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0JylcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICBNRF9MZWdhbENvbnN0cmFpbnRzT3RoZXJDb25zdHJhaW50c09iamVjdDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5jb25zdHJhaW50RmllbGQoXG4gICAgICAgICdsZWdhbCcsXG4gICAgICAgIG91dHB1dCxcbiAgICAgICAgZ2V0QXNBcnJheShcbiAgICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdNRF9MZWdhbENvbnN0cmFpbnRzT3RoZXJDb25zdHJhaW50c09iamVjdCcpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgTURfU2VjdXJpdHlDb25zdHJhaW50c1VzZUxpbWl0YXRpb25PYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuY29uc3RyYWludEZpZWxkKFxuICAgICAgICAnc2VjdXJpdHknLFxuICAgICAgICBvdXRwdXQsXG4gICAgICAgIGdldEFzQXJyYXkoXG4gICAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnTURfU2VjdXJpdHlDb25zdHJhaW50c1VzZUxpbWl0YXRpb25PYmplY3QnKVxuICAgICAgICApXG4gICAgICApLFxuICAgIGxpY2Vuc2VPYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuY29uc3RyYWludEZpZWxkKFxuICAgICAgICAnbGljZW5zZScsXG4gICAgICAgIG91dHB1dCxcbiAgICAgICAgZ2V0QXNBcnJheShzZWxlY3RGaWVsZChzb3VyY2UsICdsaWNlbnNlT2JqZWN0JykpXG4gICAgICApLFxuICAgIGxpbmVhZ2VPYmplY3Q6IChvdXRwdXQsIHNvdXJjZSkgPT4gKHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIGxpbmVhZ2U6IHNlbGVjdFRyYW5zbGF0ZWRGaWVsZChcbiAgICAgICAgc291cmNlLFxuICAgICAgICAnbGluZWFnZU9iamVjdCcsXG4gICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICksXG4gICAgfSksXG4gICAgdXNlclNhdmVkQ291bnQ6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBmYXZvcml0ZUNvdW50OiBwYXJzZUludChzZWxlY3RGaWVsZChzb3VyY2UsICd1c2VyU2F2ZWRDb3VudCcpKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApLFxuICAgIGlzT3BlbkRhdGE6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBpc09wZW5EYXRhOiBzZWxlY3RGaWVsZChzb3VyY2UsICdpc09wZW5EYXRhJykgIT09ICdmYWxzZScsXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dFxuICAgICAgKSxcbiAgICBmZWF0dXJlVHlwZXM6IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBmZWF0dXJlVHlwZXM6IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2ZlYXR1cmVUeXBlcycpLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgcmVsYXRlZDogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCBmY2F0U291cmNlID0gc2VsZWN0RmllbGQoXG4gICAgICAgIGdldEZpcnN0VmFsdWUoXG4gICAgICAgICAgc2VsZWN0RmllbGQoXG4gICAgICAgICAgICA8U291cmNlV2l0aFVua25vd25Qcm9wcz5zZWxlY3RGaWVsZChzb3VyY2UsICdyZWxhdGVkJyksXG4gICAgICAgICAgICAnZmNhdHMnXG4gICAgICAgICAgKVxuICAgICAgICApID8/IHt9LFxuICAgICAgICAnX3NvdXJjZSdcbiAgICAgIClcbiAgICAgIGNvbnN0IGZlYXR1cmVDYXRhbG9nSWRlbnRpZmllcjogc3RyaW5nID0gc2VsZWN0RmllbGQoXG4gICAgICAgIDxTb3VyY2VXaXRoVW5rbm93blByb3BzPmZjYXRTb3VyY2UsXG4gICAgICAgICd1dWlkJ1xuICAgICAgKVxuICAgICAgY29uc3Qgc291cmNlT2ZMaW5rcyA9IGdldEFzQXJyYXkoXG4gICAgICAgIHNlbGVjdEZpZWxkKFxuICAgICAgICAgIDxTb3VyY2VXaXRoVW5rbm93blByb3BzPnNlbGVjdEZpZWxkKHNvdXJjZSwgJ3JlbGF0ZWQnKSxcbiAgICAgICAgICAnaGFzc291cmNlcydcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgY29uc3Qgc291cmNlT2ZJZGVudGlmaWVyczogc3RyaW5nW10gPSBzb3VyY2VPZkxpbmtzXG4gICAgICAgIC5maWx0ZXIoKGxpbmspID0+IGxpbmtbJ29yaWdpbiddID09PSAnY2F0YWxvZycpXG4gICAgICAgIC5tYXAoKGxpbmspID0+IHtcbiAgICAgICAgICByZXR1cm4gc2VsZWN0RmllbGQoXG4gICAgICAgICAgICBzZWxlY3RGaWVsZCg8U291cmNlV2l0aFVua25vd25Qcm9wcz5saW5rLCAnX3NvdXJjZScpLFxuICAgICAgICAgICAgJ3V1aWQnXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgY29uc3QgZXh0cmFWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiA9IHt9XG4gICAgICBpZiAoZmVhdHVyZUNhdGFsb2dJZGVudGlmaWVyKSB7XG4gICAgICAgIGV4dHJhVmFsdWVzLmZlYXR1cmVDYXRhbG9nSWRlbnRpZmllciA9IGZlYXR1cmVDYXRhbG9nSWRlbnRpZmllclxuICAgICAgfVxuICAgICAgaWYgKHNvdXJjZU9mSWRlbnRpZmllcnMgJiYgc291cmNlT2ZJZGVudGlmaWVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGV4dHJhVmFsdWVzLnNvdXJjZU9mSWRlbnRpZmllcnMgPSBzb3VyY2VPZklkZW50aWZpZXJzXG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZXh0cmFWYWx1ZXMpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLmFkZEV4dHJhKGV4dHJhVmFsdWVzLCBvdXRwdXQpXG4gICAgICAgIDogb3V0cHV0XG4gICAgfSxcbiAgICByZWNvcmRMaW5rOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZExpbmtzID0gZ2V0QXNBcnJheShcbiAgICAgICAgc2VsZWN0RmllbGQ8U291cmNlV2l0aFVua25vd25Qcm9wc1tdPihzb3VyY2UsICdyZWNvcmRMaW5rJylcbiAgICAgIClcbiAgICAgIGNvbnN0IHNvdXJjZXNJZGVudGlmaWVyczogc3RyaW5nW10gPSByZWNvcmRMaW5rc1xuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChsaW5rKSA9PiBsaW5rWydvcmlnaW4nXSA9PT0gJ2NhdGFsb2cnICYmIGxpbmtbJ3R5cGUnXSA9PT0gJ3NvdXJjZXMnXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgobGluaykgPT4gc2VsZWN0RmllbGQoPFNvdXJjZVdpdGhVbmtub3duUHJvcHM+bGluaywgJ3RvJykpXG5cbiAgICAgIHJldHVybiBzb3VyY2VzSWRlbnRpZmllcnMgJiYgc291cmNlc0lkZW50aWZpZXJzLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLmFkZEV4dHJhKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzb3VyY2VzSWRlbnRpZmllcnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3V0cHV0XG4gICAgICAgICAgKVxuICAgICAgICA6IG91dHB1dFxuICAgIH0sXG4gICAgaXNQdWJsaXNoZWRUb0FsbDogKG91dHB1dCwgc291cmNlKSA9PlxuICAgICAgdGhpcy5hZGRFeHRyYShcbiAgICAgICAge1xuICAgICAgICAgIGlzUHVibGlzaGVkVG9BbGw6IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2lzUHVibGlzaGVkVG9BbGwnKSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0XG4gICAgICApLFxuICAgIGlzSGFydmVzdGVkOiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgaXNIYXJ2ZXN0ZWQ6IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2lzSGFydmVzdGVkJykgIT09ICdmYWxzZScsXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dFxuICAgICAgKSxcbiAgICBlZGl0OiAob3V0cHV0LCBzb3VyY2UpID0+XG4gICAgICB0aGlzLmFkZEV4dHJhKFxuICAgICAgICB7XG4gICAgICAgICAgZWRpdDogc2VsZWN0RmllbGQoc291cmNlLCAnZWRpdCcpLFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRcbiAgICAgICksXG4gICAgdXNlcmluZm86IChvdXRwdXQsIHNvdXJjZSkgPT5cbiAgICAgIHRoaXMuYWRkRXh0cmEoXG4gICAgICAgIHtcbiAgICAgICAgICBvd25lckluZm86IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ3VzZXJpbmZvJyksXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dFxuICAgICAgKSxcbiAgICByZXNvdXJjZVR5cGU6IChvdXRwdXQsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZ2V0Rmlyc3RWYWx1ZShzZWxlY3RGaWVsZChzb3VyY2UsICdyZXNvdXJjZVR5cGUnKSlcbiAgICAgIGNvbnN0IHByZXNlbnRhdGlvbkZvcm1zID0gZ2V0QXNBcnJheShcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY2xfcHJlc2VudGF0aW9uRm9ybScpXG4gICAgICApLm1hcCgocHJlc2VudGF0aW9uRm9ybSkgPT4gcHJlc2VudGF0aW9uRm9ybS5rZXkpIGFzIHN0cmluZ1tdXG4gICAgICBjb25zdCB0eXBlID0gZ2V0UmV1c2VQcmVzZW50YXRpb25Gb3JtKHByZXNlbnRhdGlvbkZvcm1zKSB8fCByZXNvdXJjZVR5cGVcbiAgICAgIGNvbnN0IGtpbmQgPSBnZXRSZXNvdXJjZVR5cGUodHlwZSlcbiAgICAgIGNvbnN0IHJldXNlVHlwZSA9IGdldFJldXNlVHlwZSh0eXBlKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3V0cHV0LFxuICAgICAgICBraW5kLFxuICAgICAgICAuLi4ocmV1c2VUeXBlICYmIHsgcmV1c2VUeXBlIH0pLFxuICAgICAgfSBhcyBDYXRhbG9nUmVjb3JkXG4gICAgfSxcbiAgICBnZW9tOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IGdlb21zID0gZ2V0QXNBcnJheShzZWxlY3RGaWVsZChzb3VyY2UsICdnZW9tJykpXG4gICAgICBjb25zdCBzaGFwZXMgPSBnZXRBc0FycmF5KHNlbGVjdEZpZWxkKHNvdXJjZSwgJ3NoYXBlJykpXG4gICAgICBjb25zdCBleHRlbnREZXNjcmlwdGlvbnMgPSBnZXRBc0FycmF5KFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdleHRlbnREZXNjcmlwdGlvbk9iamVjdCcpXG4gICAgICApXG4gICAgICBjb25zdCBzcGF0aWFsRXh0ZW50cyA9IGdldEFzQXJyYXkoc2VsZWN0RmllbGQoc291cmNlLCAnc3BhdGlhbEV4dGVudHMnKSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgc3BhdGlhbEV4dGVudHM6IFtcbiAgICAgICAgICAuLi5zcGF0aWFsRXh0ZW50cyxcbiAgICAgICAgICAuLi5nZW9tcy5tYXAoKGdlb20sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZShcbiAgICAgICAgICAgICAgZ2V0QXJyYXlJdGVtKGV4dGVudERlc2NyaXB0aW9ucywgaW5kZXgpLFxuICAgICAgICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBnZW9tZXRyeSA9IHNoYXBlc1tpbmRleF0gPz8gZ2VvbVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uKGRlc2NyaXB0aW9uICE9PSBudWxsID8geyBkZXNjcmlwdGlvbiB9IDogbnVsbCksXG4gICAgICAgICAgICAgIGdlb21ldHJ5LFxuICAgICAgICAgICAgfSBhcyBEYXRhc2V0U3BhdGlhbEV4dGVudFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH0sXG4gICAgcmVzb3VyY2VUZW1wb3JhbEV4dGVudERhdGVSYW5nZTogKG91dHB1dCwgc291cmNlKSA9PiB7XG4gICAgICBjb25zdCByYW5nZXMgPSBnZXRBc0FycmF5KFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdyZXNvdXJjZVRlbXBvcmFsRXh0ZW50RGF0ZVJhbmdlJylcbiAgICAgIClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm91dHB1dCxcbiAgICAgICAgdGVtcG9yYWxFeHRlbnRzOiByYW5nZXMubWFwKChyYW5nZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gc2VsZWN0RmllbGQocmFuZ2UsICdndGUnKVxuICAgICAgICAgIGNvbnN0IGVuZCA9IHNlbGVjdEZpZWxkKHJhbmdlLCAnbHRlJylcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uKHN0YXJ0ICE9PSBudWxsID8geyBzdGFydDogdG9EYXRlKHN0YXJ0KSB9IDogbnVsbCksXG4gICAgICAgICAgICAuLi4oZW5kICE9PSBudWxsID8geyBlbmQ6IHRvRGF0ZShlbmQpIH0gOiBudWxsKSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgfVxuICAgIH0sXG4gICAgcmVzb3VyY2VJZGVudGlmaWVyOiAob3V0cHV0LCBzb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXJzID0gZ2V0QXNBcnJheShzZWxlY3RGaWVsZChzb3VyY2UsICdyZXNvdXJjZUlkZW50aWZpZXInKSlcblxuICAgICAgaWYgKCFpZGVudGlmaWVycy5sZW5ndGgpIHJldHVybiBvdXRwdXRcblxuICAgICAgY29uc3QgbWFwcGVkSWRlbnRpZmllcnMgPSBpZGVudGlmaWVyc1xuICAgICAgICAubWFwKChpZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvZGUgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KGlkLCAnY29kZScpXG4gICAgICAgICAgY29uc3QgY29kZVNwYWNlID0gc2VsZWN0RmllbGQ8c3RyaW5nPihpZCwgJ2NvZGVTcGFjZScpXG4gICAgICAgICAgY29uc3QgbGluayA9IHNlbGVjdEZpZWxkPHN0cmluZz4oaWQsICdsaW5rJylcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgLi4uKGNvZGVTcGFjZSAmJiB7IGNvZGVTcGFjZSB9KSxcbiAgICAgICAgICAgIC4uLihsaW5rICYmIHsgdXJsOiBsaW5rIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoaWQpID0+IGlkICE9PSBudWxsKVxuXG4gICAgICBpZiAoIW1hcHBlZElkZW50aWZpZXJzLmxlbmd0aCkgcmV0dXJuIG91dHB1dFxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vdXRwdXQsXG4gICAgICAgIHJlc291cmNlSWRlbnRpZmllcnM6IG1hcHBlZElkZW50aWZpZXJzLFxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBwcml2YXRlIGdlbmVyaWNGaWVsZCA9IChvdXRwdXQpID0+IG91dHB1dFxuXG4gIHByaXZhdGUgY29uc3RyYWludEZpZWxkID0gKFxuICAgIHR5cGU6ICdsaWNlbnNlJyB8ICdsZWdhbCcgfCAnc2VjdXJpdHknIHwgJ290aGVyJyxcbiAgICBvdXRwdXQ6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD4sXG4gICAgY29uc3RyYWludEFycmF5OiBTb3VyY2VXaXRoVW5rbm93blByb3BzW11cbiAgKSA9PiB7XG4gICAgbGV0IG91dHB1dEZpZWxkOiBzdHJpbmdcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpY2Vuc2UnOlxuICAgICAgICBvdXRwdXRGaWVsZCA9ICdsaWNlbnNlcydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2xlZ2FsJzpcbiAgICAgICAgb3V0cHV0RmllbGQgPSAnbGVnYWxDb25zdHJhaW50cydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3NlY3VyaXR5JzpcbiAgICAgICAgb3V0cHV0RmllbGQgPSAnc2VjdXJpdHlDb25zdHJhaW50cydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgb3V0cHV0RmllbGQgPSAnb3RoZXJDb25zdHJhaW50cydcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0QXJyYXk6IENvbnN0cmFpbnRbXSA9XG4gICAgICBvdXRwdXRGaWVsZCBpbiBvdXRwdXQgPyBvdXRwdXRbb3V0cHV0RmllbGRdIDogW11cbiAgICBvdXRwdXRBcnJheS5wdXNoKFxuICAgICAgLi4uY29uc3RyYWludEFycmF5Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB0ZXh0ID0gc2VsZWN0VHJhbnNsYXRlZFZhbHVlKFxuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6ZWRJbmRleEtleVxuICAgICAgICApIGFzIHN0cmluZ1xuICAgICAgICBjb25zdCB1cmwgPSBnZXRBc1VybChzZWxlY3RGaWVsZChpdGVtLCAnbGluaycpKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRleHQsXG4gICAgICAgICAgLi4uKHVybCA/IHsgdXJsIH0gOiB7fSksXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLm91dHB1dCxcbiAgICAgIFtvdXRwdXRGaWVsZF06IG91dHB1dEFycmF5LFxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBnZXRNYXBwaW5nRm4oZmllbGROYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZmllbGROYW1lIGluIHRoaXMuZmllbGRzID8gdGhpcy5maWVsZHNbZmllbGROYW1lXSA6IHRoaXMuZ2VuZXJpY0ZpZWxkXG4gIH1cblxuICBnZXRMaW5rVHlwZSh1cmw6IHN0cmluZywgcHJvdG9jb2w/OiBzdHJpbmcpOiBPbmxpbmVSZXNvdXJjZVR5cGUge1xuICAgIGlmICghcHJvdG9jb2wpIHtcbiAgICAgIHJldHVybiAnbGluaydcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKC9eRVNSSTpSRVNULy50ZXN0KHByb3RvY29sKSAmJiAvRmVhdHVyZVNlcnZlci8udGVzdCh1cmwpKSB8fFxuICAgICAgL15PR0M6V01TLy50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL15PR0M6V0ZTLy50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL15PR0M6V01UUy8udGVzdChwcm90b2NvbCkgfHxcbiAgICAgIC9UTVMvaS50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL29nY1xcVyphcGlcXFcqZmVhdHVyZXMvaS50ZXN0KHByb3RvY29sKSB8fFxuICAgICAgL15EQjpQT1NUR0lTL2kudGVzdChwcm90b2NvbCkgfHxcbiAgICAgIC9zdGFjXFxXKml0ZW1zL2kudGVzdChwcm90b2NvbCkgfHxcbiAgICAgICgvXldXVzpET1dOTE9BRC0vLnRlc3QocHJvdG9jb2wpICYmIC9kYXRhLmdlb3BmLmZyLy50ZXN0KHVybCkpIC8vIFRPIERPIDogY2hhbmdlIHdpdGggdGhlIGdvb2QgcHJvdG9jb2wgd2hlbiBkZWNpZGVkXG4gICAgKSB7XG4gICAgICByZXR1cm4gJ3NlcnZpY2UnXG4gICAgfVxuICAgIGlmICgvXldXVzpET1dOTE9BRC8udGVzdChwcm90b2NvbCkpIHtcbiAgICAgIHJldHVybiAnZG93bmxvYWQnXG4gICAgfVxuICAgIHJldHVybiAnbGluaydcbiAgfVxuXG4gIG1hcExpbmsgPSAoc291cmNlTGluazogU291cmNlV2l0aFVua25vd25Qcm9wcyk6IE9ubGluZVJlc291cmNlIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgdXJsID0gZ2V0QXNVcmwoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkPHN0cmluZz4oXG4gICAgICAgICAgc291cmNlTGluayxcbiAgICAgICAgICAndXJsT2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICAgICksXG4gICAgICAgIHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlTGluaywgJ3VybCcpXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IG5hbWUgPSBzZWxlY3RGYWxsYmFjayhcbiAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZDxzdHJpbmc+KFxuICAgICAgICBzb3VyY2VMaW5rLFxuICAgICAgICAnbmFtZU9iamVjdCcsXG4gICAgICAgIHRoaXMuZ2V0TG9jYWxpemVkSW5kZXhLZXlcbiAgICAgICksXG4gICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUxpbmssICduYW1lJylcbiAgICApXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBzZWxlY3RGYWxsYmFjayhcbiAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZDxzdHJpbmc+KFxuICAgICAgICBzb3VyY2VMaW5rLFxuICAgICAgICAnZGVzY3JpcHRpb25PYmplY3QnLFxuICAgICAgICB0aGlzLmdldExvY2FsaXplZEluZGV4S2V5XG4gICAgICApLFxuICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VMaW5rLCAnZGVzY3JpcHRpb24nKVxuICAgIClcbiAgICBjb25zdCBkZXNjcmlwdGlvbkxpbmsgPSBzZWxlY3RGaWVsZDxvYmplY3Q+KHNvdXJjZUxpbmssICdkZXNjcmlwdGlvbk9iamVjdCcpXG4gICAgY29uc3QgYWNjZXNzUmVzdHJpY3RlZCA9XG4gICAgICBkZXNjcmlwdGlvbkxpbmsgJiZcbiAgICAgICdsaW5rJyBpbiBkZXNjcmlwdGlvbkxpbmsgJiZcbiAgICAgIGRlc2NyaXB0aW9uTGluay5saW5rLnRvU3RyaW5nKCkuaW5jbHVkZXMoJyNNRF9SZXN0cmljdGlvbkNvZGVfcmVzdHJpY3RlZCcpXG4gICAgLy8gbm8gdXJsOiBmYWlsIGVhcmx5XG4gICAgaWYgKHVybCA9PT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogY29sbGVjdCBlcnJvcnMgYXQgdGhlIHJlY29yZCBsZXZlbD9cbiAgICAgIGNvbnNvbGUud2FybignQSBsaW5rIHdpdGhvdXQgdmFsaWQgVVJMIHdhcyBmb3VuZCcsIHNvdXJjZUxpbmspXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHByb3RvY29sID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VMaW5rLCAncHJvdG9jb2wnKVxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldExpbmtUeXBlKHVybC50b1N0cmluZygpLCBwcm90b2NvbClcbiAgICBjb25zdCBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPSBtYXRjaFByb3RvY29sKHByb3RvY29sKVxuICAgIGNvbnN0IG1pbWVUeXBlTWF0Y2hlcyA9XG4gICAgICBwcm90b2NvbCAmJiBwcm90b2NvbC5tYXRjaCgvXldXVzpET1dOTE9BRDooLitcXC8uKykkLylcbiAgICBjb25zdCBtaW1lVHlwZSA9IG1pbWVUeXBlTWF0Y2hlcyAmJiBtaW1lVHlwZU1hdGNoZXNbMV1cblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IHtcbiAgICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uIH0pLFxuICAgIH1cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRpc3RyaWJ1dGlvbixcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgIGFjY2Vzc1NlcnZpY2VQcm90b2NvbCxcbiAgICAgICAgICBhY2Nlc3NSZXN0cmljdGVkOiBhY2Nlc3NSZXN0cmljdGVkLFxuICAgICAgICB9XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5kaXN0cmlidXRpb24sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgfVxuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRpc3RyaWJ1dGlvbixcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgIC4uLihtaW1lVHlwZSAmJiB7IG1pbWVUeXBlIH0pLFxuICAgICAgICB9XG4gICAgICBjYXNlICdlbmRwb2ludCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZGlzdHJpYnV0aW9uLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgYWNjZXNzU2VydmljZVByb3RvY29sOiBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2wsXG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEV4dHJhID0gKHZhbHVlOiBvYmplY3QsIG91dHB1dDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPikgPT4gKHtcbiAgICAuLi5vdXRwdXQsXG4gICAgZXh0cmFzOiB7IC4uLihvdXRwdXQuZXh0cmFzIHx8IHt9KSwgLi4udmFsdWUgfSxcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -15,6 +15,7 @@ export const ES_SOURCE_SUMMARY = [
|
|
|
15
15
|
'userSavedCount',
|
|
16
16
|
'cl_topic',
|
|
17
17
|
'cl_maintenanceAndUpdateFrequency',
|
|
18
|
+
'cl_presentationForm',
|
|
18
19
|
'MD_LegalConstraints*Object',
|
|
19
20
|
'qualityScore',
|
|
20
21
|
'allKeywords',
|
|
@@ -28,4 +29,4 @@ export const ES_QUERY_FIELDS_PRIORITY = {
|
|
|
28
29
|
'any.${searchLang}': 1,
|
|
29
30
|
uuid: 1,
|
|
30
31
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L2VsYXN0aWNzZWFyY2gvY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsTUFBTTtJQUNOLElBQUk7SUFDSixPQUFPO0lBQ1AsV0FBVztJQUNYLHFCQUFxQjtJQUNyQix3QkFBd0I7SUFDeEIsVUFBVTtJQUNWLE1BQU07SUFDTixNQUFNO0lBQ04sY0FBYztJQUNkLG1DQUFtQztJQUNuQyx3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1Ysa0NBQWtDO0lBQ2xDLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsY0FBYztJQUNkLGFBQWE7SUFDYixZQUFZO0NBQ2IsQ0FBQTtBQUdELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3RDLG1DQUFtQyxFQUFFLENBQUM7SUFDdEMsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixzQ0FBc0MsRUFBRSxDQUFDO0lBQ3pDLDZCQUE2QixFQUFFLENBQUM7SUFDaEMsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixJQUFJLEVBQUUsQ0FBQztDQUNSLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRVNfU09VUkNFX1NVTU1BUlkgPSBbXG4gICd1dWlkJyxcbiAgJ2lkJyxcbiAgJ3RpdGxlJyxcbiAgJ3Jlc291cmNlKicsXG4gICdyZXNvdXJjZVRpdGxlT2JqZWN0JyxcbiAgJ3Jlc291cmNlQWJzdHJhY3RPYmplY3QnLFxuICAnb3ZlcnZpZXcnLFxuICAnbG9nbycsXG4gICdsaW5rJyxcbiAgJ2xpbmtQcm90b2NvbCcsXG4gICdjb250YWN0Rm9yUmVzb3VyY2UqLm9yZ2FuaXNhdGlvbionLFxuICAnY29udGFjdCoub3JnYW5pc2F0aW9uKicsXG4gICdjb250YWN0Ki5lbWFpbCcsXG4gICd1c2VyU2F2ZWRDb3VudCcsXG4gICdjbF90b3BpYycsXG4gICdjbF9tYWludGVuYW5jZUFuZFVwZGF0ZUZyZXF1ZW5jeScsXG4gICdjbF9wcmVzZW50YXRpb25Gb3JtJyxcbiAgJ01EX0xlZ2FsQ29uc3RyYWludHMqT2JqZWN0JyxcbiAgJ3F1YWxpdHlTY29yZScsXG4gICdhbGxLZXl3b3JkcycsXG4gICdyZWNvcmRMaW5rJyxcbl1cblxuZXhwb3J0IHR5cGUgRXNRdWVyeUZpZWxkc1ByaW9yaXR5VHlwZSA9IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbmV4cG9ydCBjb25zdCBFU19RVUVSWV9GSUVMRFNfUFJJT1JJVFkgPSB7XG4gICdyZXNvdXJjZVRpdGxlT2JqZWN0LiR7c2VhcmNoTGFuZ30nOiA1LFxuICAndGFnLiR7c2VhcmNoTGFuZ30nOiA0LFxuICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC4ke3NlYXJjaExhbmd9JzogMyxcbiAgJ2xpbmVhZ2VPYmplY3QuJHtzZWFyY2hMYW5nfSc6IDIsXG4gICdhbnkuJHtzZWFyY2hMYW5nfSc6IDEsXG4gIHV1aWQ6IDEsXG59XG4iXX0=
|
|
@@ -81,7 +81,7 @@ export class GeoTableViewComponent {
|
|
|
81
81
|
this.subscription.unsubscribe();
|
|
82
82
|
}
|
|
83
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoTableViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoTableViewComponent, isStandalone: true, selector: "gn-ui-geo-table-view", inputs: { dataset: "dataset" }, viewQueries: [{ propertyName: "uiTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-row h-full overflow-auto\">\n <gn-ui-data-table\n #table\n class=\"w-1/2 overflow-auto\"\n [dataset]=\"dataset\"\n [activeId]=\"selectionId\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-map-container\n #mapContainer\n class=\"w-1/2 h-full\"\n [context]=\"mapContext\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <gn-ui-feature-detail\n style=\"width: 300px\"\n class=\"p-3 shrink-0 overflow-auto\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["featureAttributes", "dataset", "activeId"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoTableViewComponent, isStandalone: true, selector: "gn-ui-geo-table-view", inputs: { dataset: "dataset" }, viewQueries: [{ propertyName: "uiTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-row h-full overflow-auto\">\n <gn-ui-data-table\n #table\n class=\"w-1/2 overflow-auto\"\n [dataset]=\"dataset\"\n [activeId]=\"selectionId\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-map-container\n #mapContainer\n class=\"w-1/2 h-full\"\n [context]=\"mapContext\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <gn-ui-feature-detail\n style=\"width: 300px\"\n class=\"p-3 shrink-0 overflow-auto\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["featureAttributes", "dataset", "activeId"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoTableViewComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
95
95
|
type: ViewChild,
|
|
96
96
|
args: ['mapContainer']
|
|
97
97
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXRhYmxlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9nZW8tdGFibGUtdmlldy9nZW8tdGFibGUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2dlby10YWJsZS12aWV3L2dlby10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFDTCxrQkFBa0IsR0FHbkIsTUFBTSx1Q0FBdUMsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRW5DLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIscUJBQXFCLEdBQ3RCLE1BQU0sbUNBQW1DLENBQUE7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFBOztBQVV6RSxNQUFNLE9BQU8scUJBQXFCO0lBV2hDLFlBQW9CLFNBQTRCO1FBQTVCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBRnhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUVVLENBQUM7SUFFcEQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQy9DLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBMEI7UUFDdEMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUNyQiw2Q0FBNkM7UUFDN0MsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQW1CO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLG9DQUFvQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFBO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDOUIsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQTBCO1FBQ25ELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1IsR0FBRyxDQUFDLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3hCLE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsR0FBRyxFQUFFLHNEQUFzRDtpQkFDNUQ7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLHdDQUF3Qzt3QkFDeEMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7cUJBQ3BDO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZCxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLFVBQVU7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsT0FBTyxFQUFFLEVBQUU7YUFDWjtTQUNGLENBQUE7UUFDRCwwQkFBMEI7UUFDMUIscURBQXFEO1FBQ3JELG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsS0FBSztJQUNQLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxFQUFlO1FBQ3RDLHVDQUF1QztRQUN2Qyw0REFBNEQ7SUFDOUQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2pDLENBQUM7K0dBMUZVLHFCQUFxQjttR0FBckIscUJBQXFCLGlUQy9CbEMsMmtCQW9CQSwwRERRWSxxQkFBcUIseU1BQUUsc0JBQXNCLHdHQUFFLGtCQUFrQjs7NEZBR2hFLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLGNBQ2hFLElBQUk7c0ZBR1AsT0FBTztzQkFBZixLQUFLO2dCQUNjLE9BQU87c0JBQTFCLFNBQVM7dUJBQUMsT0FBTztnQkFDUyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBEYXRhVGFibGVDb21wb25lbnQsXG4gIFRhYmxlSXRlbUlkLFxuICBUYWJsZUl0ZW1Nb2RlbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9kYXRhdml6L3NyYydcbmltcG9ydCB0eXBlIHsgRmVhdHVyZSwgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1hcENvbnRleHQgfSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgQmFzZVJlYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1nZW8tdGFibGUtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tdGFibGUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dlby10YWJsZS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtNYXBDb250YWluZXJDb21wb25lbnQsIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsIERhdGFUYWJsZUNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEdlb1RhYmxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0YXNldDogQmFzZVJlYWRlclxuICBAVmlld0NoaWxkKCd0YWJsZScpIHVpVGFibGU6IERhdGFUYWJsZUNvbXBvbmVudFxuICBAVmlld0NoaWxkKCdtYXBDb250YWluZXInKSBtYXBDb250YWluZXI6IE1hcENvbnRhaW5lckNvbXBvbmVudFxuXG4gIHRhYmxlRGF0YTogVGFibGVJdGVtTW9kZWxbXVxuICBtYXBDb250ZXh0OiBNYXBDb250ZXh0XG4gIHNlbGVjdGlvbklkOiBUYWJsZUl0ZW1JZFxuICBzZWxlY3Rpb246IEZlYXR1cmVcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tYXBDb250ZXh0ID0gYXdhaXQgdGhpcy5pbml0TWFwQ29udGV4dCgpXG4gIH1cblxuICBvblRhYmxlU2VsZWN0KHRhYmxlRW50cnk6IFRhYmxlSXRlbU1vZGVsKSB7XG4gICAgY29uc3QgeyBpZCB9ID0gdGFibGVFbnRyeVxuICAgIHRoaXMuc2VsZWN0aW9uSWQgPSBpZFxuICAgIC8vIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5nZXRGZWF0dXJlRnJvbUlkKGlkKVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5hbmltYXRlVG9GZWF0dXJlKHRoaXMuc2VsZWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZVtdKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBmZWF0dXJlcz8ubGVuZ3RoID4gMCAmJiBmZWF0dXJlc1swXVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHNob3cgc3R5bGluZyBmb3Igc2VsZWN0aW9uXG4gICAgICB0aGlzLnNlbGVjdGlvbklkID0gdGhpcy5zZWxlY3Rpb24uaWRcbiAgICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgLy8gdGhpcy52ZWN0b3JMYXllci5jaGFuZ2VkKClcbiAgICAgIHRoaXMudWlUYWJsZS5zY3JvbGxUb0l0ZW0odGhpcy5zZWxlY3Rpb25JZClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlb2pzb25Ub1RhYmxlRGF0YShnZW9qc29uOiBGZWF0dXJlQ29sbGVjdGlvbikge1xuICAgIHJldHVybiBnZW9qc29uLmZlYXR1cmVzLm1hcCgoZikgPT4gKHtcbiAgICAgIGlkOiBmLmlkLFxuICAgICAgLi4uZi5wcm9wZXJ0aWVzLFxuICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0TWFwQ29udGV4dCgpOiBQcm9taXNlPE1hcENvbnRleHQ+IHtcbiAgICB0aGlzLmRhdGFzZXQuc2VsZWN0QWxsKClcbiAgICByZXR1cm4ge1xuICAgICAgbGF5ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAneHl6JyxcbiAgICAgICAgICB1cmw6ICdodHRwczovL3thLWN9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgICAgICAgLy8gRklYTUU6IHdlJ3JlIG5vdCBnZXR0aW5nIGdlb2pzb24gaGVyZVxuICAgICAgICAgICAgZmVhdHVyZXM6IGF3YWl0IHRoaXMuZGF0YXNldC5yZWFkKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB2aWV3OiB7XG4gICAgICAgIGNlbnRlcjogWzAsIDBdLFxuICAgICAgICB6b29tOiAyLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGVUb0ZlYXR1cmUoZmVhdHVyZTogRmVhdHVyZSk6IHZvaWQge1xuICAgIHRoaXMubWFwQ29udGV4dCA9IHtcbiAgICAgIC4uLnRoaXMubWFwQ29udGV4dCxcbiAgICAgIHZpZXc6IHtcbiAgICAgICAgZ2VvbWV0cnk6IGZlYXR1cmUuZ2VvbWV0cnksXG4gICAgICAgIG1heFpvb206IDEzLFxuICAgICAgfSxcbiAgICB9XG4gICAgLy8gRklYTUU6IGFuaW1hdGUgdGhlIHZpZXdcbiAgICAvLyB0aGlzLnZpZXcuZml0KGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKSwge1xuICAgIC8vICAgZHVyYXRpb246IDEwMDAsXG4gICAgLy8gICBtYXhab29tOiAxMSxcbiAgICAvLyB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRGZWF0dXJlRnJvbUlkKGlkOiBUYWJsZUl0ZW1JZCkge1xuICAgIC8vIEZJWE1FOiByZXN0b3JlIHRoaXMgb25jZSB3ZSBuZWVkIGl0P1xuICAgIC8vIHJldHVybiB0aGlzLmZlYXR1cmVzLmZpbmQoKGZlYXR1cmUpID0+IGZlYXR1cmUuaWQgPT09IGlkKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBoLWZ1bGwgb3ZlcmZsb3ctYXV0b1wiPlxuICA8Z24tdWktZGF0YS10YWJsZVxuICAgICN0YWJsZVxuICAgIGNsYXNzPVwidy0xLzIgb3ZlcmZsb3ctYXV0b1wiXG4gICAgW2RhdGFzZXRdPVwiZGF0YXNldFwiXG4gICAgW2FjdGl2ZUlkXT1cInNlbGVjdGlvbklkXCJcbiAgICAoc2VsZWN0ZWQpPVwib25UYWJsZVNlbGVjdCgkZXZlbnQpXCJcbiAgPjwvZ24tdWktZGF0YS10YWJsZT5cbiAgPGduLXVpLW1hcC1jb250YWluZXJcbiAgICAjbWFwQ29udGFpbmVyXG4gICAgY2xhc3M9XCJ3LTEvMiBoLWZ1bGxcIlxuICAgIFtjb250ZXh0XT1cIm1hcENvbnRleHRcIlxuICAgIChmZWF0dXJlc0NsaWNrKT1cIm9uTWFwRmVhdHVyZVNlbGVjdCgkZXZlbnQpXCJcbiAgPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiAgPGduLXVpLWZlYXR1cmUtZGV0YWlsXG4gICAgc3R5bGU9XCJ3aWR0aDogMzAwcHhcIlxuICAgIGNsYXNzPVwicC0zIHNocmluay0wIG92ZXJmbG93LWF1dG9cIlxuICAgIFtmZWF0dXJlXT1cInNlbGVjdGlvblwiXG4gID48L2duLXVpLWZlYXR1cmUtZGV0YWlsPlxuPC9kaXY+XG4iXX0=
|