geonetwork-ui 2.4.0-dev.cec60ff1 → 2.4.0-dev.e079151e
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +6 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +12 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +138 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +21 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +19 -9
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +12 -7
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +153 -60
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -4
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +9 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +11 -5
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +29 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -7
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/translations/de.json +58 -32
- package/esm2022/translations/en.json +34 -8
- package/esm2022/translations/es.json +31 -5
- package/esm2022/translations/fr.json +34 -8
- package/esm2022/translations/it.json +32 -6
- package/esm2022/translations/nl.json +31 -5
- package/esm2022/translations/pt.json +31 -5
- package/fesm2022/geonetwork-ui.mjs +937 -236
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +9 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +39 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +3 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -2
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +11 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +1 -0
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +12 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +3 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +117 -21
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +15 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +16 -8
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +186 -61
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +2 -3
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +5 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +7 -2
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +17 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +22 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/src/libs/ui/widgets/src/index.ts +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/tailwind.base.css +2 -1
- package/translations/de.json +58 -32
- package/translations/en.json +34 -8
- package/translations/es.json +31 -5
- package/translations/fr.json +34 -8
- package/translations/it.json +32 -6
- package/translations/nl.json +31 -5
- package/translations/pt.json +31 -5
- package/translations/sk.json +32 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export * from './lib/base.converter';
|
|
1
2
|
export * from './lib/iso19139';
|
|
2
3
|
export * from './lib/iso19115-3';
|
|
3
4
|
export * from './lib/find-converter';
|
|
4
5
|
export * from './lib/gn4';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLmNvbnZlcnRlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lzbzE5MTM5J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaXNvMTkxMTUtMydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbmQtY29udmVydGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ240J1xuIl19
|
|
@@ -67,10 +67,11 @@ export const mapKeywords = (thesauri, language) => {
|
|
|
67
67
|
keywords.push({
|
|
68
68
|
label: selectTranslatedValue(keyword, language),
|
|
69
69
|
type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
|
|
70
|
+
...(keyword.link && { key: keyword.link }),
|
|
70
71
|
...(thesaurus && { thesaurus }),
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
return keywords;
|
|
75
76
|
};
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQ2hDLENBQUMsQ0FBQTtTQUNIO0tBQ0Y7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldFJvbGVGcm9tUm9sZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9yb2xlLm1hcHBlcidcbmltcG9ydCB7IFRoZXNhdXJ1cyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBnZXRLZXl3b3JkVHlwZUZyb21LZXl3b3JkVHlwZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9rZXl3b3JkLm1hcHBlcidcblxuZXhwb3J0IHR5cGUgU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc291cmNlICE9PSBudWxsICYmIGZpZWxkTmFtZSBpbiBzb3VyY2UgPyAoc291cmNlW2ZpZWxkTmFtZV0gYXMgVCkgOiBudWxsXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFja0ZpZWxkcyA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICAuLi5maWVsZE5hbWVzOiBzdHJpbmdbXVxuKTogVCB8IG51bGwgPT5cbiAgZmllbGROYW1lcy5yZWR1Y2U8VD4oXG4gICAgKHByZXYsIGN1cnIpID0+IChwcmV2ID09PSBudWxsID8gc2VsZWN0RmllbGQoc291cmNlLCBjdXJyKSA6IHByZXYpLFxuICAgIG51bGxcbiAgKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0RmFsbGJhY2sgPSA8VCwgVT4oZmllbGQ6IFQsIGZhbGxiYWNrOiBVKTogVCB8IFUgPT5cbiAgZmllbGQgPT09IG51bGwgPyBmYWxsYmFjayA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RUcmFuc2xhdGVkVmFsdWUgPSA8VD4oXG4gIHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc2VsZWN0RmFsbGJhY2soc2VsZWN0RmllbGQoc291cmNlLCBsYW5nMyksIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2RlZmF1bHQnKSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT4gc2VsZWN0VHJhbnNsYXRlZFZhbHVlKHNlbGVjdEZpZWxkKHNvdXJjZSwgZmllbGROYW1lKSwgbGFuZzMpXG5cbmV4cG9ydCBjb25zdCB0b0RhdGUgPSAoZmllbGQpID0+IG5ldyBEYXRlKGZpZWxkKVxuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RWYWx1ZSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZFswXSA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBnZXRBcnJheUl0ZW0gPSAoZmllbGQsIGluZGV4KSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSAmJiBmaWVsZFtpbmRleF0gIT09IHVuZGVmaW5lZCA/IGZpZWxkW2luZGV4XSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IGdldEFzQXJyYXkgPSAoZmllbGQpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpID8gZmllbGQgOiBmaWVsZCAhPT0gbnVsbCA/IFtmaWVsZF0gOiBbXVxuXG5leHBvcnQgY29uc3QgZ2V0QXNVcmwgPSAoXG4gIGZpZWxkLFxuICBsb2NhdGlvbjogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKClcbikgPT4ge1xuICAvLyBhbiBlbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgdXJsLCBldmVuIHRob3VnaCBpdCBjb3VsZCBiZSBjb25zaWRlcmVkIGFuIGVtcHR5IHBhdGggdG8gdGhlIHJvb3RcbiAgaWYgKGZpZWxkID09PSAnJyB8fCBmaWVsZCA9PT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgbGV0IHVybCA9IGZpZWxkXG4gIGlmIChmaWVsZC5tYXRjaCgvXnd3d1xcLi8pKSB1cmwgPSBgaHR0cHM6Ly8ke2ZpZWxkfWBcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmwsIGxvY2F0aW9uKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtYXBMb2dvID0gKHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcykgPT4ge1xuICBjb25zdCBsb2dvID0gc2VsZWN0RmFsbGJhY2tGaWVsZHMoc291cmNlLCAnbG9nb1VybCcsICdsb2dvJylcbiAgcmV0dXJuIGxvZ28gPyBnZXRBc1VybChgL2dlb25ldHdvcmske2xvZ299YCkgOiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBtYXBPcmdhbml6YXRpb24gPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IE9yZ2FuaXphdGlvbiA9PiB7XG4gIGNvbnN0IHdlYnNpdGUgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICd3ZWJzaXRlJykpXG4gIGNvbnN0IGxvZ29VcmwgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdsb2dvJykpXG4gIHJldHVybiB7XG4gICAgbmFtZTogc2VsZWN0RmFsbGJhY2soXG4gICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uT2JqZWN0JywgbGFuZzMpLFxuICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uJylcbiAgICApLFxuICAgIC4uLihsb2dvVXJsICYmIHsgbG9nb1VybCB9KSxcbiAgICAuLi4od2Vic2l0ZSAmJiB7IHdlYnNpdGUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcENvbnRhY3QgPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IEluZGl2aWR1YWwgPT4ge1xuICBjb25zdCBhZGRyZXNzID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnYWRkcmVzcycpXG4gIGNvbnN0IHBob25lID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncGhvbmUnKVxuICByZXR1cm4ge1xuICAgIGxhc3ROYW1lOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdpbmRpdmlkdWFsJyksXG4gICAgb3JnYW5pemF0aW9uOiBtYXBPcmdhbml6YXRpb24oc291cmNlQ29udGFjdCwgbGFuZzMpLFxuICAgIGVtYWlsOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdlbWFpbCcpLFxuICAgIHJvbGU6IGdldFJvbGVGcm9tUm9sZUNvZGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncm9sZScpKSxcbiAgICAuLi4oYWRkcmVzcyAmJiB7IGFkZHJlc3MgfSksXG4gICAgLi4uKHBob25lICYmIHsgcGhvbmUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcEtleXdvcmRzID0gKHRoZXNhdXJpOiBUaGVzYXVydXNbXSwgbGFuZ3VhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBrZXl3b3JkcyA9IFtdXG4gIGZvciAoY29uc3QgdGhlc2F1cnVzSWQgaW4gdGhlc2F1cmkpIHtcbiAgICBjb25zdCByYXdUaGVzYXVydXMgPSB0aGVzYXVyaVt0aGVzYXVydXNJZF1cbiAgICBsZXQgdGhlc2F1cnVzID0gbnVsbFxuICAgIGlmIChyYXdUaGVzYXVydXMuaWQpIHtcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1NvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgLi4ucmF3VGhlc2F1cnVzIH1cbiAgICAgIGNvbnN0IHVybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ2xpbmsnKSlcbiAgICAgIGNvbnN0IG5hbWUgPSBzZWxlY3RGaWVsZCh0aGVzYXVydXNTb3VyY2UsICd0aXRsZScpXG4gICAgICB0aGVzYXVydXMgPSB7XG4gICAgICAgIGlkOiByYXdUaGVzYXVydXMuaWQsXG4gICAgICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXl3b3JkIG9mIHJhd1RoZXNhdXJ1cy5rZXl3b3Jkcykge1xuICAgICAga2V5d29yZHMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBzZWxlY3RUcmFuc2xhdGVkVmFsdWU8c3RyaW5nPihrZXl3b3JkLCBsYW5ndWFnZSksXG4gICAgICAgIHR5cGU6IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZShyYXdUaGVzYXVydXMudGhlbWUpLFxuICAgICAgICAuLi4odGhlc2F1cnVzICYmIHsgdGhlc2F1cnVzIH0pLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5d29yZHNcbn1cbiJdfQ==
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDaEMsQ0FBQyxDQUFBO1NBQ0g7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluZGl2aWR1YWwsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgZ2V0Um9sZUZyb21Sb2xlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL3JvbGUubWFwcGVyJ1xuaW1wb3J0IHsgVGhlc2F1cnVzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL2tleXdvcmQubWFwcGVyJ1xuXG5leHBvcnQgdHlwZSBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzb3VyY2UgIT09IG51bGwgJiYgZmllbGROYW1lIGluIHNvdXJjZSA/IChzb3VyY2VbZmllbGROYW1lXSBhcyBUKSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhbGxiYWNrRmllbGRzID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIC4uLmZpZWxkTmFtZXM6IHN0cmluZ1tdXG4pOiBUIHwgbnVsbCA9PlxuICBmaWVsZE5hbWVzLnJlZHVjZTxUPihcbiAgICAocHJldiwgY3VycikgPT4gKHByZXYgPT09IG51bGwgPyBzZWxlY3RGaWVsZChzb3VyY2UsIGN1cnIpIDogcHJldiksXG4gICAgbnVsbFxuICApXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFjayA9IDxULCBVPihmaWVsZDogVCwgZmFsbGJhY2s6IFUpOiBUIHwgVSA9PlxuICBmaWVsZCA9PT0gbnVsbCA/IGZhbGxiYWNrIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZSA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzZWxlY3RGYWxsYmFjayhzZWxlY3RGaWVsZChzb3VyY2UsIGxhbmczKSwgc2VsZWN0RmllbGQoc291cmNlLCAnZGVmYXVsdCcpKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0VHJhbnNsYXRlZEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PiBzZWxlY3RUcmFuc2xhdGVkVmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCBmaWVsZE5hbWUpLCBsYW5nMylcblxuZXhwb3J0IGNvbnN0IHRvRGF0ZSA9IChmaWVsZCkgPT4gbmV3IERhdGUoZmllbGQpXG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFZhbHVlID0gKGZpZWxkKSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSA/IGZpZWxkWzBdIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IGdldEFycmF5SXRlbSA9IChmaWVsZCwgaW5kZXgpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpICYmIGZpZWxkW2luZGV4XSAhPT0gdW5kZWZpbmVkID8gZmllbGRbaW5kZXhdIDogbnVsbFxuXG5leHBvcnQgY29uc3QgZ2V0QXNBcnJheSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZCA6IGZpZWxkICE9PSBudWxsID8gW2ZpZWxkXSA6IFtdXG5cbmV4cG9ydCBjb25zdCBnZXRBc1VybCA9IChcbiAgZmllbGQsXG4gIGxvY2F0aW9uOiBzdHJpbmcgPSB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKVxuKSA9PiB7XG4gIC8vIGFuIGVtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCB1cmwsIGV2ZW4gdGhvdWdoIGl0IGNvdWxkIGJlIGNvbnNpZGVyZWQgYW4gZW1wdHkgcGF0aCB0byB0aGUgcm9vdFxuICBpZiAoZmllbGQgPT09ICcnIHx8IGZpZWxkID09PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgdXJsID0gZmllbGRcbiAgaWYgKGZpZWxkLm1hdGNoKC9ed3d3XFwuLykpIHVybCA9IGBodHRwczovLyR7ZmllbGR9YFxuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgbG9jYXRpb24pXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcExvZ28gPSAoc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzKSA9PiB7XG4gIGNvbnN0IGxvZ28gPSBzZWxlY3RGYWxsYmFja0ZpZWxkcyhzb3VyY2UsICdsb2dvVXJsJywgJ2xvZ28nKVxuICByZXR1cm4gbG9nbyA/IGdldEFzVXJsKGAvZ2VvbmV0d29yayR7bG9nb31gKSA6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IG1hcE9yZ2FuaXphdGlvbiA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogT3JnYW5pemF0aW9uID0+IHtcbiAgY29uc3Qgd2Vic2l0ZSA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ3dlYnNpdGUnKSlcbiAgY29uc3QgbG9nb1VybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2xvZ28nKSlcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzZWxlY3RGYWxsYmFjayhcbiAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb25PYmplY3QnLCBsYW5nMyksXG4gICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb24nKVxuICAgICksXG4gICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsIH0pLFxuICAgIC4uLih3ZWJzaXRlICYmIHsgd2Vic2l0ZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwQ29udGFjdCA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogSW5kaXZpZHVhbCA9PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdhZGRyZXNzJylcbiAgY29uc3QgcGhvbmUgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdwaG9uZScpXG4gIHJldHVybiB7XG4gICAgbGFzdE5hbWU6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2luZGl2aWR1YWwnKSxcbiAgICBvcmdhbml6YXRpb246IG1hcE9yZ2FuaXphdGlvbihzb3VyY2VDb250YWN0LCBsYW5nMyksXG4gICAgZW1haWw6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2VtYWlsJyksXG4gICAgcm9sZTogZ2V0Um9sZUZyb21Sb2xlQ29kZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdyb2xlJykpLFxuICAgIC4uLihhZGRyZXNzICYmIHsgYWRkcmVzcyB9KSxcbiAgICAuLi4ocGhvbmUgJiYgeyBwaG9uZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwS2V5d29yZHMgPSAodGhlc2F1cmk6IFRoZXNhdXJ1c1tdLCBsYW5ndWFnZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGtleXdvcmRzID0gW11cbiAgZm9yIChjb25zdCB0aGVzYXVydXNJZCBpbiB0aGVzYXVyaSkge1xuICAgIGNvbnN0IHJhd1RoZXNhdXJ1cyA9IHRoZXNhdXJpW3RoZXNhdXJ1c0lkXVxuICAgIGxldCB0aGVzYXVydXMgPSBudWxsXG4gICAgaWYgKHJhd1RoZXNhdXJ1cy5pZCkge1xuICAgICAgY29uc3QgdGhlc2F1cnVzU291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyAuLi5yYXdUaGVzYXVydXMgfVxuICAgICAgY29uc3QgdXJsID0gZ2V0QXNVcmwoc2VsZWN0RmllbGQodGhlc2F1cnVzU291cmNlLCAnbGluaycpKVxuICAgICAgY29uc3QgbmFtZSA9IHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ3RpdGxlJylcbiAgICAgIHRoZXNhdXJ1cyA9IHtcbiAgICAgICAgaWQ6IHJhd1RoZXNhdXJ1cy5pZCxcbiAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleXdvcmQgb2YgcmF3VGhlc2F1cnVzLmtleXdvcmRzKSB7XG4gICAgICBrZXl3b3Jkcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZTxzdHJpbmc+KGtleXdvcmQsIGxhbmd1YWdlKSxcbiAgICAgICAgdHlwZTogZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlKHJhd1RoZXNhdXJ1cy50aGVtZSksXG4gICAgICAgIC4uLihrZXl3b3JkLmxpbmsgJiYgeyBrZXk6IGtleXdvcmQubGluayB9KSxcbiAgICAgICAgLi4uKHRoZXNhdXJ1cyAmJiB7IHRoZXNhdXJ1cyB9KSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXdvcmRzXG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvdHlwZXMvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcblxudHlwZSBMYW5nQ29kZSA9IHN0cmluZ1xudHlwZSBNdWx0aWxpbmd1YWxGaWVsZCA9IHtcbiAgW0sgaW4gYGxhbmcke0xhbmdDb2RlfWBdOiBzdHJpbmdcbn0gJiB7XG4gIGRlZmF1bHQ6IHN0cmluZ1xuICBsaW5rPzogc3RyaW5nXG59XG5cbnR5cGUgQm9vbGVhblN0cmluZyA9ICd0cnVlJyB8ICdmYWxzZSdcbmludGVyZmFjZSBDb2RlTGlzdEVudHJ5IGV4dGVuZHMgTXVsdGlsaW5ndWFsRmllbGQge1xuICBrZXk6IHN0cmluZ1xuICBsaW5rPzogc3RyaW5nXG59XG5cbnR5cGUgTWF5YmVBcnJheTxUPiA9IFQgfCBUW11cblxuaW50ZXJmYWNlIENvbnRhY3Qge1xuICBvcmdhbmlzYXRpb246IHN0cmluZ1xuICByb2xlOiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICB3ZWJzaXRlOiBzdHJpbmdcbiAgbG9nbzogc3RyaW5nXG4gIGluZGl2aWR1YWw6IHN0cmluZ1xuICBwb3NpdGlvbjogc3RyaW5nXG4gIHBob25lOiBzdHJpbmdcbiAgYWRkcmVzczogc3RyaW5nXG59XG5cbmludGVyZmFjZSBPdmVydmlldyB7XG4gIGRhdGE/OiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG4gIHRleHQ/OiBNdWx0aWxpbmd1YWxGaWVsZFxufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VEYXRlIHtcbiAgdHlwZTogc3RyaW5nXG4gIGRhdGU6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgUmVzb3VyY2VUZW1wb3JhbERhdGVSYW5nZSB7XG4gIGd0ZT86IHN0cmluZ1xuICBsdGU/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFJlc291cmNlSWRlbnRpZmllciB7XG4gIGNvZGU6IHN0cmluZ1xuICBjb2RlU3BhY2U6IHN0cmluZ1xuICBsaW5rOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFNwZWNpZmljYXRpb25Db25mb3JtYW5jZSB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgZGF0ZTogc3RyaW5nXG4gIGV4cGxhbmF0aW9uOiBzdHJpbmdcbiAgcGFzczogQm9vbGVhblN0cmluZ1xufVxuXG50eXBlIFRoZXNhdXJ1c05hbWUgPSBzdHJpbmdcbmV4cG9ydCBpbnRlcmZhY2UgVGhlc2F1cnVzIHtcbiAgaWQ/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgdGhlbWU/OiBzdHJpbmdcbiAgbGluaz86IHN0cmluZ1xuICBrZXl3b3JkczogTXVsdGlsaW5ndWFsRmllbGRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmsge1xuICBwcm90b2NvbD86IHN0cmluZ1xuICBtaW1lVHlwZT86IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBmdW5jdGlvbj86IHN0cmluZ1xuICBhcHBsaWNhdGlvblByb2ZpbGU/OiBzdHJpbmdcbiAgZ3JvdXA/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgTWV0YWRhdGFPYmplY3QgPSBQYXJ0aWFsPHtcbiAgTURfQ29uc3RyYWludHNVc2VMaW1pdGF0aW9uT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIE1EX0xlZ2FsQ29uc3RyYWludHNPdGhlckNvbnN0cmFpbnRzT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIE9yZzogc3RyaW5nXG4gIE9yZ0ZvclJlc291cmNlOiBzdHJpbmdbXVxuICBhbGxLZXl3b3JkczogUmVjb3JkPFRoZXNhdXJ1c05hbWUsIFRoZXNhdXJ1cz5cbiAgY2hhbmdlRGF0ZTogc3RyaW5nXG4gIGNsX2NoYXJhY3RlclNldDogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX2Z1bmN0aW9uOiBDb2RlTGlzdEVudHJ5W11cbiAgY2xfaGllcmFyY2h5TGV2ZWw6IENvZGVMaXN0RW50cnlbXVxuICBjbF9yZXNvdXJjZUNoYXJhY3RlclNldDogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX3N0YXR1czogQ29kZUxpc3RFbnRyeVtdXG4gIGNsX3RvcGljOiBDb2RlTGlzdEVudHJ5W11cbiAgY2xfdHlwZTogQ29kZUxpc3RFbnRyeVtdXG4gIGNvbmZvcm1Ub19UaXRyZWR1bmVzcGNpZmljYXRpb25sYXF1ZWxsZWxhc3JpZWRlZG9ubmVzZXN0Y29uZm9ybWVvdW5vbjogc3RyaW5nXG4gIGNvbnRhY3Q6IENvbnRhY3RbXVxuICBjb250YWN0Rm9yUmVzb3VyY2U6IENvbnRhY3RbXVxuICBjcmVhdGVEYXRlOiBzdHJpbmdcbiAgY3JlYXRpb25EYXRlRm9yUmVzb3VyY2U6IHN0cmluZ1tdXG4gIGNyZWF0aW9uTW9udGhGb3JSZXNvdXJjZTogc3RyaW5nXG4gIGNyZWF0aW9uWWVhckZvclJlc291cmNlOiBzdHJpbmdcbiAgZGF0ZVN0YW1wOiBzdHJpbmdcbiAgZGlzcGxheU9yZGVyOiBzdHJpbmdcbiAgZG9jVHlwZTogc3RyaW5nXG4gIGRvY3VtZW50OiBzdHJpbmdcbiAgZG9jdW1lbnRTdGFuZGFyZDogc3RyaW5nXG4gIGRyYWZ0OiBzdHJpbmdcbiAgZXh0ZW50RGVzY3JpcHRpb25PYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkW11cbiAgZXh0cmE6IHN0cmluZ1xuICBmZWF0dXJlT2ZSZWNvcmQ6IHN0cmluZ1xuICBmZWVkYmFja0NvdW50OiBzdHJpbmdcbiAgZ2VvbTogR2VvbWV0cnlcbiAgZ3JvdXBPd25lcjogc3RyaW5nXG4gIGdyb3VwUHVibGlzaGVkOiBzdHJpbmdbXVxuICBncm91cFB1Ymxpc2hlZElkOiBzdHJpbmdcbiAgaGFydmVzdGVyVXVpZDogc3RyaW5nXG4gIGhhc0luc3BpcmVUaGVtZTogQm9vbGVhblN0cmluZ1xuICBoYXNPdmVydmlldzogQm9vbGVhblN0cmluZ1xuICBoYXN4bGlua3M6IEJvb2xlYW5TdHJpbmdcbiAgaWQ6IHN0cmluZ1xuICBpbmRleGluZ0RhdGU6IHN0cmluZ1xuICBpbmRleGluZ0Vycm9yOiBzdHJpbmdbXVxuICBpbmRleGluZ0Vycm9yTXNnOiBzdHJpbmdbXVxuICBpbnNwaXJlQW5uZXg6IHN0cmluZ1tdXG4gIGluc3BpcmVBbm5leEZvckZpcnN0VGhlbWU6IHN0cmluZ1xuICBpbnNwaXJlVGhlbWU6IHN0cmluZ1tdXG4gIGluc3BpcmVUaGVtZUZpcnN0OiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lRmlyc3Rfc3luOiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lTnVtYmVyOiBzdHJpbmdcbiAgaW5zcGlyZVRoZW1lVXJpOiBzdHJpbmdbXVxuICBpbnNwaXJlVGhlbWVfc3luOiBzdHJpbmdbXVxuICBpc0hhcnZlc3RlZDogc3RyaW5nXG4gIGlzT3BlbkRhdGE6IHN0cmluZ1xuICBpc1B1Ymxpc2hlZFRvQWxsOiBzdHJpbmdcbiAgaXNUZW1wbGF0ZTogc3RyaW5nXG4gIGtleXdvcmRUeXBlOiBSZWNvcmQ8c3RyaW5nLCBNdWx0aWxpbmd1YWxGaWVsZFtdPlxuICBsaWNlbnNlT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIGxpbmVhZ2VPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIGxpbms6IExpbmtbXVxuICBsaW5rUHJvdG9jb2w6IHN0cmluZ1tdXG4gIGxpbmtVcmw6IHN0cmluZ1tdXG4gIGxpbmtVcmxQcm90b2NvbE9HQ1dGUzogc3RyaW5nW11cbiAgbGlua1VybFByb3RvY29sT0dDV01TOiBzdHJpbmdbXVxuICBsaW5rVXJsUHJvdG9jb2xXV1dMSU5LMTBodHRwbGluazogTWF5YmVBcnJheTxzdHJpbmc+XG4gIGxpbmtVcmxQcm90b2NvbFdXV0xJTksxMGh0dHByZWxhdGVkOiBzdHJpbmdcbiAgbG9jYXRpb246IHN0cmluZ1xuICBsb2dvOiBzdHJpbmdcbiAgbWFpbkxhbmd1YWdlOiBzdHJpbmdcbiAgbWV0YWRhdGFJZGVudGlmaWVyOiBzdHJpbmdcbiAgb3ZlcnZpZXc6IE92ZXJ2aWV3W11cbiAgb3duZXI6IHN0cmluZ1xuICBwb2ludE9mQ29udGFjdE9yZzogc3RyaW5nXG4gIHBvaW50T2ZDb250YWN0T3JnRm9yUmVzb3VyY2U6IHN0cmluZ1xuICBwb3B1bGFyaXR5OiBudW1iZXJcbiAgcHVibGljYXRpb25EYXRlRm9yUmVzb3VyY2U6IHN0cmluZ1xuICByYXRpbmc6IHN0cmluZ1xuICByZWNvcmQ6IHN0cmluZ1xuICByZWNvcmRHcm91cDogc3RyaW5nXG4gIHJlY29yZE93bmVyOiBzdHJpbmdcbiAgcmVzb2x1dGlvbkRpc3RhbmNlOiBzdHJpbmdbXVxuICByZXNvbHV0aW9uU2NhbGVEZW5vbWluYXRvcjogc3RyaW5nW11cbiAgcmVzb3VyY2VBYnN0cmFjdE9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgcmVzb3VyY2VEYXRlOiBSZXNvdXJjZURhdGVbXVxuICByZXNvdXJjZUVkaXRpb246IHN0cmluZ1xuICByZXNvdXJjZUlkZW50aWZpZXI6IFJlc291cmNlSWRlbnRpZmllcltdXG4gIHJlc291cmNlTGFuZ3VhZ2U6IHN0cmluZ1tdXG4gIHJlc291cmNlVGVtcG9yYWxEYXRlUmFuZ2U6IFJlc291cmNlVGVtcG9yYWxEYXRlUmFuZ2VbXVxuICByZXNvdXJjZVRlbXBvcmFsRXh0ZW50RGF0ZVJhbmdlOiBSZXNvdXJjZVRlbXBvcmFsRGF0ZVJhbmdlW11cbiAgcmVzb3VyY2VUaXRsZU9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmdbXVxuICByZXNvdXJjZVR5cGVOYW1lT2JqZWN0OiBNdWx0aWxpbmd1YWxGaWVsZFxuICByZXZpc2lvbkRhdGVGb3JSZXNvdXJjZTogc3RyaW5nW11cbiAgcmV2aXNpb25Nb250aEZvclJlc291cmNlOiBzdHJpbmdcbiAgcmV2aXNpb25ZZWFyRm9yUmVzb3VyY2U6IHN0cmluZ1xuICBzb3VyY2VDYXRhbG9ndWU6IHN0cmluZ1xuICBzcGVjaWZpY2F0aW9uQ29uZm9ybWFuY2U6IE1heWJlQXJyYXk8U3BlY2lmaWNhdGlvbkNvbmZvcm1hbmNlPlxuICBzdGFuZGFyZE5hbWVPYmplY3Q6IE11bHRpbGluZ3VhbEZpZWxkXG4gIHN0YW5kYXJkVmVyc2lvbk9iamVjdDogTXVsdGlsaW5ndWFsRmllbGRcbiAgdGFnOiBNdWx0aWxpbmd1YWxGaWVsZFtdXG4gIHRhZ051bWJlcjogc3RyaW5nXG4gIHVzZXJTYXZlZENvdW50OiBzdHJpbmdcbiAgdXNlcmluZm86IHN0cmluZ1xuICB1dWlkOiBzdHJpbmdcbiAgdmFsaWQ6IHN0cmluZ1xuICB4bGluazogc3RyaW5nW11cbn0+XG5cbmV4cG9ydCBpbnRlcmZhY2UgR240UmVjb3JkIHtcbiAgX2luZGV4OiBzdHJpbmdcbiAgX3R5cGU6IHN0cmluZ1xuICBfaWQ6IHN0cmluZ1xuICBfc2NvcmU6IG51bWJlclxuICBfc291cmNlOiBNZXRhZGF0YU9iamVjdFxuICBlZGl0PzogYm9vbGVhblxuICBvd25lcj86IGJvb2xlYW5cbiAgaXNQdWJsaXNoZWRUb0FsbD86IGJvb2xlYW5cbiAgdmlldz86IGJvb2xlYW5cbiAgbm90aWZ5PzogYm9vbGVhblxuICBkb3dubG9hZD86IGJvb2xlYW5cbiAgZHluYW1pYz86IGJvb2xlYW5cbiAgZmVhdHVyZWQ/OiBib29sZWFuXG4gIGd1ZXN0ZG93bmxvYWQ/OiBib29sZWFuXG4gIHNlbGVjdGVkPzogYm9vbGVhblxufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseConverter } from '../base.converter';
|
|
2
2
|
import { isEqual } from '../convert-utils';
|
|
3
3
|
import { createDocument, createElement, getRootElement, parseXmlString, xmlToString, } from '../xml-utils';
|
|
4
|
-
import { readAbstract, readContacts, readContactsForResource, readDistributions, readIsoTopics, readKeywords, readKind, readLegalConstraints, readLicenses, readLineage, readOnlineResources, readOtherConstraints, readOverviews, readOwnerOrganization, readRecordUpdated, readResourceCreated, readResourcePublished, readResourceUpdated, readSecurityConstraints, readSpatialRepresentation, readStatus, readTemporalExtents, readTitle, readUniqueIdentifier, readUpdateFrequency, } from './read-parts';
|
|
5
|
-
import { writeAbstract, writeContacts, writeContactsForResource, writeDistributions, writeGraphicOverviews, writeKeywords, writeKind, writeLegalConstraints, writeLicenses, writeLineage, writeOnlineResources, writeOtherConstraints, writeOwnerOrganization, writeRecordUpdated, writeResourceCreated, writeResourcePublished, writeResourceUpdated, writeSecurityConstraints, writeSpatialRepresentation, writeStatus, writeTemporalExtents, writeTitle, writeTopics, writeUniqueIdentifier, writeUpdateFrequency, } from './write-parts';
|
|
4
|
+
import { readAbstract, readContacts, readContactsForResource, readDistributions, readIsoTopics, readKeywords, readKind, readLegalConstraints, readLicenses, readLineage, readOnlineResources, readOtherConstraints, readOverviews, readOwnerOrganization, readRecordUpdated, readResourceCreated, readResourcePublished, readResourceUpdated, readSecurityConstraints, readSpatialExtents, readSpatialRepresentation, readStatus, readTemporalExtents, readTitle, readUniqueIdentifier, readUpdateFrequency, } from './read-parts';
|
|
5
|
+
import { writeAbstract, writeContacts, writeContactsForResource, writeDistributions, writeGraphicOverviews, writeKeywords, writeKind, writeLegalConstraints, writeLicenses, writeLineage, writeOnlineResources, writeOtherConstraints, writeOwnerOrganization, writeRecordUpdated, writeResourceCreated, writeResourcePublished, writeResourceUpdated, writeSecurityConstraints, writeSpatialExtents, writeSpatialRepresentation, writeStatus, writeTemporalExtents, writeTitle, writeTopics, writeUniqueIdentifier, writeUpdateFrequency, } from './write-parts';
|
|
6
6
|
export class Iso19139Converter extends BaseConverter {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
@@ -34,8 +34,8 @@ export class Iso19139Converter extends BaseConverter {
|
|
|
34
34
|
distributions: readDistributions,
|
|
35
35
|
onlineResources: readOnlineResources,
|
|
36
36
|
temporalExtents: readTemporalExtents,
|
|
37
|
+
spatialExtents: readSpatialExtents,
|
|
37
38
|
// TODO
|
|
38
|
-
spatialExtents: () => [],
|
|
39
39
|
extras: () => undefined,
|
|
40
40
|
landingPage: () => undefined,
|
|
41
41
|
languages: () => [],
|
|
@@ -68,8 +68,8 @@ export class Iso19139Converter extends BaseConverter {
|
|
|
68
68
|
distributions: writeDistributions,
|
|
69
69
|
onlineResources: writeOnlineResources,
|
|
70
70
|
temporalExtents: writeTemporalExtents,
|
|
71
|
+
spatialExtents: () => writeSpatialExtents,
|
|
71
72
|
// TODO
|
|
72
|
-
spatialExtents: () => undefined,
|
|
73
73
|
extras: () => undefined,
|
|
74
74
|
landingPage: () => undefined,
|
|
75
75
|
languages: () => undefined,
|
|
@@ -241,4 +241,4 @@ export class Iso19139Converter extends BaseConverter {
|
|
|
241
241
|
return xmlToString(newDocument);
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvMTkxMzkuY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYy9saWIvaXNvMTkxMzkvaXNvMTkxMzkuY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixNQUFNLGNBQWMsQ0FBQTtBQUNyQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsU0FBUyxFQUNULHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQix3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QyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDakQsWUFBWSxDQUFDLGVBQWUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDL0MsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1NBQ25FO2FBQU07WUFDTCxZQUFZLENBQUMsaUJBQWlCLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDbEQ7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFbkMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIENhdGFsb2dSZWNvcmRLZXlzLFxuICBEYXRhc2V0UmVjb3JkLFxuICBTZXJ2aWNlUmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBYbWxFbGVtZW50IH0gZnJvbSAnQHJncm92ZS9wYXJzZS14bWwnXG5pbXBvcnQgeyBCYXNlQ29udmVydGVyIH0gZnJvbSAnLi4vYmFzZS5jb252ZXJ0ZXInXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnLi4vY29udmVydC11dGlscydcbmltcG9ydCB7XG4gIGNyZWF0ZURvY3VtZW50LFxuICBjcmVhdGVFbGVtZW50LFxuICBnZXRSb290RWxlbWVudCxcbiAgcGFyc2VYbWxTdHJpbmcsXG4gIHhtbFRvU3RyaW5nLFxufSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQge1xuICByZWFkQWJzdHJhY3QsXG4gIHJlYWRDb250YWN0cyxcbiAgcmVhZENvbnRhY3RzRm9yUmVzb3VyY2UsXG4gIHJlYWREaXN0cmlidXRpb25zLFxuICByZWFkSXNvVG9waWNzLFxuICByZWFkS2V5d29yZHMsXG4gIHJlYWRLaW5kLFxuICByZWFkTGVnYWxDb25zdHJhaW50cyxcbiAgcmVhZExpY2Vuc2VzLFxuICByZWFkTGluZWFnZSxcbiAgcmVhZE9ubGluZVJlc291cmNlcyxcbiAgcmVhZE90aGVyQ29uc3RyYWludHMsXG4gIHJlYWRPdmVydmlld3MsXG4gIHJlYWRPd25lck9yZ2FuaXphdGlvbixcbiAgcmVhZFJlY29yZFVwZGF0ZWQsXG4gIHJlYWRSZXNvdXJjZUNyZWF0ZWQsXG4gIHJlYWRSZXNvdXJjZVB1Ymxpc2hlZCxcbiAgcmVhZFJlc291cmNlVXBkYXRlZCxcbiAgcmVhZFNlY3VyaXR5Q29uc3RyYWludHMsXG4gIHJlYWRTcGF0aWFsUmVwcmVzZW50YXRpb24sXG4gIHJlYWRTdGF0dXMsXG4gIHJlYWRUZW1wb3JhbEV4dGVudHMsXG4gIHJlYWRUaXRsZSxcbiAgcmVhZFVuaXF1ZUlkZW50aWZpZXIsXG4gIHJlYWRVcGRhdGVGcmVxdWVuY3ksXG59IGZyb20gJy4vcmVhZC1wYXJ0cydcbmltcG9ydCB7XG4gIHdyaXRlQWJzdHJhY3QsXG4gIHdyaXRlQ29udGFjdHMsXG4gIHdyaXRlQ29udGFjdHNGb3JSZXNvdXJjZSxcbiAgd3JpdGVEaXN0cmlidXRpb25zLFxuICB3cml0ZUdyYXBoaWNPdmVydmlld3MsXG4gIHdyaXRlS2V5d29yZHMsXG4gIHdyaXRlS2luZCxcbiAgd3JpdGVMZWdhbENvbnN0cmFpbnRzLFxuICB3cml0ZUxpY2Vuc2VzLFxuICB3cml0ZUxpbmVhZ2UsXG4gIHdyaXRlT25saW5lUmVzb3VyY2VzLFxuICB3cml0ZU90aGVyQ29uc3RyYWludHMsXG4gIHdyaXRlT3duZXJPcmdhbml6YXRpb24sXG4gIHdyaXRlUmVjb3JkVXBkYXRlZCxcbiAgd3JpdGVSZXNvdXJjZUNyZWF0ZWQsXG4gIHdyaXRlUmVzb3VyY2VQdWJsaXNoZWQsXG4gIHdyaXRlUmVzb3VyY2VVcGRhdGVkLFxuICB3cml0ZVNlY3VyaXR5Q29uc3RyYWludHMsXG4gIHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uLFxuICB3cml0ZVN0YXR1cyxcbiAgd3JpdGVUZW1wb3JhbEV4dGVudHMsXG4gIHdyaXRlVGl0bGUsXG4gIHdyaXRlVG9waWNzLFxuICB3cml0ZVVuaXF1ZUlkZW50aWZpZXIsXG4gIHdyaXRlVXBkYXRlRnJlcXVlbmN5LFxufSBmcm9tICcuL3dyaXRlLXBhcnRzJ1xuXG5leHBvcnQgY2xhc3MgSXNvMTkxMzlDb252ZXJ0ZXIgZXh0ZW5kcyBCYXNlQ29udmVydGVyPHN0cmluZz4ge1xuICBwcm90ZWN0ZWQgcmVhZGVyczogUmVjb3JkPFxuICAgIENhdGFsb2dSZWNvcmRLZXlzLFxuICAgIChyb290RWw6IFhtbEVsZW1lbnQpID0+IHVua25vd25cbiAgPiA9IHtcbiAgICB1bmlxdWVJZGVudGlmaWVyOiByZWFkVW5pcXVlSWRlbnRpZmllcixcbiAgICBraW5kOiByZWFkS2luZCxcbiAgICBvd25lck9yZ2FuaXphdGlvbjogcmVhZE93bmVyT3JnYW5pemF0aW9uLFxuICAgIHJlY29yZFVwZGF0ZWQ6IHJlYWRSZWNvcmRVcGRhdGVkLFxuICAgIHJlY29yZENyZWF0ZWQ6ICgpID0+IHVuZGVmaW5lZCwgLy8gbm90IHN1cHBvcnRlZCBpbiBJU08xOTEzOVxuICAgIHJlY29yZFB1Ymxpc2hlZDogKCkgPT4gdW5kZWZpbmVkLCAvLyBub3Qgc3VwcG9ydGVkIGluIElTTzE5MTM5XG4gICAgcmVzb3VyY2VVcGRhdGVkOiByZWFkUmVzb3VyY2VVcGRhdGVkLFxuICAgIHJlc291cmNlQ3JlYXRlZDogcmVhZFJlc291cmNlQ3JlYXRlZCxcbiAgICByZXNvdXJjZVB1Ymxpc2hlZDogcmVhZFJlc291cmNlUHVibGlzaGVkLFxuICAgIHRpdGxlOiByZWFkVGl0bGUsXG4gICAgYWJzdHJhY3Q6IHJlYWRBYnN0cmFjdCxcbiAgICBjb250YWN0czogcmVhZENvbnRhY3RzLFxuICAgIGNvbnRhY3RzRm9yUmVzb3VyY2U6IHJlYWRDb250YWN0c0ZvclJlc291cmNlLFxuICAgIGtleXdvcmRzOiByZWFkS2V5d29yZHMsXG4gICAgdG9waWNzOiByZWFkSXNvVG9waWNzLFxuICAgIGxpY2Vuc2VzOiByZWFkTGljZW5zZXMsXG4gICAgbGVnYWxDb25zdHJhaW50czogcmVhZExlZ2FsQ29uc3RyYWludHMsXG4gICAgc2VjdXJpdHlDb25zdHJhaW50czogcmVhZFNlY3VyaXR5Q29uc3RyYWludHMsXG4gICAgb3RoZXJDb25zdHJhaW50czogcmVhZE90aGVyQ29uc3RyYWludHMsXG4gICAgc3RhdHVzOiByZWFkU3RhdHVzLFxuICAgIHVwZGF0ZUZyZXF1ZW5jeTogcmVhZFVwZGF0ZUZyZXF1ZW5jeSxcbiAgICBzcGF0aWFsUmVwcmVzZW50YXRpb246IHJlYWRTcGF0aWFsUmVwcmVzZW50YXRpb24sXG4gICAgb3ZlcnZpZXdzOiByZWFkT3ZlcnZpZXdzLFxuICAgIGxpbmVhZ2U6IHJlYWRMaW5lYWdlLFxuICAgIGRpc3RyaWJ1dGlvbnM6IHJlYWREaXN0cmlidXRpb25zLFxuICAgIG9ubGluZVJlc291cmNlczogcmVhZE9ubGluZVJlc291cmNlcyxcbiAgICB0ZW1wb3JhbEV4dGVudHM6IHJlYWRUZW1wb3JhbEV4dGVudHMsXG4gICAgLy8gVE9ET1xuICAgIHNwYXRpYWxFeHRlbnRzOiAoKSA9PiBbXSxcbiAgICBleHRyYXM6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBsYW5kaW5nUGFnZTogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGxhbmd1YWdlczogKCkgPT4gW10sXG4gIH1cblxuICBwcm90ZWN0ZWQgd3JpdGVyczogUmVjb3JkPFxuICAgIENhdGFsb2dSZWNvcmRLZXlzLFxuICAgIChyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkgPT4gdm9pZFxuICA+ID0ge1xuICAgIHVuaXF1ZUlkZW50aWZpZXI6IHdyaXRlVW5pcXVlSWRlbnRpZmllcixcbiAgICBraW5kOiB3cml0ZUtpbmQsXG4gICAgb3duZXJPcmdhbml6YXRpb246IHdyaXRlT3duZXJPcmdhbml6YXRpb24sXG4gICAgcmVjb3JkVXBkYXRlZDogd3JpdGVSZWNvcmRVcGRhdGVkLFxuICAgIHJlY29yZENyZWF0ZWQ6ICgpID0+IHVuZGVmaW5lZCwgLy8gbm90IHN1cHBvcnRlZCBpbiBJU08xOTEzOVxuICAgIHJlY29yZFB1Ymxpc2hlZDogKCkgPT4gdW5kZWZpbmVkLCAvLyBub3Qgc3VwcG9ydGVkIGluIElTTzE5MTM5XG4gICAgcmVzb3VyY2VVcGRhdGVkOiB3cml0ZVJlc291cmNlVXBkYXRlZCxcbiAgICByZXNvdXJjZUNyZWF0ZWQ6IHdyaXRlUmVzb3VyY2VDcmVhdGVkLFxuICAgIHJlc291cmNlUHVibGlzaGVkOiB3cml0ZVJlc291cmNlUHVibGlzaGVkLFxuICAgIHRpdGxlOiB3cml0ZVRpdGxlLFxuICAgIGFic3RyYWN0OiB3cml0ZUFic3RyYWN0LFxuICAgIGNvbnRhY3RzOiB3cml0ZUNvbnRhY3RzLFxuICAgIGNvbnRhY3RzRm9yUmVzb3VyY2U6IHdyaXRlQ29udGFjdHNGb3JSZXNvdXJjZSxcbiAgICBrZXl3b3Jkczogd3JpdGVLZXl3b3JkcyxcbiAgICB0b3BpY3M6IHdyaXRlVG9waWNzLFxuICAgIGxpY2Vuc2VzOiB3cml0ZUxpY2Vuc2VzLFxuICAgIGxlZ2FsQ29uc3RyYWludHM6IHdyaXRlTGVnYWxDb25zdHJhaW50cyxcbiAgICBzZWN1cml0eUNvbnN0cmFpbnRzOiB3cml0ZVNlY3VyaXR5Q29uc3RyYWludHMsXG4gICAgb3RoZXJDb25zdHJhaW50czogd3JpdGVPdGhlckNvbnN0cmFpbnRzLFxuICAgIHN0YXR1czogd3JpdGVTdGF0dXMsXG4gICAgdXBkYXRlRnJlcXVlbmN5OiB3cml0ZVVwZGF0ZUZyZXF1ZW5jeSxcbiAgICBzcGF0aWFsUmVwcmVzZW50YXRpb246IHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uLFxuICAgIG92ZXJ2aWV3czogd3JpdGVHcmFwaGljT3ZlcnZpZXdzLFxuICAgIGxpbmVhZ2U6IHdyaXRlTGluZWFnZSxcbiAgICBkaXN0cmlidXRpb25zOiB3cml0ZURpc3RyaWJ1dGlvbnMsXG4gICAgb25saW5lUmVzb3VyY2VzOiB3cml0ZU9ubGluZVJlc291cmNlcyxcbiAgICB0ZW1wb3JhbEV4dGVudHM6IHdyaXRlVGVtcG9yYWxFeHRlbnRzLFxuICAgIC8vIFRPRE9cbiAgICBzcGF0aWFsRXh0ZW50czogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGV4dHJhczogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGxhbmRpbmdQYWdlOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgbGFuZ3VhZ2VzOiAoKSA9PiB1bmRlZmluZWQsXG4gIH1cblxuICBwcm90ZWN0ZWQgYmVmb3JlRG9jdW1lbnRDcmVhdGlvbihyb290RWxlbWVudDogWG1sRWxlbWVudCkge1xuICAgIC8vIHRvIG92ZXJyaWRlXG4gIH1cblxuICBhc3luYyByZWFkUmVjb3JkKGRvY3VtZW50OiBzdHJpbmcpOiBQcm9taXNlPENhdGFsb2dSZWNvcmQ+IHtcbiAgICBjb25zdCBkb2MgPSBwYXJzZVhtbFN0cmluZyhkb2N1bWVudClcbiAgICBjb25zdCByb290RWwgPSBnZXRSb290RWxlbWVudChkb2MpXG5cbiAgICBjb25zdCB1bmlxdWVJZGVudGlmaWVyID0gdGhpcy5yZWFkZXJzWyd1bmlxdWVJZGVudGlmaWVyJ10ocm9vdEVsKVxuICAgIGNvbnN0IGtpbmQgPSB0aGlzLnJlYWRlcnNbJ2tpbmQnXShyb290RWwpXG4gICAgY29uc3Qgb3duZXJPcmdhbml6YXRpb24gPSB0aGlzLnJlYWRlcnNbJ293bmVyT3JnYW5pemF0aW9uJ10ocm9vdEVsKVxuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5yZWFkZXJzWyd0aXRsZSddKHJvb3RFbClcbiAgICBjb25zdCBhYnN0cmFjdCA9IHRoaXMucmVhZGVyc1snYWJzdHJhY3QnXShyb290RWwpXG4gICAgY29uc3QgY29udGFjdHMgPSB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzJ10ocm9vdEVsKVxuICAgIGNvbnN0IGNvbnRhY3RzRm9yUmVzb3VyY2UgPSB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzRm9yUmVzb3VyY2UnXShyb290RWwpXG4gICAgY29uc3QgcmVjb3JkVXBkYXRlZCA9IHRoaXMucmVhZGVyc1sncmVjb3JkVXBkYXRlZCddKHJvb3RFbClcbiAgICBjb25zdCByZWNvcmRDcmVhdGVkID0gdGhpcy5yZWFkZXJzWydyZWNvcmRDcmVhdGVkJ10ocm9vdEVsKVxuICAgIGNvbnN0IHJlY29yZFB1Ymxpc2hlZCA9IHRoaXMucmVhZGVyc1sncmVjb3JkUHVibGlzaGVkJ10ocm9vdEVsKVxuICAgIGNvbnN0IHJlc291cmNlQ3JlYXRlZCA9IHRoaXMucmVhZGVyc1sncmVzb3VyY2VDcmVhdGVkJ10ocm9vdEVsKVxuICAgIGNvbnN0IHJlc291cmNlVXBkYXRlZCA9IHRoaXMucmVhZGVyc1sncmVzb3VyY2VVcGRhdGVkJ10ocm9vdEVsKVxuICAgIGNvbnN0IHJlc291cmNlUHVibGlzaGVkID0gdGhpcy5yZWFkZXJzWydyZXNvdXJjZVB1Ymxpc2hlZCddKHJvb3RFbClcbiAgICBjb25zdCBrZXl3b3JkcyA9IHRoaXMucmVhZGVyc1sna2V5d29yZHMnXShyb290RWwpXG4gICAgY29uc3QgdG9waWNzID0gdGhpcy5yZWFkZXJzWyd0b3BpY3MnXShyb290RWwpXG4gICAgY29uc3QgbGVnYWxDb25zdHJhaW50cyA9IHRoaXMucmVhZGVyc1snbGVnYWxDb25zdHJhaW50cyddKHJvb3RFbClcbiAgICBjb25zdCBvdGhlckNvbnN0cmFpbnRzID0gdGhpcy5yZWFkZXJzWydvdGhlckNvbnN0cmFpbnRzJ10ocm9vdEVsKVxuICAgIGNvbnN0IHNlY3VyaXR5Q29uc3RyYWludHMgPSB0aGlzLnJlYWRlcnNbJ3NlY3VyaXR5Q29uc3RyYWludHMnXShyb290RWwpXG4gICAgY29uc3QgbGljZW5zZXMgPSB0aGlzLnJlYWRlcnNbJ2xpY2Vuc2VzJ10ocm9vdEVsKVxuICAgIGNvbnN0IG92ZXJ2aWV3cyA9IHRoaXMucmVhZGVyc1snb3ZlcnZpZXdzJ10ocm9vdEVsKVxuICAgIGNvbnN0IGxhbmRpbmdQYWdlID0gdGhpcy5yZWFkZXJzWydsYW5kaW5nUGFnZSddKHJvb3RFbClcblxuICAgIGlmIChraW5kID09PSAnZGF0YXNldCcpIHtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMucmVhZGVyc1snc3RhdHVzJ10ocm9vdEVsKVxuICAgICAgY29uc3Qgc3BhdGlhbFJlcHJlc2VudGF0aW9uID1cbiAgICAgICAgdGhpcy5yZWFkZXJzWydzcGF0aWFsUmVwcmVzZW50YXRpb24nXShyb290RWwpXG4gICAgICBjb25zdCBzcGF0aWFsRXh0ZW50cyA9IHRoaXMucmVhZGVyc1snc3BhdGlhbEV4dGVudHMnXShyb290RWwpXG4gICAgICBjb25zdCB0ZW1wb3JhbEV4dGVudHMgPSB0aGlzLnJlYWRlcnNbJ3RlbXBvcmFsRXh0ZW50cyddKHJvb3RFbClcbiAgICAgIGNvbnN0IGxpbmVhZ2UgPSB0aGlzLnJlYWRlcnNbJ2xpbmVhZ2UnXShyb290RWwpXG4gICAgICBjb25zdCBkaXN0cmlidXRpb25zID0gdGhpcy5yZWFkZXJzWydkaXN0cmlidXRpb25zJ10ocm9vdEVsKVxuICAgICAgY29uc3QgdXBkYXRlRnJlcXVlbmN5ID0gdGhpcy5yZWFkZXJzWyd1cGRhdGVGcmVxdWVuY3knXShyb290RWwpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuaXF1ZUlkZW50aWZpZXIsXG4gICAgICAgIGtpbmQsXG4gICAgICAgIGxhbmd1YWdlczogW10sXG4gICAgICAgIC4uLihyZWNvcmRDcmVhdGVkICYmIHsgcmVjb3JkQ3JlYXRlZCB9KSxcbiAgICAgICAgLi4uKHJlY29yZFB1Ymxpc2hlZCAmJiB7IHJlY29yZFB1Ymxpc2hlZCB9KSxcbiAgICAgICAgcmVjb3JkVXBkYXRlZCxcbiAgICAgICAgLi4uKHJlc291cmNlQ3JlYXRlZCAmJiB7IHJlc291cmNlQ3JlYXRlZCB9KSxcbiAgICAgICAgLi4uKHJlc291cmNlVXBkYXRlZCAmJiB7IHJlc291cmNlVXBkYXRlZCB9KSxcbiAgICAgICAgLi4uKHJlc291cmNlUHVibGlzaGVkICYmIHsgcmVzb3VyY2VQdWJsaXNoZWQgfSksXG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGFic3RyYWN0LFxuICAgICAgICBvd25lck9yZ2FuaXphdGlvbixcbiAgICAgICAgY29udGFjdHMsXG4gICAgICAgIGNvbnRhY3RzRm9yUmVzb3VyY2UsXG4gICAgICAgIGtleXdvcmRzLFxuICAgICAgICB0b3BpY3MsXG4gICAgICAgIGxpY2Vuc2VzLFxuICAgICAgICBsZWdhbENvbnN0cmFpbnRzLFxuICAgICAgICBzZWN1cml0eUNvbnN0cmFpbnRzLFxuICAgICAgICBvdGhlckNvbnN0cmFpbnRzLFxuICAgICAgICBsaW5lYWdlLFxuICAgICAgICAuLi4oc3BhdGlhbFJlcHJlc2VudGF0aW9uICYmIHsgc3BhdGlhbFJlcHJlc2VudGF0aW9uIH0pLFxuICAgICAgICBvdmVydmlld3MsXG4gICAgICAgIHNwYXRpYWxFeHRlbnRzLFxuICAgICAgICB0ZW1wb3JhbEV4dGVudHMsXG4gICAgICAgIGRpc3RyaWJ1dGlvbnMsXG4gICAgICAgIHVwZGF0ZUZyZXF1ZW5jeSxcbiAgICAgICAgLi4uKGxhbmRpbmdQYWdlICYmIHsgbGFuZGluZ1BhZ2UgfSksXG4gICAgICB9IGFzIERhdGFzZXRSZWNvcmRcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb25saW5lUmVzb3VyY2VzID0gdGhpcy5yZWFkZXJzWydvbmxpbmVSZXNvdXJjZXMnXShyb290RWwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bmlxdWVJZGVudGlmaWVyLFxuICAgICAgICBraW5kLFxuICAgICAgICBsYW5ndWFnZXM6IFtdLFxuICAgICAgICAuLi4ocmVjb3JkQ3JlYXRlZCAmJiB7IHJlY29yZENyZWF0ZWQgfSksXG4gICAgICAgIC4uLihyZWNvcmRQdWJsaXNoZWQgJiYgeyByZWNvcmRQdWJsaXNoZWQgfSksXG4gICAgICAgIHJlY29yZFVwZGF0ZWQsXG4gICAgICAgIC4uLihyZXNvdXJjZUNyZWF0ZWQgJiYgeyByZXNvdXJjZUNyZWF0ZWQgfSksXG4gICAgICAgIC4uLihyZXNvdXJjZVVwZGF0ZWQgJiYgeyByZXNvdXJjZVVwZGF0ZWQgfSksXG4gICAgICAgIC4uLihyZXNvdXJjZVB1Ymxpc2hlZCAmJiB7IHJlc291cmNlUHVibGlzaGVkIH0pLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgYWJzdHJhY3QsXG4gICAgICAgIG93bmVyT3JnYW5pemF0aW9uLFxuICAgICAgICBjb250YWN0cyxcbiAgICAgICAgY29udGFjdHNGb3JSZXNvdXJjZSxcbiAgICAgICAga2V5d29yZHMsXG4gICAgICAgIHRvcGljcyxcbiAgICAgICAgbGljZW5zZXMsXG4gICAgICAgIGxlZ2FsQ29uc3RyYWludHMsXG4gICAgICAgIHNlY3VyaXR5Q29uc3RyYWludHMsXG4gICAgICAgIG90aGVyQ29uc3RyYWludHMsXG4gICAgICAgIG92ZXJ2aWV3cyxcbiAgICAgICAgb25saW5lUmVzb3VyY2VzLFxuICAgICAgICAuLi4obGFuZGluZ1BhZ2UgJiYgeyBsYW5kaW5nUGFnZSB9KSxcbiAgICAgIH0gYXMgU2VydmljZVJlY29yZFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdyaXRlUmVjb3JkKFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgICByZWZlcmVuY2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgcm9vdEVsOiBYbWxFbGVtZW50XG4gICAgbGV0IGZpZWxkQ2hhbmdlZDogKG5hbWU6IHN0cmluZykgPT4gYm9vbGVhblxuICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gcGFyc2VYbWxTdHJpbmcocmVmZXJlbmNlKVxuICAgICAgY29uc3Qgb3JpZ2luYWxSZWNvcmQgPSBhd2FpdCB0aGlzLnJlYWRSZWNvcmQocmVmZXJlbmNlKVxuICAgICAgcm9vdEVsID0gZ2V0Um9vdEVsZW1lbnQob3JpZ2luYWxEb2MpXG5cbiAgICAgIGZpZWxkQ2hhbmdlZCA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVjb3JkICE9PSBudWxsXG4gICAgICAgICAgPyAhaXNFcXVhbChyZWNvcmRbbmFtZV0sIG9yaWdpbmFsUmVjb3JkW25hbWVdKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByb290RWwgPSBjcmVhdGVFbGVtZW50KCdnbWQ6TURfTWV0YWRhdGEnKSgpXG4gICAgICBmaWVsZENoYW5nZWQgPSAoKSA9PiB0cnVlXG4gICAgfVxuXG4gICAgZmllbGRDaGFuZ2VkKCd1bmlxdWVJZGVudGlmaWVyJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1sndW5pcXVlSWRlbnRpZmllciddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgna2luZCcpICYmIHRoaXMud3JpdGVyc1sna2luZCddKHJlY29yZCwgcm9vdEVsKVxuXG4gICAgZmllbGRDaGFuZ2VkKCdjb250YWN0cycpICYmIHRoaXMud3JpdGVyc1snY29udGFjdHMnXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ293bmVyT3JnYW5pemF0aW9uJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1snb3duZXJPcmdhbml6YXRpb24nXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgncmVjb3JkVXBkYXRlZCcpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ3JlY29yZFVwZGF0ZWQnXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ3JlY29yZENyZWF0ZWQnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydyZWNvcmRDcmVhdGVkJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdyZWNvcmRQdWJsaXNoZWQnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydyZWNvcmRQdWJsaXNoZWQnXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgndGl0bGUnKSAmJiB0aGlzLndyaXRlcnNbJ3RpdGxlJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdhYnN0cmFjdCcpICYmIHRoaXMud3JpdGVyc1snYWJzdHJhY3QnXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgncmVzb3VyY2VDcmVhdGVkJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1sncmVzb3VyY2VDcmVhdGVkJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdyZXNvdXJjZVB1Ymxpc2hlZCcpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ3Jlc291cmNlUHVibGlzaGVkJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdyZXNvdXJjZVVwZGF0ZWQnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydyZXNvdXJjZVVwZGF0ZWQnXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgnY29udGFjdHNGb3JSZXNvdXJjZScpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ2NvbnRhY3RzRm9yUmVzb3VyY2UnXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgna2V5d29yZHMnKSAmJiB0aGlzLndyaXRlcnNbJ2tleXdvcmRzJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCd0b3BpY3MnKSAmJiB0aGlzLndyaXRlcnNbJ3RvcGljcyddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgnbGVnYWxDb25zdHJhaW50cycpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ2xlZ2FsQ29uc3RyYWludHMnXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ3NlY3VyaXR5Q29uc3RyYWludHMnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydzZWN1cml0eUNvbnN0cmFpbnRzJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdsaWNlbnNlcycpICYmIHRoaXMud3JpdGVyc1snbGljZW5zZXMnXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ290aGVyQ29uc3RyYWludHMnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydvdGhlckNvbnN0cmFpbnRzJ10ocmVjb3JkLCByb290RWwpXG5cbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdkYXRhc2V0Jykge1xuICAgICAgZmllbGRDaGFuZ2VkKCdzdGF0dXMnKSAmJiB0aGlzLndyaXRlcnNbJ3N0YXR1cyddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCd1cGRhdGVGcmVxdWVuY3knKSAmJlxuICAgICAgICB0aGlzLndyaXRlcnNbJ3VwZGF0ZUZyZXF1ZW5jeSddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCdzcGF0aWFsUmVwcmVzZW50YXRpb24nKSAmJlxuICAgICAgICB0aGlzLndyaXRlcnNbJ3NwYXRpYWxSZXByZXNlbnRhdGlvbiddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCdvdmVydmlld3MnKSAmJiB0aGlzLndyaXRlcnNbJ292ZXJ2aWV3cyddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCd0ZW1wb3JhbEV4dGVudHMnKSAmJlxuICAgICAgICB0aGlzLndyaXRlcnNbJ3RlbXBvcmFsRXh0ZW50cyddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCdkaXN0cmlidXRpb25zJykgJiZcbiAgICAgICAgdGhpcy53cml0ZXJzWydkaXN0cmlidXRpb25zJ10ocmVjb3JkLCByb290RWwpXG4gICAgICBmaWVsZENoYW5nZWQoJ2xpbmVhZ2UnKSAmJiB0aGlzLndyaXRlcnNbJ2xpbmVhZ2UnXShyZWNvcmQsIHJvb3RFbClcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGRDaGFuZ2VkKCdvbmxpbmVSZXNvdXJjZXMnKSAmJlxuICAgICAgICB0aGlzLndyaXRlcnNbJ29ubGluZVJlc291cmNlcyddKHJlY29yZCwgcm9vdEVsKVxuICAgIH1cblxuICAgIHRoaXMuYmVmb3JlRG9jdW1lbnRDcmVhdGlvbihyb290RWwpXG5cbiAgICBjb25zdCBuZXdEb2N1bWVudCA9IGNyZWF0ZURvY3VtZW50KHJvb3RFbClcbiAgICByZXR1cm4geG1sVG9TdHJpbmcobmV3RG9jdW1lbnQpXG4gIH1cbn1cbiJdfQ==
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvMTkxMzkuY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYy9saWIvaXNvMTkxMzkvaXNvMTkxMzkuY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsU0FBUyxFQUNULG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0Qixv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aUJBQWlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDakQsWUFBWSxDQUFDLGVBQWUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDL0MsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1NBQ25FO2FBQU07WUFDTCxZQUFZLENBQUMsaUJBQWlCLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDbEQ7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFbkMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIENhdGFsb2dSZWNvcmRLZXlzLFxuICBEYXRhc2V0UmVjb3JkLFxuICBTZXJ2aWNlUmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBYbWxFbGVtZW50IH0gZnJvbSAnQHJncm92ZS9wYXJzZS14bWwnXG5pbXBvcnQgeyBCYXNlQ29udmVydGVyIH0gZnJvbSAnLi4vYmFzZS5jb252ZXJ0ZXInXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnLi4vY29udmVydC11dGlscydcbmltcG9ydCB7XG4gIGNyZWF0ZURvY3VtZW50LFxuICBjcmVhdGVFbGVtZW50LFxuICBnZXRSb290RWxlbWVudCxcbiAgcGFyc2VYbWxTdHJpbmcsXG4gIHhtbFRvU3RyaW5nLFxufSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQge1xuICByZWFkQWJzdHJhY3QsXG4gIHJlYWRDb250YWN0cyxcbiAgcmVhZENvbnRhY3RzRm9yUmVzb3VyY2UsXG4gIHJlYWREaXN0cmlidXRpb25zLFxuICByZWFkSXNvVG9waWNzLFxuICByZWFkS2V5d29yZHMsXG4gIHJlYWRLaW5kLFxuICByZWFkTGVnYWxDb25zdHJhaW50cyxcbiAgcmVhZExpY2Vuc2VzLFxuICByZWFkTGluZWFnZSxcbiAgcmVhZE9ubGluZVJlc291cmNlcyxcbiAgcmVhZE90aGVyQ29uc3RyYWludHMsXG4gIHJlYWRPdmVydmlld3MsXG4gIHJlYWRPd25lck9yZ2FuaXphdGlvbixcbiAgcmVhZFJlY29yZFVwZGF0ZWQsXG4gIHJlYWRSZXNvdXJjZUNyZWF0ZWQsXG4gIHJlYWRSZXNvdXJjZVB1Ymxpc2hlZCxcbiAgcmVhZFJlc291cmNlVXBkYXRlZCxcbiAgcmVhZFNlY3VyaXR5Q29uc3RyYWludHMsXG4gIHJlYWRTcGF0aWFsRXh0ZW50cyxcbiAgcmVhZFNwYXRpYWxSZXByZXNlbnRhdGlvbixcbiAgcmVhZFN0YXR1cyxcbiAgcmVhZFRlbXBvcmFsRXh0ZW50cyxcbiAgcmVhZFRpdGxlLFxuICByZWFkVW5pcXVlSWRlbnRpZmllcixcbiAgcmVhZFVwZGF0ZUZyZXF1ZW5jeSxcbn0gZnJvbSAnLi9yZWFkLXBhcnRzJ1xuaW1wb3J0IHtcbiAgd3JpdGVBYnN0cmFjdCxcbiAgd3JpdGVDb250YWN0cyxcbiAgd3JpdGVDb250YWN0c0ZvclJlc291cmNlLFxuICB3cml0ZURpc3RyaWJ1dGlvbnMsXG4gIHdyaXRlR3JhcGhpY092ZXJ2aWV3cyxcbiAgd3JpdGVLZXl3b3JkcyxcbiAgd3JpdGVLaW5kLFxuICB3cml0ZUxlZ2FsQ29uc3RyYWludHMsXG4gIHdyaXRlTGljZW5zZXMsXG4gIHdyaXRlTGluZWFnZSxcbiAgd3JpdGVPbmxpbmVSZXNvdXJjZXMsXG4gIHdyaXRlT3RoZXJDb25zdHJhaW50cyxcbiAgd3JpdGVPd25lck9yZ2FuaXphdGlvbixcbiAgd3JpdGVSZWNvcmRVcGRhdGVkLFxuICB3cml0ZVJlc291cmNlQ3JlYXRlZCxcbiAgd3JpdGVSZXNvdXJjZVB1Ymxpc2hlZCxcbiAgd3JpdGVSZXNvdXJjZVVwZGF0ZWQsXG4gIHdyaXRlU2VjdXJpdHlDb25zdHJhaW50cyxcbiAgd3JpdGVTcGF0aWFsRXh0ZW50cyxcbiAgd3JpdGVTcGF0aWFsUmVwcmVzZW50YXRpb24sXG4gIHdyaXRlU3RhdHVzLFxuICB3cml0ZVRlbXBvcmFsRXh0ZW50cyxcbiAgd3JpdGVUaXRsZSxcbiAgd3JpdGVUb3BpY3MsXG4gIHdyaXRlVW5pcXVlSWRlbnRpZmllcixcbiAgd3JpdGVVcGRhdGVGcmVxdWVuY3ksXG59IGZyb20gJy4vd3JpdGUtcGFydHMnXG5cbmV4cG9ydCBjbGFzcyBJc28xOTEzOUNvbnZlcnRlciBleHRlbmRzIEJhc2VDb252ZXJ0ZXI8c3RyaW5nPiB7XG4gIHByb3RlY3RlZCByZWFkZXJzOiBSZWNvcmQ8XG4gICAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gICAgKHJvb3RFbDogWG1sRWxlbWVudCkgPT4gdW5rbm93blxuICA+ID0ge1xuICAgIHVuaXF1ZUlkZW50aWZpZXI6IHJlYWRVbmlxdWVJZGVudGlmaWVyLFxuICAgIGtpbmQ6IHJlYWRLaW5kLFxuICAgIG93bmVyT3JnYW5pemF0aW9uOiByZWFkT3duZXJPcmdhbml6YXRpb24sXG4gICAgcmVjb3JkVXBkYXRlZDogcmVhZFJlY29yZFVwZGF0ZWQsXG4gICAgcmVjb3JkQ3JlYXRlZDogKCkgPT4gdW5kZWZpbmVkLCAvLyBub3Qgc3VwcG9ydGVkIGluIElTTzE5MTM5XG4gICAgcmVjb3JkUHVibGlzaGVkOiAoKSA9PiB1bmRlZmluZWQsIC8vIG5vdCBzdXBwb3J0ZWQgaW4gSVNPMTkxMzlcbiAgICByZXNvdXJjZVVwZGF0ZWQ6IHJlYWRSZXNvdXJjZVVwZGF0ZWQsXG4gICAgcmVzb3VyY2VDcmVhdGVkOiByZWFkUmVzb3VyY2VDcmVhdGVkLFxuICAgIHJlc291cmNlUHVibGlzaGVkOiByZWFkUmVzb3VyY2VQdWJsaXNoZWQsXG4gICAgdGl0bGU6IHJlYWRUaXRsZSxcbiAgICBhYnN0cmFjdDogcmVhZEFic3RyYWN0LFxuICAgIGNvbnRhY3RzOiByZWFkQ29udGFjdHMsXG4gICAgY29udGFjdHNGb3JSZXNvdXJjZTogcmVhZENvbnRhY3RzRm9yUmVzb3VyY2UsXG4gICAga2V5d29yZHM6IHJlYWRLZXl3b3JkcyxcbiAgICB0b3BpY3M6IHJlYWRJc29Ub3BpY3MsXG4gICAgbGljZW5zZXM6IHJlYWRMaWNlbnNlcyxcbiAgICBsZWdhbENvbnN0cmFpbnRzOiByZWFkTGVnYWxDb25zdHJhaW50cyxcbiAgICBzZWN1cml0eUNvbnN0cmFpbnRzOiByZWFkU2VjdXJpdHlDb25zdHJhaW50cyxcbiAgICBvdGhlckNvbnN0cmFpbnRzOiByZWFkT3RoZXJDb25zdHJhaW50cyxcbiAgICBzdGF0dXM6IHJlYWRTdGF0dXMsXG4gICAgdXBkYXRlRnJlcXVlbmN5OiByZWFkVXBkYXRlRnJlcXVlbmN5LFxuICAgIHNwYXRpYWxSZXByZXNlbnRhdGlvbjogcmVhZFNwYXRpYWxSZXByZXNlbnRhdGlvbixcbiAgICBvdmVydmlld3M6IHJlYWRPdmVydmlld3MsXG4gICAgbGluZWFnZTogcmVhZExpbmVhZ2UsXG4gICAgZGlzdHJpYnV0aW9uczogcmVhZERpc3RyaWJ1dGlvbnMsXG4gICAgb25saW5lUmVzb3VyY2VzOiByZWFkT25saW5lUmVzb3VyY2VzLFxuICAgIHRlbXBvcmFsRXh0ZW50czogcmVhZFRlbXBvcmFsRXh0ZW50cyxcbiAgICBzcGF0aWFsRXh0ZW50czogcmVhZFNwYXRpYWxFeHRlbnRzLFxuICAgIC8vIFRPRE9cbiAgICBleHRyYXM6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBsYW5kaW5nUGFnZTogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGxhbmd1YWdlczogKCkgPT4gW10sXG4gIH1cblxuICBwcm90ZWN0ZWQgd3JpdGVyczogUmVjb3JkPFxuICAgIENhdGFsb2dSZWNvcmRLZXlzLFxuICAgIChyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkgPT4gdm9pZFxuICA+ID0ge1xuICAgIHVuaXF1ZUlkZW50aWZpZXI6IHdyaXRlVW5pcXVlSWRlbnRpZmllcixcbiAgICBraW5kOiB3cml0ZUtpbmQsXG4gICAgb3duZXJPcmdhbml6YXRpb246IHdyaXRlT3duZXJPcmdhbml6YXRpb24sXG4gICAgcmVjb3JkVXBkYXRlZDogd3JpdGVSZWNvcmRVcGRhdGVkLFxuICAgIHJlY29yZENyZWF0ZWQ6ICgpID0+IHVuZGVmaW5lZCwgLy8gbm90IHN1cHBvcnRlZCBpbiBJU08xOTEzOVxuICAgIHJlY29yZFB1Ymxpc2hlZDogKCkgPT4gdW5kZWZpbmVkLCAvLyBub3Qgc3VwcG9ydGVkIGluIElTTzE5MTM5XG4gICAgcmVzb3VyY2VVcGRhdGVkOiB3cml0ZVJlc291cmNlVXBkYXRlZCxcbiAgICByZXNvdXJjZUNyZWF0ZWQ6IHdyaXRlUmVzb3VyY2VDcmVhdGVkLFxuICAgIHJlc291cmNlUHVibGlzaGVkOiB3cml0ZVJlc291cmNlUHVibGlzaGVkLFxuICAgIHRpdGxlOiB3cml0ZVRpdGxlLFxuICAgIGFic3RyYWN0OiB3cml0ZUFic3RyYWN0LFxuICAgIGNvbnRhY3RzOiB3cml0ZUNvbnRhY3RzLFxuICAgIGNvbnRhY3RzRm9yUmVzb3VyY2U6IHdyaXRlQ29udGFjdHNGb3JSZXNvdXJjZSxcbiAgICBrZXl3b3Jkczogd3JpdGVLZXl3b3JkcyxcbiAgICB0b3BpY3M6IHdyaXRlVG9waWNzLFxuICAgIGxpY2Vuc2VzOiB3cml0ZUxpY2Vuc2VzLFxuICAgIGxlZ2FsQ29uc3RyYWludHM6IHdyaXRlTGVnYWxDb25zdHJhaW50cyxcbiAgICBzZWN1cml0eUNvbnN0cmFpbnRzOiB3cml0ZVNlY3VyaXR5Q29uc3RyYWludHMsXG4gICAgb3RoZXJDb25zdHJhaW50czogd3JpdGVPdGhlckNvbnN0cmFpbnRzLFxuICAgIHN0YXR1czogd3JpdGVTdGF0dXMsXG4gICAgdXBkYXRlRnJlcXVlbmN5OiB3cml0ZVVwZGF0ZUZyZXF1ZW5jeSxcbiAgICBzcGF0aWFsUmVwcmVzZW50YXRpb246IHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uLFxuICAgIG92ZXJ2aWV3czogd3JpdGVHcmFwaGljT3ZlcnZpZXdzLFxuICAgIGxpbmVhZ2U6IHdyaXRlTGluZWFnZSxcbiAgICBkaXN0cmlidXRpb25zOiB3cml0ZURpc3RyaWJ1dGlvbnMsXG4gICAgb25saW5lUmVzb3VyY2VzOiB3cml0ZU9ubGluZVJlc291cmNlcyxcbiAgICB0ZW1wb3JhbEV4dGVudHM6IHdyaXRlVGVtcG9yYWxFeHRlbnRzLFxuICAgIHNwYXRpYWxFeHRlbnRzOiAoKSA9PiB3cml0ZVNwYXRpYWxFeHRlbnRzLFxuICAgIC8vIFRPRE9cbiAgICBleHRyYXM6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBsYW5kaW5nUGFnZTogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGxhbmd1YWdlczogKCkgPT4gdW5kZWZpbmVkLFxuICB9XG5cbiAgcHJvdGVjdGVkIGJlZm9yZURvY3VtZW50Q3JlYXRpb24ocm9vdEVsZW1lbnQ6IFhtbEVsZW1lbnQpIHtcbiAgICAvLyB0byBvdmVycmlkZVxuICB9XG5cbiAgYXN5bmMgcmVhZFJlY29yZChkb2N1bWVudDogc3RyaW5nKTogUHJvbWlzZTxDYXRhbG9nUmVjb3JkPiB7XG4gICAgY29uc3QgZG9jID0gcGFyc2VYbWxTdHJpbmcoZG9jdW1lbnQpXG4gICAgY29uc3Qgcm9vdEVsID0gZ2V0Um9vdEVsZW1lbnQoZG9jKVxuXG4gICAgY29uc3QgdW5pcXVlSWRlbnRpZmllciA9IHRoaXMucmVhZGVyc1sndW5pcXVlSWRlbnRpZmllciddKHJvb3RFbClcbiAgICBjb25zdCBraW5kID0gdGhpcy5yZWFkZXJzWydraW5kJ10ocm9vdEVsKVxuICAgIGNvbnN0IG93bmVyT3JnYW5pemF0aW9uID0gdGhpcy5yZWFkZXJzWydvd25lck9yZ2FuaXphdGlvbiddKHJvb3RFbClcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMucmVhZGVyc1sndGl0bGUnXShyb290RWwpXG4gICAgY29uc3QgYWJzdHJhY3QgPSB0aGlzLnJlYWRlcnNbJ2Fic3RyYWN0J10ocm9vdEVsKVxuICAgIGNvbnN0IGNvbnRhY3RzID0gdGhpcy5yZWFkZXJzWydjb250YWN0cyddKHJvb3RFbClcbiAgICBjb25zdCBjb250YWN0c0ZvclJlc291cmNlID0gdGhpcy5yZWFkZXJzWydjb250YWN0c0ZvclJlc291cmNlJ10ocm9vdEVsKVxuICAgIGNvbnN0IHJlY29yZFVwZGF0ZWQgPSB0aGlzLnJlYWRlcnNbJ3JlY29yZFVwZGF0ZWQnXShyb290RWwpXG4gICAgY29uc3QgcmVjb3JkQ3JlYXRlZCA9IHRoaXMucmVhZGVyc1sncmVjb3JkQ3JlYXRlZCddKHJvb3RFbClcbiAgICBjb25zdCByZWNvcmRQdWJsaXNoZWQgPSB0aGlzLnJlYWRlcnNbJ3JlY29yZFB1Ymxpc2hlZCddKHJvb3RFbClcbiAgICBjb25zdCByZXNvdXJjZUNyZWF0ZWQgPSB0aGlzLnJlYWRlcnNbJ3Jlc291cmNlQ3JlYXRlZCddKHJvb3RFbClcbiAgICBjb25zdCByZXNvdXJjZVVwZGF0ZWQgPSB0aGlzLnJlYWRlcnNbJ3Jlc291cmNlVXBkYXRlZCddKHJvb3RFbClcbiAgICBjb25zdCByZXNvdXJjZVB1Ymxpc2hlZCA9IHRoaXMucmVhZGVyc1sncmVzb3VyY2VQdWJsaXNoZWQnXShyb290RWwpXG4gICAgY29uc3Qga2V5d29yZHMgPSB0aGlzLnJlYWRlcnNbJ2tleXdvcmRzJ10ocm9vdEVsKVxuICAgIGNvbnN0IHRvcGljcyA9IHRoaXMucmVhZGVyc1sndG9waWNzJ10ocm9vdEVsKVxuICAgIGNvbnN0IGxlZ2FsQ29uc3RyYWludHMgPSB0aGlzLnJlYWRlcnNbJ2xlZ2FsQ29uc3RyYWludHMnXShyb290RWwpXG4gICAgY29uc3Qgb3RoZXJDb25zdHJhaW50cyA9IHRoaXMucmVhZGVyc1snb3RoZXJDb25zdHJhaW50cyddKHJvb3RFbClcbiAgICBjb25zdCBzZWN1cml0eUNvbnN0cmFpbnRzID0gdGhpcy5yZWFkZXJzWydzZWN1cml0eUNvbnN0cmFpbnRzJ10ocm9vdEVsKVxuICAgIGNvbnN0IGxpY2Vuc2VzID0gdGhpcy5yZWFkZXJzWydsaWNlbnNlcyddKHJvb3RFbClcbiAgICBjb25zdCBvdmVydmlld3MgPSB0aGlzLnJlYWRlcnNbJ292ZXJ2aWV3cyddKHJvb3RFbClcbiAgICBjb25zdCBsYW5kaW5nUGFnZSA9IHRoaXMucmVhZGVyc1snbGFuZGluZ1BhZ2UnXShyb290RWwpXG5cbiAgICBpZiAoa2luZCA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnJlYWRlcnNbJ3N0YXR1cyddKHJvb3RFbClcbiAgICAgIGNvbnN0IHNwYXRpYWxSZXByZXNlbnRhdGlvbiA9XG4gICAgICAgIHRoaXMucmVhZGVyc1snc3BhdGlhbFJlcHJlc2VudGF0aW9uJ10ocm9vdEVsKVxuICAgICAgY29uc3Qgc3BhdGlhbEV4dGVudHMgPSB0aGlzLnJlYWRlcnNbJ3NwYXRpYWxFeHRlbnRzJ10ocm9vdEVsKVxuICAgICAgY29uc3QgdGVtcG9yYWxFeHRlbnRzID0gdGhpcy5yZWFkZXJzWyd0ZW1wb3JhbEV4dGVudHMnXShyb290RWwpXG4gICAgICBjb25zdCBsaW5lYWdlID0gdGhpcy5yZWFkZXJzWydsaW5lYWdlJ10ocm9vdEVsKVxuICAgICAgY29uc3QgZGlzdHJpYnV0aW9ucyA9IHRoaXMucmVhZGVyc1snZGlzdHJpYnV0aW9ucyddKHJvb3RFbClcbiAgICAgIGNvbnN0IHVwZGF0ZUZyZXF1ZW5jeSA9IHRoaXMucmVhZGVyc1sndXBkYXRlRnJlcXVlbmN5J10ocm9vdEVsKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bmlxdWVJZGVudGlmaWVyLFxuICAgICAgICBraW5kLFxuICAgICAgICBsYW5ndWFnZXM6IFtdLFxuICAgICAgICAuLi4ocmVjb3JkQ3JlYXRlZCAmJiB7IHJlY29yZENyZWF0ZWQgfSksXG4gICAgICAgIC4uLihyZWNvcmRQdWJsaXNoZWQgJiYgeyByZWNvcmRQdWJsaXNoZWQgfSksXG4gICAgICAgIHJlY29yZFVwZGF0ZWQsXG4gICAgICAgIC4uLihyZXNvdXJjZUNyZWF0ZWQgJiYgeyByZXNvdXJjZUNyZWF0ZWQgfSksXG4gICAgICAgIC4uLihyZXNvdXJjZVVwZGF0ZWQgJiYgeyByZXNvdXJjZVVwZGF0ZWQgfSksXG4gICAgICAgIC4uLihyZXNvdXJjZVB1Ymxpc2hlZCAmJiB7IHJlc291cmNlUHVibGlzaGVkIH0pLFxuICAgICAgICBzdGF0dXMsXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBhYnN0cmFjdCxcbiAgICAgICAgb3duZXJPcmdhbml6YXRpb24sXG4gICAgICAgIGNvbnRhY3RzLFxuICAgICAgICBjb250YWN0c0ZvclJlc291cmNlLFxuICAgICAgICBrZXl3b3JkcyxcbiAgICAgICAgdG9waWNzLFxuICAgICAgICBsaWNlbnNlcyxcbiAgICAgICAgbGVnYWxDb25zdHJhaW50cyxcbiAgICAgICAgc2VjdXJpdHlDb25zdHJhaW50cyxcbiAgICAgICAgb3RoZXJDb25zdHJhaW50cyxcbiAgICAgICAgbGluZWFnZSxcbiAgICAgICAgLi4uKHNwYXRpYWxSZXByZXNlbnRhdGlvbiAmJiB7IHNwYXRpYWxSZXByZXNlbnRhdGlvbiB9KSxcbiAgICAgICAgb3ZlcnZpZXdzLFxuICAgICAgICBzcGF0aWFsRXh0ZW50cyxcbiAgICAgICAgdGVtcG9yYWxFeHRlbnRzLFxuICAgICAgICBkaXN0cmlidXRpb25zLFxuICAgICAgICB1cGRhdGVGcmVxdWVuY3ksXG4gICAgICAgIC4uLihsYW5kaW5nUGFnZSAmJiB7IGxhbmRpbmdQYWdlIH0pLFxuICAgICAgfSBhcyBEYXRhc2V0UmVjb3JkXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9ubGluZVJlc291cmNlcyA9IHRoaXMucmVhZGVyc1snb25saW5lUmVzb3VyY2VzJ10ocm9vdEVsKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAga2luZCxcbiAgICAgICAgbGFuZ3VhZ2VzOiBbXSxcbiAgICAgICAgLi4uKHJlY29yZENyZWF0ZWQgJiYgeyByZWNvcmRDcmVhdGVkIH0pLFxuICAgICAgICAuLi4ocmVjb3JkUHVibGlzaGVkICYmIHsgcmVjb3JkUHVibGlzaGVkIH0pLFxuICAgICAgICByZWNvcmRVcGRhdGVkLFxuICAgICAgICAuLi4ocmVzb3VyY2VDcmVhdGVkICYmIHsgcmVzb3VyY2VDcmVhdGVkIH0pLFxuICAgICAgICAuLi4ocmVzb3VyY2VVcGRhdGVkICYmIHsgcmVzb3VyY2VVcGRhdGVkIH0pLFxuICAgICAgICAuLi4ocmVzb3VyY2VQdWJsaXNoZWQgJiYgeyByZXNvdXJjZVB1Ymxpc2hlZCB9KSxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGFic3RyYWN0LFxuICAgICAgICBvd25lck9yZ2FuaXphdGlvbixcbiAgICAgICAgY29udGFjdHMsXG4gICAgICAgIGNvbnRhY3RzRm9yUmVzb3VyY2UsXG4gICAgICAgIGtleXdvcmRzLFxuICAgICAgICB0b3BpY3MsXG4gICAgICAgIGxpY2Vuc2VzLFxuICAgICAgICBsZWdhbENvbnN0cmFpbnRzLFxuICAgICAgICBzZWN1cml0eUNvbnN0cmFpbnRzLFxuICAgICAgICBvdGhlckNvbnN0cmFpbnRzLFxuICAgICAgICBvdmVydmlld3MsXG4gICAgICAgIG9ubGluZVJlc291cmNlcyxcbiAgICAgICAgLi4uKGxhbmRpbmdQYWdlICYmIHsgbGFuZGluZ1BhZ2UgfSksXG4gICAgICB9IGFzIFNlcnZpY2VSZWNvcmRcbiAgICB9XG4gIH1cblxuICBhc3luYyB3cml0ZVJlY29yZChcbiAgICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gICAgcmVmZXJlbmNlPzogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IHJvb3RFbDogWG1sRWxlbWVudFxuICAgIGxldCBmaWVsZENoYW5nZWQ6IChuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW5cbiAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbERvYyA9IHBhcnNlWG1sU3RyaW5nKHJlZmVyZW5jZSlcbiAgICAgIGNvbnN0IG9yaWdpbmFsUmVjb3JkID0gYXdhaXQgdGhpcy5yZWFkUmVjb3JkKHJlZmVyZW5jZSlcbiAgICAgIHJvb3RFbCA9IGdldFJvb3RFbGVtZW50KG9yaWdpbmFsRG9jKVxuXG4gICAgICBmaWVsZENoYW5nZWQgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFJlY29yZCAhPT0gbnVsbFxuICAgICAgICAgID8gIWlzRXF1YWwocmVjb3JkW25hbWVdLCBvcmlnaW5hbFJlY29yZFtuYW1lXSlcbiAgICAgICAgICA6IHRydWVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdEVsID0gY3JlYXRlRWxlbWVudCgnZ21kOk1EX01ldGFkYXRhJykoKVxuICAgICAgZmllbGRDaGFuZ2VkID0gKCkgPT4gdHJ1ZVxuICAgIH1cblxuICAgIGZpZWxkQ2hhbmdlZCgndW5pcXVlSWRlbnRpZmllcicpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ3VuaXF1ZUlkZW50aWZpZXInXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ2tpbmQnKSAmJiB0aGlzLndyaXRlcnNbJ2tpbmQnXShyZWNvcmQsIHJvb3RFbClcblxuICAgIGZpZWxkQ2hhbmdlZCgnY29udGFjdHMnKSAmJiB0aGlzLndyaXRlcnNbJ2NvbnRhY3RzJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdvd25lck9yZ2FuaXphdGlvbicpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ293bmVyT3JnYW5pemF0aW9uJ10ocmVjb3JkLCByb290RWwpXG5cbiAgICBmaWVsZENoYW5nZWQoJ3JlY29yZFVwZGF0ZWQnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydyZWNvcmRVcGRhdGVkJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdyZWNvcmRDcmVhdGVkJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1sncmVjb3JkQ3JlYXRlZCddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgncmVjb3JkUHVibGlzaGVkJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1sncmVjb3JkUHVibGlzaGVkJ10ocmVjb3JkLCByb290RWwpXG5cbiAgICBmaWVsZENoYW5nZWQoJ3RpdGxlJykgJiYgdGhpcy53cml0ZXJzWyd0aXRsZSddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgnYWJzdHJhY3QnKSAmJiB0aGlzLndyaXRlcnNbJ2Fic3RyYWN0J10ocmVjb3JkLCByb290RWwpXG5cbiAgICBmaWVsZENoYW5nZWQoJ3Jlc291cmNlQ3JlYXRlZCcpICYmXG4gICAgICB0aGlzLndyaXRlcnNbJ3Jlc291cmNlQ3JlYXRlZCddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgncmVzb3VyY2VQdWJsaXNoZWQnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydyZXNvdXJjZVB1Ymxpc2hlZCddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgncmVzb3VyY2VVcGRhdGVkJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1sncmVzb3VyY2VVcGRhdGVkJ10ocmVjb3JkLCByb290RWwpXG5cbiAgICBmaWVsZENoYW5nZWQoJ2NvbnRhY3RzRm9yUmVzb3VyY2UnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydjb250YWN0c0ZvclJlc291cmNlJ10ocmVjb3JkLCByb290RWwpXG5cbiAgICBmaWVsZENoYW5nZWQoJ2tleXdvcmRzJykgJiYgdGhpcy53cml0ZXJzWydrZXl3b3JkcyddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgndG9waWNzJykgJiYgdGhpcy53cml0ZXJzWyd0b3BpY3MnXShyZWNvcmQsIHJvb3RFbClcbiAgICBmaWVsZENoYW5nZWQoJ2xlZ2FsQ29uc3RyYWludHMnKSAmJlxuICAgICAgdGhpcy53cml0ZXJzWydsZWdhbENvbnN0cmFpbnRzJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdzZWN1cml0eUNvbnN0cmFpbnRzJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1snc2VjdXJpdHlDb25zdHJhaW50cyddKHJlY29yZCwgcm9vdEVsKVxuICAgIGZpZWxkQ2hhbmdlZCgnbGljZW5zZXMnKSAmJiB0aGlzLndyaXRlcnNbJ2xpY2Vuc2VzJ10ocmVjb3JkLCByb290RWwpXG4gICAgZmllbGRDaGFuZ2VkKCdvdGhlckNvbnN0cmFpbnRzJykgJiZcbiAgICAgIHRoaXMud3JpdGVyc1snb3RoZXJDb25zdHJhaW50cyddKHJlY29yZCwgcm9vdEVsKVxuXG4gICAgaWYgKHJlY29yZC5raW5kID09PSAnZGF0YXNldCcpIHtcbiAgICAgIGZpZWxkQ2hhbmdlZCgnc3RhdHVzJykgJiYgdGhpcy53cml0ZXJzWydzdGF0dXMnXShyZWNvcmQsIHJvb3RFbClcbiAgICAgIGZpZWxkQ2hhbmdlZCgndXBkYXRlRnJlcXVlbmN5JykgJiZcbiAgICAgICAgdGhpcy53cml0ZXJzWyd1cGRhdGVGcmVxdWVuY3knXShyZWNvcmQsIHJvb3RFbClcbiAgICAgIGZpZWxkQ2hhbmdlZCgnc3BhdGlhbFJlcHJlc2VudGF0aW9uJykgJiZcbiAgICAgICAgdGhpcy53cml0ZXJzWydzcGF0aWFsUmVwcmVzZW50YXRpb24nXShyZWNvcmQsIHJvb3RFbClcbiAgICAgIGZpZWxkQ2hhbmdlZCgnb3ZlcnZpZXdzJykgJiYgdGhpcy53cml0ZXJzWydvdmVydmlld3MnXShyZWNvcmQsIHJvb3RFbClcbiAgICAgIGZpZWxkQ2hhbmdlZCgndGVtcG9yYWxFeHRlbnRzJykgJiZcbiAgICAgICAgdGhpcy53cml0ZXJzWyd0ZW1wb3JhbEV4dGVudHMnXShyZWNvcmQsIHJvb3RFbClcbiAgICAgIGZpZWxkQ2hhbmdlZCgnZGlzdHJpYnV0aW9ucycpICYmXG4gICAgICAgIHRoaXMud3JpdGVyc1snZGlzdHJpYnV0aW9ucyddKHJlY29yZCwgcm9vdEVsKVxuICAgICAgZmllbGRDaGFuZ2VkKCdsaW5lYWdlJykgJiYgdGhpcy53cml0ZXJzWydsaW5lYWdlJ10ocmVjb3JkLCByb290RWwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkQ2hhbmdlZCgnb25saW5lUmVzb3VyY2VzJykgJiZcbiAgICAgICAgdGhpcy53cml0ZXJzWydvbmxpbmVSZXNvdXJjZXMnXShyZWNvcmQsIHJvb3RFbClcbiAgICB9XG5cbiAgICB0aGlzLmJlZm9yZURvY3VtZW50Q3JlYXRpb24ocm9vdEVsKVxuXG4gICAgY29uc3QgbmV3RG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudChyb290RWwpXG4gICAgcmV0dXJuIHhtbFRvU3RyaW5nKG5ld0RvY3VtZW50KVxuICB9XG59XG4iXX0=
|