geonetwork-ui 2.4.0-alpha.2.dbfa93cf3 → 2.4.0-alpha.2.ddc8a5a9f
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/README.md +1 -7
- package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/license.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +38 -0
- package/esm2022/libs/api/metadata-converter/src/lib/common/url.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/convert-utils.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +4 -2
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/function-utils.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -11
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +16 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +7 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +62 -63
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +33 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +7 -3
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +12 -9
- package/esm2022/libs/api/repository/src/lib/gn4/auth/gravatar.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +7 -7
- package/esm2022/libs/api/repository/src/lib/gn4/favorites/favorites.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +4 -4
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +19 -19
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/atom.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/customstyle.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/formatters.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/groups.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/harvesters.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/identifiers.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/languages.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/links.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/logos.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/mapservers.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/mapservices.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/me.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/operations.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/pages.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/processes.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/regions.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/registries.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/related.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/search.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/selections.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/site.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/sources.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/standards.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/status.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/tags.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/tools.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/ui.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/userfeedback.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/users.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/usersearches.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api/userselections.api.service.mjs +6 -6
- package/esm2022/libs/data-access/gn4/src/openapi/api.module.mjs +7 -7
- package/esm2022/libs/data-access/gn4/src/openapi/configuration.mjs +1 -1
- package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
- package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +5 -5
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +5 -5
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +5 -5
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure.service.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +5 -5
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +18 -7
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +6 -6
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +6 -6
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/constraints.utils.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +6 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +6 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-toggle/form-field-spatial-toggle.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +6 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -7
- package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +6 -6
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +6 -6
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +5 -5
- package/esm2022/libs/feature/map/src/lib/style/map-style.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +4 -4
- package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +4 -4
- package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +4 -4
- package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +3 -3
- package/esm2022/libs/feature/record/src/index.mjs +3 -1
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +11 -7
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +169 -0
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +45 -0
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +21 -8
- package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +14 -6
- package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +6 -6
- package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +5 -5
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +5 -5
- package/esm2022/libs/feature/router/src/lib/default/services/router-search.service.mjs +4 -4
- package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +6 -6
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/facets/facets.service.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/state/actions.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/utils/operators/search.operator.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/utils/service/search.service.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.mjs +3 -3
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +6 -6
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +3 -3
- package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +3 -3
- package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +6 -6
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
- package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +6 -6
- package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +7 -6
- package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/content-ghost/content-ghost.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +31 -9
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +7 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-info/linkify.directive.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -7
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +6 -6
- package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +7 -7
- package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +7 -7
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +7 -7
- package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +6 -6
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -4
- package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +3 -3
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +7 -7
- package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +4 -4
- package/esm2022/libs/ui/map/src/lib/map-utils.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +7 -7
- package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -6
- package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -5
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +9 -8
- package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -5
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +5 -5
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +6 -6
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +5 -5
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +5 -5
- package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +6 -6
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +5 -5
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +4 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
- package/esm2022/libs/util/app-config/src/lib/map-layers.mjs +1 -1
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/headers.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +3 -3
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/sql-utils.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -11
- package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +4 -4
- package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +4 -4
- package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +6 -6
- package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +5 -5
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +6 -4
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/services/log.service.mjs +3 -3
- package/esm2022/libs/util/shared/src/lib/services/proxy.service.mjs +12 -9
- package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/utils/format-fields.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/no-duplicate-file-name.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/parse.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/utils/url.mjs +1 -1
- package/esm2022/translations/de.json +6 -4
- package/esm2022/translations/en.json +87 -66
- package/esm2022/translations/es.json +6 -4
- package/esm2022/translations/fr.json +82 -61
- package/esm2022/translations/it.json +6 -4
- package/esm2022/translations/nl.json +6 -4
- package/esm2022/translations/pt.json +6 -4
- package/fesm2022/geonetwork-ui.mjs +1791 -1384
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/function-utils.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +4 -4
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +11 -10
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +1 -0
- 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 +3 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
- 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 +2 -2
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts +4 -2
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +15 -5
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/groupPrivilege.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/jsonNode.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/link.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/metadataResource.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/metadataResourceExternalManagementProperties.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/metadataStatusParameter.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/operation.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/pageProperties.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/publicationOption.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/setting.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/status.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/statusValue.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/userGroup.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/userGroupId.api.model.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/userSecurity.api.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +3 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +12 -12
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +11 -11
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +2 -2
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -6
- 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/fields.config.d.ts +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/map/src/lib/+state/map.actions.d.ts +3 -3
- package/libs/feature/map/src/lib/+state/map.actions.d.ts.map +1 -1
- package/libs/feature/record/src/index.d.ts +2 -0
- package/libs/feature/record/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts +74 -0
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -0
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +19 -0
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -0
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +13 -13
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -9
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.actions.d.ts +3 -3
- package/libs/feature/router/src/lib/default/state/router.actions.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts +5 -5
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.selectors.d.ts +1 -1
- package/libs/feature/router/src/lib/default/state/router.selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/actions.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/operators/search.operator.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +9 -8
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +2 -1
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/linkify.directive.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +1 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/model.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/csv.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/excel.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/geojson.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/json.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/utils.d.ts +1 -1
- package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/proxy.service.d.ts +4 -2
- package/libs/util/shared/src/lib/services/proxy.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +4 -1
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
- package/package.json +50 -43
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +50 -0
- package/src/libs/api/metadata-converter/src/lib/convert-utils.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +246 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +101 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +187 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +9 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +216 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +6 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +451 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +289 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +16 -11
- package/src/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +11 -10
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +24 -10
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +8 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +61 -56
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +65 -10
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +9 -3
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +11 -3
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +1 -1
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/record/contact.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -4
- package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.fixtures.ts +1 -0
- package/src/libs/common/fixtures/src/lib/elasticsearch/search-responses.fixtures.ts +12931 -0
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +37 -28
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +28 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +4 -4
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +2 -2
- package/src/libs/feature/record/src/index.ts +2 -0
- package/src/libs/feature/record/src/lib/feature-record.module.ts +2 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.css +22 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.html +132 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +253 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.css +0 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.html +37 -0
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +43 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +16 -3
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +10 -1
- package/src/libs/feature/search/src/lib/facets/facets.service.ts +4 -4
- package/src/libs/feature/search/src/lib/state/actions.ts +69 -17
- package/src/libs/feature/search/src/lib/state/effects.ts +1 -1
- package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +1 -1
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +5 -4
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +14 -3
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +2 -2
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +1 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +1 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +46 -10
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +4 -1
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-info/linkify.directive.ts +4 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +6 -6
- package/src/libs/ui/elements/src/lib/notification/notification.component.html +1 -1
- package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +2 -2
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +4 -1
- package/src/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +4 -1
- package/src/libs/ui/inputs/src/lib/file-input/file-input.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 +4 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +4 -4
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.css +4 -2
- package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +8 -2
- package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +1 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +4 -1
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -2
- package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.html +1 -1
- package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +2 -2
- package/src/libs/util/app-config/src/lib/app-config.ts +3 -1
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/src/libs/util/data-fetcher/src/lib/model.ts +6 -6
- package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/utils.ts +13 -11
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +2 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +1 -1
- package/src/libs/util/shared/src/lib/services/proxy.service.ts +7 -3
- package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -1
- package/translations/de.json +6 -4
- package/translations/en.json +87 -66
- package/translations/es.json +6 -4
- package/translations/fr.json +82 -61
- package/translations/it.json +6 -4
- package/translations/nl.json +6 -4
- package/translations/pt.json +6 -4
- package/translations/sk.json +6 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Iso19139Converter } from '../iso19139';
|
|
2
2
|
import { renameElements } from '../xml-utils';
|
|
3
|
-
import { readContacts, readContactsForResource, readDefaultLanguage, readKind, readLandingPage, readLineage, readOnlineResources, readOtherLanguages, readOwnerOrganization, readRecordCreated, readRecordPublished, readRecordUpdated, readUniqueIdentifier, } from './read-parts';
|
|
4
|
-
import { writeContacts, writeContactsForResource, writeDefaultLanguage, writeKind, writeLandingPage, writeLineage, writeOnlineResources, writeOtherLanguages, writeRecordCreated, writeRecordPublished, writeRecordUpdated, writeResourceCreated, writeResourcePublished, writeResourceUpdated, writeSpatialRepresentation, writeStatus, writeUniqueIdentifier, } from './write-parts';
|
|
3
|
+
import { readContacts, readContactsForResource, readDefaultLanguage, readKind, readLandingPage, readLineage, readOnlineResources, readOtherLanguages, readOwnerOrganization, readRecordCreated, readRecordPublished, readRecordUpdated, readReuseType, readUniqueIdentifier, } from './read-parts';
|
|
4
|
+
import { writeContacts, writeContactsForResource, writeDefaultLanguage, writeKind, writeLandingPage, writeLineage, writeOnlineResources, writeOtherLanguages, writeRecordCreated, writeRecordPublished, writeRecordUpdated, writeResourceCreated, writeResourcePublished, writeResourceUpdated, writeReuseType, writeSpatialRepresentation, writeStatus, writeUniqueIdentifier, } from './write-parts';
|
|
5
5
|
export class Iso191153Converter extends Iso19139Converter {
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
@@ -18,6 +18,7 @@ export class Iso191153Converter extends Iso19139Converter {
|
|
|
18
18
|
this.readers['onlineResources'] = readOnlineResources;
|
|
19
19
|
this.readers['defaultLanguage'] = readDefaultLanguage;
|
|
20
20
|
this.readers['otherLanguages'] = readOtherLanguages;
|
|
21
|
+
this.readers['reuseType'] = readReuseType;
|
|
21
22
|
this.writers['uniqueIdentifier'] = writeUniqueIdentifier;
|
|
22
23
|
this.writers['kind'] = writeKind;
|
|
23
24
|
this.writers['recordUpdated'] = writeRecordUpdated;
|
|
@@ -26,6 +27,7 @@ export class Iso191153Converter extends Iso19139Converter {
|
|
|
26
27
|
this.writers['resourceUpdated'] = writeResourceUpdated;
|
|
27
28
|
this.writers['resourceCreated'] = writeResourceCreated;
|
|
28
29
|
this.writers['resourcePublished'] = writeResourcePublished;
|
|
30
|
+
this.writers['reuseType'] = writeReuseType;
|
|
29
31
|
this.writers['contacts'] = writeContacts;
|
|
30
32
|
this.writers['contactsForResource'] = writeContactsForResource;
|
|
31
33
|
this.writers['ownerOrganization'] = () => undefined; // fixme: find a way to store this value properly
|
|
@@ -124,4 +126,4 @@ export class Iso191153Converter extends Iso19139Converter {
|
|
|
124
126
|
return result;
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvMTkxMTUtMy5jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTExNS0zL2lzbzE5MTE1LTMuY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzdDLE9BQU8sRUFDTCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsZUFBZSxFQUNmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLFdBQVcsRUFDWCxxQkFBcUIsR0FDdEIsTUFBTSxlQUFlLENBQUE7QUFFdEIsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQUN2RDtRQUNFLEtBQUssRUFBRSxDQUFBO1FBRVAsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLG9CQUFvQixDQUFBO1FBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFBO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsZUFB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QUFtQjtZQUN4QywwQkFBMEIsRUFBRSwwQkFBMEI7WUFFdEQsbUJBQW1CO1lBQ25CLHlCQUF5QixFQUFFLHlCQUF5QjtZQUNwRCwrQkFBK0IsRUFBRSwrQkFBK0I7WUFDaEUscUNBQXFDLEVBQ25DLHFDQUFxQztZQUN2Qyx1QkFBdUIsRUFBRSx1QkFBdUI7WUFFaEQsY0FBYztZQUNkLHlCQUF5QixFQUFFLHlCQUF5QjtZQUNwRCxvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMseUJBQXlCLEVBQUUseUJBQXlCO1lBQ3BELDRCQUE0QixFQUFFLDRCQUE0QjtZQUMxRCxtQkFBbUIsRUFBRSxtQkFBbUI7WUFDeEMsb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLHVCQUF1QixFQUFFLHVCQUF1QjtZQUNoRCxzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMsd0JBQXdCLEVBQUUsd0JBQXdCO1lBQ2xELG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQywyQkFBMkIsRUFBRSwyQkFBMkI7WUFFeEQsWUFBWTtZQUNaLHFCQUFxQixFQUFFLHFCQUFxQjtZQUM1QyxzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMsY0FBYyxFQUFFLGNBQWM7WUFDOUIscUJBQXFCLEVBQUUscUJBQXFCO1lBRTVDLHVCQUF1QjtZQUN2QixTQUFTLEVBQUUscUJBQXFCO1NBQ2pDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLE1BQXFCLEVBQ3JCLFNBQWtCO1FBRWxCLElBQUksTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDdkQsd0VBQXdFO1FBQ3hFLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUNyQixvQ0FBb0MsRUFDcEMsaURBQWlELENBQ2xELENBQUE7UUFDRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBYbWxFbGVtZW50IH0gZnJvbSAnQHJncm92ZS9wYXJzZS14bWwnXG5pbXBvcnQgeyBJc28xOTEzOUNvbnZlcnRlciB9IGZyb20gJy4uL2lzbzE5MTM5J1xuaW1wb3J0IHsgcmVuYW1lRWxlbWVudHMgfSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQge1xuICByZWFkQ29udGFjdHMsXG4gIHJlYWRDb250YWN0c0ZvclJlc291cmNlLFxuICByZWFkRGVmYXVsdExhbmd1YWdlLFxuICByZWFkS2luZCxcbiAgcmVhZExhbmRpbmdQYWdlLFxuICByZWFkTGluZWFnZSxcbiAgcmVhZE9ubGluZVJlc291cmNlcyxcbiAgcmVhZE90aGVyTGFuZ3VhZ2VzLFxuICByZWFkT3duZXJPcmdhbml6YXRpb24sXG4gIHJlYWRSZWNvcmRDcmVhdGVkLFxuICByZWFkUmVjb3JkUHVibGlzaGVkLFxuICByZWFkUmVjb3JkVXBkYXRlZCxcbiAgcmVhZFVuaXF1ZUlkZW50aWZpZXIsXG59IGZyb20gJy4vcmVhZC1wYXJ0cydcbmltcG9ydCB7XG4gIHdyaXRlQ29udGFjdHMsXG4gIHdyaXRlQ29udGFjdHNGb3JSZXNvdXJjZSxcbiAgd3JpdGVEZWZhdWx0TGFuZ3VhZ2UsXG4gIHdyaXRlS2luZCxcbiAgd3JpdGVMYW5kaW5nUGFnZSxcbiAgd3JpdGVMaW5lYWdlLFxuICB3cml0ZU9ubGluZVJlc291cmNlcyxcbiAgd3JpdGVPdGhlckxhbmd1YWdlcyxcbiAgd3JpdGVSZWNvcmRDcmVhdGVkLFxuICB3cml0ZVJlY29yZFB1Ymxpc2hlZCxcbiAgd3JpdGVSZWNvcmRVcGRhdGVkLFxuICB3cml0ZVJlc291cmNlQ3JlYXRlZCxcbiAgd3JpdGVSZXNvdXJjZVB1Ymxpc2hlZCxcbiAgd3JpdGVSZXNvdXJjZVVwZGF0ZWQsXG4gIHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uLFxuICB3cml0ZVN0YXR1cyxcbiAgd3JpdGVVbmlxdWVJZGVudGlmaWVyLFxufSBmcm9tICcuL3dyaXRlLXBhcnRzJ1xuXG5leHBvcnQgY2xhc3MgSXNvMTkxMTUzQ29udmVydGVyIGV4dGVuZHMgSXNvMTkxMzlDb252ZXJ0ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLnJlYWRlcnNbJ3VuaXF1ZUlkZW50aWZpZXInXSA9IHJlYWRVbmlxdWVJZGVudGlmaWVyXG4gICAgdGhpcy5yZWFkZXJzWydraW5kJ10gPSByZWFkS2luZFxuICAgIHRoaXMucmVhZGVyc1sncmVjb3JkVXBkYXRlZCddID0gcmVhZFJlY29yZFVwZGF0ZWRcbiAgICB0aGlzLnJlYWRlcnNbJ3JlY29yZENyZWF0ZWQnXSA9IHJlYWRSZWNvcmRDcmVhdGVkXG4gICAgdGhpcy5yZWFkZXJzWydyZWNvcmRQdWJsaXNoZWQnXSA9IHJlYWRSZWNvcmRQdWJsaXNoZWRcbiAgICB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzJ10gPSByZWFkQ29udGFjdHNcbiAgICB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzRm9yUmVzb3VyY2UnXSA9IHJlYWRDb250YWN0c0ZvclJlc291cmNlXG4gICAgdGhpcy5yZWFkZXJzWydvd25lck9yZ2FuaXphdGlvbiddID0gcmVhZE93bmVyT3JnYW5pemF0aW9uXG4gICAgdGhpcy5yZWFkZXJzWydsYW5kaW5nUGFnZSddID0gcmVhZExhbmRpbmdQYWdlXG4gICAgdGhpcy5yZWFkZXJzWydsaW5lYWdlJ10gPSByZWFkTGluZWFnZVxuICAgIHRoaXMucmVhZGVyc1snb25saW5lUmVzb3VyY2VzJ10gPSByZWFkT25saW5lUmVzb3VyY2VzXG4gICAgdGhpcy5yZWFkZXJzWydkZWZhdWx0TGFuZ3VhZ2UnXSA9IHJlYWREZWZhdWx0TGFuZ3VhZ2VcbiAgICB0aGlzLnJlYWRlcnNbJ290aGVyTGFuZ3VhZ2VzJ10gPSByZWFkT3RoZXJMYW5ndWFnZXNcblxuICAgIHRoaXMud3JpdGVyc1sndW5pcXVlSWRlbnRpZmllciddID0gd3JpdGVVbmlxdWVJZGVudGlmaWVyXG4gICAgdGhpcy53cml0ZXJzWydraW5kJ10gPSB3cml0ZUtpbmRcbiAgICB0aGlzLndyaXRlcnNbJ3JlY29yZFVwZGF0ZWQnXSA9IHdyaXRlUmVjb3JkVXBkYXRlZFxuICAgIHRoaXMud3JpdGVyc1sncmVjb3JkQ3JlYXRlZCddID0gd3JpdGVSZWNvcmRDcmVhdGVkXG4gICAgdGhpcy53cml0ZXJzWydyZWNvcmRQdWJsaXNoZWQnXSA9IHdyaXRlUmVjb3JkUHVibGlzaGVkXG4gICAgdGhpcy53cml0ZXJzWydyZXNvdXJjZVVwZGF0ZWQnXSA9IHdyaXRlUmVzb3VyY2VVcGRhdGVkXG4gICAgdGhpcy53cml0ZXJzWydyZXNvdXJjZUNyZWF0ZWQnXSA9IHdyaXRlUmVzb3VyY2VDcmVhdGVkXG4gICAgdGhpcy53cml0ZXJzWydyZXNvdXJjZVB1Ymxpc2hlZCddID0gd3JpdGVSZXNvdXJjZVB1Ymxpc2hlZFxuICAgIHRoaXMud3JpdGVyc1snY29udGFjdHMnXSA9IHdyaXRlQ29udGFjdHNcbiAgICB0aGlzLndyaXRlcnNbJ2NvbnRhY3RzRm9yUmVzb3VyY2UnXSA9IHdyaXRlQ29udGFjdHNGb3JSZXNvdXJjZVxuICAgIHRoaXMud3JpdGVyc1snb3duZXJPcmdhbml6YXRpb24nXSA9ICgpID0+IHVuZGVmaW5lZCAvLyBmaXhtZTogZmluZCBhIHdheSB0byBzdG9yZSB0aGlzIHZhbHVlIHByb3Blcmx5XG4gICAgdGhpcy53cml0ZXJzWydsYW5kaW5nUGFnZSddID0gd3JpdGVMYW5kaW5nUGFnZVxuICAgIHRoaXMud3JpdGVyc1snbGluZWFnZSddID0gd3JpdGVMaW5lYWdlXG4gICAgdGhpcy53cml0ZXJzWydvbmxpbmVSZXNvdXJjZXMnXSA9IHdyaXRlT25saW5lUmVzb3VyY2VzXG4gICAgdGhpcy53cml0ZXJzWydzdGF0dXMnXSA9IHdyaXRlU3RhdHVzXG4gICAgdGhpcy53cml0ZXJzWydzcGF0aWFsUmVwcmVzZW50YXRpb24nXSA9IHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uXG4gICAgdGhpcy53cml0ZXJzWydkZWZhdWx0TGFuZ3VhZ2UnXSA9IHdyaXRlRGVmYXVsdExhbmd1YWdlXG4gICAgdGhpcy53cml0ZXJzWydvdGhlckxhbmd1YWdlcyddID0gd3JpdGVPdGhlckxhbmd1YWdlc1xuICB9XG5cbiAgYmVmb3JlRG9jdW1lbnRDcmVhdGlvbihyb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgICByZW5hbWVFbGVtZW50cyhyb290RWwsIHtcbiAgICAgIGdtZDogJ21kYicsXG4gICAgICAnZ21kOmNoYXJhY3RlckVuY29kaW5nJzogJ2xhbjpjaGFyYWN0ZXJFbmNvZGluZycsXG4gICAgICAnZ21kOk1EX0NoYXJhY3RlclNldENvZGUnOiAnbGFuOk1EX0NoYXJhY3RlclNldENvZGUnLFxuICAgICAgJ2dtZDpNRF9EYXRhSWRlbnRpZmljYXRpb24nOiAnbXJpOk1EX0RhdGFJZGVudGlmaWNhdGlvbicsXG4gICAgICAnZ21kOmNpdGF0aW9uJzogJ21yaTpjaXRhdGlvbicsXG4gICAgICAnZ21kOmFic3RyYWN0JzogJ21yaTphYnN0cmFjdCcsXG4gICAgICAnZ21kOnRpdGxlJzogJ2NpdDp0aXRsZScsXG4gICAgICAnZ21kOkNJX0NpdGF0aW9uJzogJ2NpdDpDSV9DaXRhdGlvbicsXG4gICAgICAnZ214OkFuY2hvcic6ICdnY3g6QW5jaG9yJyxcblxuICAgICAgLy8gbGFuZ3VhZ2VzXG4gICAgICAnZ21kOlBUX0xvY2FsZSc6ICdsYW46UFRfTG9jYWxlJyxcbiAgICAgICdnbWQ6UFRfRnJlZVRleHQnOiAnbGFuOlBUX0ZyZWVUZXh0JyxcbiAgICAgICdnbWQ6TGFuZ3VhZ2VDb2RlJzogJ2xhbjpMYW5ndWFnZUNvZGUnLFxuXG4gICAgICAvLyBzdGF0dXNcbiAgICAgICdnbWQ6c3RhdHVzJzogJ21yaTpzdGF0dXMnLFxuICAgICAgJ2dtZDpNRF9Qcm9ncmVzc0NvZGUnOiAnbXJpOk1EX1Byb2dyZXNzQ29kZScsXG5cbiAgICAgIC8vIGRhdGVzXG4gICAgICAnZ21kOmRhdGUnOiAnY2l0OmRhdGUnLFxuICAgICAgJ2dtZDpDSV9EYXRlJzogJ2NpdDpDSV9EYXRlJyxcbiAgICAgICdnbWQ6ZGF0ZVR5cGUnOiAnY2l0OmRhdGVUeXBlJyxcbiAgICAgICdnbWQ6Q0lfRGF0ZVR5cGVDb2RlJzogJ2NpdDpDSV9EYXRlVHlwZUNvZGUnLFxuXG4gICAgICAvLyBjb250YWN0c1xuICAgICAgJ2dtZDpDSV9SZXNwb25zaWJpbGl0eSc6ICdjaXQ6Q0lfUmVzcG9uc2liaWxpdHknLFxuICAgICAgJ2dtZDpyb2xlJzogJ2NpdDpyb2xlJyxcbiAgICAgICdnbWQ6Q0lfUm9sZUNvZGUnOiAnY2l0OkNJX1JvbGVDb2RlJyxcblxuICAgICAgLy8ga2V5d29yZHNcbiAgICAgICdnbWQ6ZGVzY3JpcHRpdmVLZXl3b3Jkcyc6ICdtcmk6ZGVzY3JpcHRpdmVLZXl3b3JkcycsXG4gICAgICAnZ21kOk1EX0tleXdvcmRzJzogJ21yaTpNRF9LZXl3b3JkcycsXG4gICAgICAnZ21kOnR5cGUnOiAnbXJpOnR5cGUnLFxuICAgICAgJ2dtZDpNRF9LZXl3b3JkVHlwZUNvZGUnOiAnbXJpOk1EX0tleXdvcmRUeXBlQ29kZScsXG4gICAgICAnZ21kOnRoZXNhdXJ1c05hbWUnOiAnbXJpOnRoZXNhdXJ1c05hbWUnLFxuICAgICAgJ2dtZDprZXl3b3JkJzogJ21yaTprZXl3b3JkJyxcbiAgICAgICdnbWQ6aWRlbnRpZmllcic6ICdjaXQ6aWRlbnRpZmllcicsXG4gICAgICAnZ21kOk1EX0lkZW50aWZpZXInOiAnbWNjOk1EX0lkZW50aWZpZXInLFxuICAgICAgJ2dtZDpjb2RlJzogJ21jYzpjb2RlJyxcblxuICAgICAgLy8gZGlzdHJpYnV0aW9uc1xuICAgICAgJ2dtZDpNRF9EaXN0cmlidXRpb24nOiAnbXJkOk1EX0Rpc3RyaWJ1dGlvbicsXG4gICAgICAnZ21kOnRyYW5zZmVyT3B0aW9ucyc6ICdtcmQ6dHJhbnNmZXJPcHRpb25zJyxcbiAgICAgICdnbWQ6TURfRGlnaXRhbFRyYW5zZmVyT3B0aW9ucyc6ICdtcmQ6TURfRGlnaXRhbFRyYW5zZmVyT3B0aW9ucycsXG4gICAgICAnZ21kOm9uTGluZSc6ICdtcmQ6b25MaW5lJyxcbiAgICAgICdnbWQ6ZGlzdHJpYnV0aW9uRm9ybWF0JzogJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnLFxuICAgICAgJ2dtZDpNRF9Gb3JtYXQnOiAnbXJkOk1EX0Zvcm1hdCcsXG4gICAgICAnZ21kOkNJX09ubGluZVJlc291cmNlJzogJ2NpdDpDSV9PbmxpbmVSZXNvdXJjZScsXG4gICAgICAnZ21kOmxpbmthZ2UnOiAnY2l0OmxpbmthZ2UnLFxuICAgICAgJ2dtZDpuYW1lJzogJ2NpdDpuYW1lJyxcbiAgICAgICdnbWQ6ZGVzY3JpcHRpb24nOiAnY2l0OmRlc2NyaXB0aW9uJyxcbiAgICAgICdnbWQ6Q0lfT25MaW5lRnVuY3Rpb25Db2RlJzogJ2NpdDpDSV9PbkxpbmVGdW5jdGlvbkNvZGUnLFxuICAgICAgJ2dtZDpmdW5jdGlvbic6ICdjaXQ6ZnVuY3Rpb24nLFxuICAgICAgJ2dtZDpwcm90b2NvbCc6ICdjaXQ6cHJvdG9jb2wnLFxuXG4gICAgICAvLyB0b3BpY1xuICAgICAgJ2dtZDp0b3BpY0NhdGVnb3J5JzogJ21yaTp0b3BpY0NhdGVnb3J5JyxcbiAgICAgICdnbWQ6TURfVG9waWNDYXRlZ29yeUNvZGUnOiAnbXJpOk1EX1RvcGljQ2F0ZWdvcnlDb2RlJyxcblxuICAgICAgLy8gdXBkYXRlIGZyZXF1ZW5jeVxuICAgICAgJ2dtZDpyZXNvdXJjZU1haW50ZW5hbmNlJzogJ21yaTpyZXNvdXJjZU1haW50ZW5hbmNlJyxcbiAgICAgICdnbWQ6TURfTWFpbnRlbmFuY2VJbmZvcm1hdGlvbic6ICdtbWk6TURfTWFpbnRlbmFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAnZ21kOnVzZXJEZWZpbmVkTWFpbnRlbmFuY2VGcmVxdWVuY3knOlxuICAgICAgICAnbW1pOnVzZXJEZWZpbmVkTWFpbnRlbmFuY2VGcmVxdWVuY3knLFxuICAgICAgJ2d0czpUTV9QZXJpb2REdXJhdGlvbic6ICdnY286VE1fUGVyaW9kRHVyYXRpb24nLFxuXG4gICAgICAvLyBjb25zdHJhaW50c1xuICAgICAgJ2dtZDpyZXNvdXJjZUNvbnN0cmFpbnRzJzogJ21yaTpyZXNvdXJjZUNvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6TURfQ29uc3RyYWludHMnOiAnbWNvOk1EX0NvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6TURfTGVnYWxDb25zdHJhaW50cyc6ICdtY286TURfTGVnYWxDb25zdHJhaW50cycsXG4gICAgICAnZ21kOk1EX1NlY3VyaXR5Q29uc3RyYWludHMnOiAnbWNvOk1EX1NlY3VyaXR5Q29uc3RyYWludHMnLFxuICAgICAgJ2dtZDp1c2VMaW1pdGF0aW9uJzogJ21jbzp1c2VMaW1pdGF0aW9uJyxcbiAgICAgICdnbWQ6dXNlQ29uc3RyYWludHMnOiAnbWNvOnVzZUNvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6YWNjZXNzQ29uc3RyYWludHMnOiAnbWNvOmFjY2Vzc0NvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6b3RoZXJDb25zdHJhaW50cyc6ICdtY286b3RoZXJDb25zdHJhaW50cycsXG4gICAgICAnZ21kOk1EX1Jlc3RyaWN0aW9uQ29kZSc6ICdtY286TURfUmVzdHJpY3Rpb25Db2RlJyxcbiAgICAgICdnbWQ6Y2xhc3NpZmljYXRpb24nOiAnbWNvOmNsYXNzaWZpY2F0aW9uJyxcbiAgICAgICdnbWQ6TURfQ2xhc3NpZmljYXRpb25Db2RlJzogJ21jbzpNRF9DbGFzc2lmaWNhdGlvbkNvZGUnLFxuXG4gICAgICAvLyBvdmVydmlld3NcbiAgICAgICdnbWQ6Z3JhcGhpY092ZXJ2aWV3JzogJ21yaTpncmFwaGljT3ZlcnZpZXcnLFxuICAgICAgJ2dtZDpNRF9Ccm93c2VHcmFwaGljJzogJ21jYzpNRF9Ccm93c2VHcmFwaGljJyxcbiAgICAgICdnbWQ6ZmlsZU5hbWUnOiAnbWNjOmZpbGVOYW1lJyxcbiAgICAgICdnbWQ6ZmlsZURlc2NyaXB0aW9uJzogJ21jYzpmaWxlRGVzY3JpcHRpb24nLFxuXG4gICAgICAvLyBubyBtb3JlIFVSTCBlbGVtZW50c1xuICAgICAgJ2dtZDpVUkwnOiAnZ2NvOkNoYXJhY3RlclN0cmluZycsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHdyaXRlUmVjb3JkKFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgICByZWZlcmVuY2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc3VwZXIud3JpdGVSZWNvcmQocmVjb3JkLCByZWZlcmVuY2UpXG4gICAgLy8gZml4IGdjbyBuYW1lc3BhY2UgZGVmaW5pdGlvbiAoY2hhbmdlcyBiZXR3ZWVuIGlzbzE5MTM5IGFuZCBpc28xOTExNS0zXG4gICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoXG4gICAgICAnXCJodHRwOi8vd3d3Lmlzb3RjMjExLm9yZy8yMDA1L2djb1wiJyxcbiAgICAgICdcImh0dHA6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvLTMvZ2NvLzEuMFwiJ1xuICAgIClcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvMTkxMTUtMy5jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTExNS0zL2lzbzE5MTE1LTMuY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzdDLE9BQU8sRUFDTCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsZUFBZSxFQUNmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isb0JBQW9CLEdBQ3JCLE1BQU0sY0FBYyxDQUFBO0FBQ3JCLE9BQU8sRUFDTCxhQUFhLEVBQ2Isd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQTtBQUV0QixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBQ3ZEO1FBQ0UsS0FBSyxFQUFFLENBQUE7UUFFUCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsb0JBQW9CLENBQUE7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxpQkFBaUIsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGlCQUFpQixDQUFBO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxtQkFBbUIsQ0FBQTtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFlBQVksQ0FBQTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsdUJBQXVCLENBQUE7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLHFCQUFxQixDQUFBO1FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsZUFBZSxDQUFBO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxtQkFBbUIsQ0FBQTtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsbUJBQW1CLENBQUE7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGtCQUFrQixDQUFBO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsYUFBYSxDQUFBO1FBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxxQkFBcUIsQ0FBQTtRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGtCQUFrQixDQUFBO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsa0JBQWtCLENBQUE7UUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFBO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQTtRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsb0JBQW9CLENBQUE7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLHNCQUFzQixDQUFBO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsY0FBYyxDQUFBO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsR0FBRyx3QkFBd0IsQ0FBQTtRQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBLENBQUMsaURBQWlEO1FBQ3JHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsZ0JBQWdCLENBQUE7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxZQUFZLENBQUE7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFBO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsR0FBRywwQkFBMEIsQ0FBQTtRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsb0JBQW9CLENBQUE7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLG1CQUFtQixDQUFBO0lBQ3RELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFrQjtRQUN2QyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ3JCLEdBQUcsRUFBRSxLQUFLO1lBQ1YsdUJBQXVCLEVBQUUsdUJBQXVCO1lBQ2hELHlCQUF5QixFQUFFLHlCQUF5QjtZQUNwRCwyQkFBMkIsRUFBRSwyQkFBMkI7WUFDeEQsY0FBYyxFQUFFLGNBQWM7WUFDOUIsY0FBYyxFQUFFLGNBQWM7WUFDOUIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsaUJBQWlCLEVBQUUsaUJBQWlCO1lBQ3BDLFlBQVksRUFBRSxZQUFZO1lBRTFCLFlBQVk7WUFDWixlQUFlLEVBQUUsZUFBZTtZQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsa0JBQWtCLEVBQUUsa0JBQWtCO1lBRXRDLFNBQVM7WUFDVCxZQUFZLEVBQUUsWUFBWTtZQUMxQixxQkFBcUIsRUFBRSxxQkFBcUI7WUFFNUMsUUFBUTtZQUNSLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGFBQWEsRUFBRSxhQUFhO1lBQzVCLGNBQWMsRUFBRSxjQUFjO1lBQzlCLHFCQUFxQixFQUFFLHFCQUFxQjtZQUU1QyxXQUFXO1lBQ1gsdUJBQXVCLEVBQUUsdUJBQXVCO1lBQ2hELFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGlCQUFpQixFQUFFLGlCQUFpQjtZQUVwQyxXQUFXO1lBQ1gseUJBQXlCLEVBQUUseUJBQXlCO1lBQ3BELGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxVQUFVLEVBQUUsVUFBVTtZQUN0Qix3QkFBd0IsRUFBRSx3QkFBd0I7WUFDbEQsbUJBQW1CLEVBQUUsbUJBQW1CO1lBQ3hDLGFBQWEsRUFBRSxhQUFhO1lBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxtQkFBbUIsRUFBRSxtQkFBbUI7WUFDeEMsVUFBVSxFQUFFLFVBQVU7WUFFdEIsZ0JBQWdCO1lBQ2hCLHFCQUFxQixFQUFFLHFCQUFxQjtZQUM1QyxxQkFBcUIsRUFBRSxxQkFBcUI7WUFDNUMsK0JBQStCLEVBQUUsK0JBQStCO1lBQ2hFLFlBQVksRUFBRSxZQUFZO1lBQzFCLHdCQUF3QixFQUFFLHdCQUF3QjtZQUNsRCxlQUFlLEVBQUUsZUFBZTtZQUNoQyx1QkFBdUIsRUFBRSx1QkFBdUI7WUFDaEQsYUFBYSxFQUFFLGFBQWE7WUFDNUIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsaUJBQWlCLEVBQUUsaUJBQWlCO1lBQ3BDLDJCQUEyQixFQUFFLDJCQUEyQjtZQUN4RCxjQUFjLEVBQUUsY0FBYztZQUM5QixjQUFjLEVBQUUsY0FBYztZQUU5QixRQUFRO1lBQ1IsbUJBQW1CLEVBQUUsbUJBQW1CO1lBQ3hDLDBCQUEwQixFQUFFLDBCQUEwQjtZQUV0RCxtQkFBbUI7WUFDbkIseUJBQXlCLEVBQUUseUJBQXlCO1lBQ3BELCtCQUErQixFQUFFLCtCQUErQjtZQUNoRSxxQ0FBcUMsRUFDbkMscUNBQXFDO1lBQ3ZDLHVCQUF1QixFQUFFLHVCQUF1QjtZQUVoRCxjQUFjO1lBQ2QseUJBQXlCLEVBQUUseUJBQXlCO1lBQ3BELG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyx5QkFBeUIsRUFBRSx5QkFBeUI7WUFDcEQsNEJBQTRCLEVBQUUsNEJBQTRCO1lBQzFELG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMsdUJBQXVCLEVBQUUsdUJBQXVCO1lBQ2hELHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5Qyx3QkFBd0IsRUFBRSx3QkFBd0I7WUFDbEQsb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLDJCQUEyQixFQUFFLDJCQUEyQjtZQUV4RCxZQUFZO1lBQ1oscUJBQXFCLEVBQUUscUJBQXFCO1lBQzVDLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxjQUFjLEVBQUUsY0FBYztZQUM5QixxQkFBcUIsRUFBRSxxQkFBcUI7WUFFNUMsdUJBQXVCO1lBQ3ZCLFNBQVMsRUFBRSxxQkFBcUI7U0FDakMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsTUFBcUIsRUFDckIsU0FBa0I7UUFFbEIsSUFBSSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUN2RCx3RUFBd0U7UUFDeEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ3JCLG9DQUFvQyxFQUNwQyxpREFBaUQsQ0FDbEQsQ0FBQTtRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFhtbEVsZW1lbnQgfSBmcm9tICdAcmdyb3ZlL3BhcnNlLXhtbCdcbmltcG9ydCB7IElzbzE5MTM5Q29udmVydGVyIH0gZnJvbSAnLi4vaXNvMTkxMzknXG5pbXBvcnQgeyByZW5hbWVFbGVtZW50cyB9IGZyb20gJy4uL3htbC11dGlscydcbmltcG9ydCB7XG4gIHJlYWRDb250YWN0cyxcbiAgcmVhZENvbnRhY3RzRm9yUmVzb3VyY2UsXG4gIHJlYWREZWZhdWx0TGFuZ3VhZ2UsXG4gIHJlYWRLaW5kLFxuICByZWFkTGFuZGluZ1BhZ2UsXG4gIHJlYWRMaW5lYWdlLFxuICByZWFkT25saW5lUmVzb3VyY2VzLFxuICByZWFkT3RoZXJMYW5ndWFnZXMsXG4gIHJlYWRPd25lck9yZ2FuaXphdGlvbixcbiAgcmVhZFJlY29yZENyZWF0ZWQsXG4gIHJlYWRSZWNvcmRQdWJsaXNoZWQsXG4gIHJlYWRSZWNvcmRVcGRhdGVkLFxuICByZWFkUmV1c2VUeXBlLFxuICByZWFkVW5pcXVlSWRlbnRpZmllcixcbn0gZnJvbSAnLi9yZWFkLXBhcnRzJ1xuaW1wb3J0IHtcbiAgd3JpdGVDb250YWN0cyxcbiAgd3JpdGVDb250YWN0c0ZvclJlc291cmNlLFxuICB3cml0ZURlZmF1bHRMYW5ndWFnZSxcbiAgd3JpdGVLaW5kLFxuICB3cml0ZUxhbmRpbmdQYWdlLFxuICB3cml0ZUxpbmVhZ2UsXG4gIHdyaXRlT25saW5lUmVzb3VyY2VzLFxuICB3cml0ZU90aGVyTGFuZ3VhZ2VzLFxuICB3cml0ZVJlY29yZENyZWF0ZWQsXG4gIHdyaXRlUmVjb3JkUHVibGlzaGVkLFxuICB3cml0ZVJlY29yZFVwZGF0ZWQsXG4gIHdyaXRlUmVzb3VyY2VDcmVhdGVkLFxuICB3cml0ZVJlc291cmNlUHVibGlzaGVkLFxuICB3cml0ZVJlc291cmNlVXBkYXRlZCxcbiAgd3JpdGVSZXVzZVR5cGUsXG4gIHdyaXRlU3BhdGlhbFJlcHJlc2VudGF0aW9uLFxuICB3cml0ZVN0YXR1cyxcbiAgd3JpdGVVbmlxdWVJZGVudGlmaWVyLFxufSBmcm9tICcuL3dyaXRlLXBhcnRzJ1xuXG5leHBvcnQgY2xhc3MgSXNvMTkxMTUzQ29udmVydGVyIGV4dGVuZHMgSXNvMTkxMzlDb252ZXJ0ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLnJlYWRlcnNbJ3VuaXF1ZUlkZW50aWZpZXInXSA9IHJlYWRVbmlxdWVJZGVudGlmaWVyXG4gICAgdGhpcy5yZWFkZXJzWydraW5kJ10gPSByZWFkS2luZFxuICAgIHRoaXMucmVhZGVyc1sncmVjb3JkVXBkYXRlZCddID0gcmVhZFJlY29yZFVwZGF0ZWRcbiAgICB0aGlzLnJlYWRlcnNbJ3JlY29yZENyZWF0ZWQnXSA9IHJlYWRSZWNvcmRDcmVhdGVkXG4gICAgdGhpcy5yZWFkZXJzWydyZWNvcmRQdWJsaXNoZWQnXSA9IHJlYWRSZWNvcmRQdWJsaXNoZWRcbiAgICB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzJ10gPSByZWFkQ29udGFjdHNcbiAgICB0aGlzLnJlYWRlcnNbJ2NvbnRhY3RzRm9yUmVzb3VyY2UnXSA9IHJlYWRDb250YWN0c0ZvclJlc291cmNlXG4gICAgdGhpcy5yZWFkZXJzWydvd25lck9yZ2FuaXphdGlvbiddID0gcmVhZE93bmVyT3JnYW5pemF0aW9uXG4gICAgdGhpcy5yZWFkZXJzWydsYW5kaW5nUGFnZSddID0gcmVhZExhbmRpbmdQYWdlXG4gICAgdGhpcy5yZWFkZXJzWydsaW5lYWdlJ10gPSByZWFkTGluZWFnZVxuICAgIHRoaXMucmVhZGVyc1snb25saW5lUmVzb3VyY2VzJ10gPSByZWFkT25saW5lUmVzb3VyY2VzXG4gICAgdGhpcy5yZWFkZXJzWydkZWZhdWx0TGFuZ3VhZ2UnXSA9IHJlYWREZWZhdWx0TGFuZ3VhZ2VcbiAgICB0aGlzLnJlYWRlcnNbJ290aGVyTGFuZ3VhZ2VzJ10gPSByZWFkT3RoZXJMYW5ndWFnZXNcbiAgICB0aGlzLnJlYWRlcnNbJ3JldXNlVHlwZSddID0gcmVhZFJldXNlVHlwZVxuXG4gICAgdGhpcy53cml0ZXJzWyd1bmlxdWVJZGVudGlmaWVyJ10gPSB3cml0ZVVuaXF1ZUlkZW50aWZpZXJcbiAgICB0aGlzLndyaXRlcnNbJ2tpbmQnXSA9IHdyaXRlS2luZFxuICAgIHRoaXMud3JpdGVyc1sncmVjb3JkVXBkYXRlZCddID0gd3JpdGVSZWNvcmRVcGRhdGVkXG4gICAgdGhpcy53cml0ZXJzWydyZWNvcmRDcmVhdGVkJ10gPSB3cml0ZVJlY29yZENyZWF0ZWRcbiAgICB0aGlzLndyaXRlcnNbJ3JlY29yZFB1Ymxpc2hlZCddID0gd3JpdGVSZWNvcmRQdWJsaXNoZWRcbiAgICB0aGlzLndyaXRlcnNbJ3Jlc291cmNlVXBkYXRlZCddID0gd3JpdGVSZXNvdXJjZVVwZGF0ZWRcbiAgICB0aGlzLndyaXRlcnNbJ3Jlc291cmNlQ3JlYXRlZCddID0gd3JpdGVSZXNvdXJjZUNyZWF0ZWRcbiAgICB0aGlzLndyaXRlcnNbJ3Jlc291cmNlUHVibGlzaGVkJ10gPSB3cml0ZVJlc291cmNlUHVibGlzaGVkXG4gICAgdGhpcy53cml0ZXJzWydyZXVzZVR5cGUnXSA9IHdyaXRlUmV1c2VUeXBlXG4gICAgdGhpcy53cml0ZXJzWydjb250YWN0cyddID0gd3JpdGVDb250YWN0c1xuICAgIHRoaXMud3JpdGVyc1snY29udGFjdHNGb3JSZXNvdXJjZSddID0gd3JpdGVDb250YWN0c0ZvclJlc291cmNlXG4gICAgdGhpcy53cml0ZXJzWydvd25lck9yZ2FuaXphdGlvbiddID0gKCkgPT4gdW5kZWZpbmVkIC8vIGZpeG1lOiBmaW5kIGEgd2F5IHRvIHN0b3JlIHRoaXMgdmFsdWUgcHJvcGVybHlcbiAgICB0aGlzLndyaXRlcnNbJ2xhbmRpbmdQYWdlJ10gPSB3cml0ZUxhbmRpbmdQYWdlXG4gICAgdGhpcy53cml0ZXJzWydsaW5lYWdlJ10gPSB3cml0ZUxpbmVhZ2VcbiAgICB0aGlzLndyaXRlcnNbJ29ubGluZVJlc291cmNlcyddID0gd3JpdGVPbmxpbmVSZXNvdXJjZXNcbiAgICB0aGlzLndyaXRlcnNbJ3N0YXR1cyddID0gd3JpdGVTdGF0dXNcbiAgICB0aGlzLndyaXRlcnNbJ3NwYXRpYWxSZXByZXNlbnRhdGlvbiddID0gd3JpdGVTcGF0aWFsUmVwcmVzZW50YXRpb25cbiAgICB0aGlzLndyaXRlcnNbJ2RlZmF1bHRMYW5ndWFnZSddID0gd3JpdGVEZWZhdWx0TGFuZ3VhZ2VcbiAgICB0aGlzLndyaXRlcnNbJ290aGVyTGFuZ3VhZ2VzJ10gPSB3cml0ZU90aGVyTGFuZ3VhZ2VzXG4gIH1cblxuICBiZWZvcmVEb2N1bWVudENyZWF0aW9uKHJvb3RFbDogWG1sRWxlbWVudCkge1xuICAgIHJlbmFtZUVsZW1lbnRzKHJvb3RFbCwge1xuICAgICAgZ21kOiAnbWRiJyxcbiAgICAgICdnbWQ6Y2hhcmFjdGVyRW5jb2RpbmcnOiAnbGFuOmNoYXJhY3RlckVuY29kaW5nJyxcbiAgICAgICdnbWQ6TURfQ2hhcmFjdGVyU2V0Q29kZSc6ICdsYW46TURfQ2hhcmFjdGVyU2V0Q29kZScsXG4gICAgICAnZ21kOk1EX0RhdGFJZGVudGlmaWNhdGlvbic6ICdtcmk6TURfRGF0YUlkZW50aWZpY2F0aW9uJyxcbiAgICAgICdnbWQ6Y2l0YXRpb24nOiAnbXJpOmNpdGF0aW9uJyxcbiAgICAgICdnbWQ6YWJzdHJhY3QnOiAnbXJpOmFic3RyYWN0JyxcbiAgICAgICdnbWQ6dGl0bGUnOiAnY2l0OnRpdGxlJyxcbiAgICAgICdnbWQ6Q0lfQ2l0YXRpb24nOiAnY2l0OkNJX0NpdGF0aW9uJyxcbiAgICAgICdnbXg6QW5jaG9yJzogJ2djeDpBbmNob3InLFxuXG4gICAgICAvLyBsYW5ndWFnZXNcbiAgICAgICdnbWQ6UFRfTG9jYWxlJzogJ2xhbjpQVF9Mb2NhbGUnLFxuICAgICAgJ2dtZDpQVF9GcmVlVGV4dCc6ICdsYW46UFRfRnJlZVRleHQnLFxuICAgICAgJ2dtZDpMYW5ndWFnZUNvZGUnOiAnbGFuOkxhbmd1YWdlQ29kZScsXG5cbiAgICAgIC8vIHN0YXR1c1xuICAgICAgJ2dtZDpzdGF0dXMnOiAnbXJpOnN0YXR1cycsXG4gICAgICAnZ21kOk1EX1Byb2dyZXNzQ29kZSc6ICdtcmk6TURfUHJvZ3Jlc3NDb2RlJyxcblxuICAgICAgLy8gZGF0ZXNcbiAgICAgICdnbWQ6ZGF0ZSc6ICdjaXQ6ZGF0ZScsXG4gICAgICAnZ21kOkNJX0RhdGUnOiAnY2l0OkNJX0RhdGUnLFxuICAgICAgJ2dtZDpkYXRlVHlwZSc6ICdjaXQ6ZGF0ZVR5cGUnLFxuICAgICAgJ2dtZDpDSV9EYXRlVHlwZUNvZGUnOiAnY2l0OkNJX0RhdGVUeXBlQ29kZScsXG5cbiAgICAgIC8vIGNvbnRhY3RzXG4gICAgICAnZ21kOkNJX1Jlc3BvbnNpYmlsaXR5JzogJ2NpdDpDSV9SZXNwb25zaWJpbGl0eScsXG4gICAgICAnZ21kOnJvbGUnOiAnY2l0OnJvbGUnLFxuICAgICAgJ2dtZDpDSV9Sb2xlQ29kZSc6ICdjaXQ6Q0lfUm9sZUNvZGUnLFxuXG4gICAgICAvLyBrZXl3b3Jkc1xuICAgICAgJ2dtZDpkZXNjcmlwdGl2ZUtleXdvcmRzJzogJ21yaTpkZXNjcmlwdGl2ZUtleXdvcmRzJyxcbiAgICAgICdnbWQ6TURfS2V5d29yZHMnOiAnbXJpOk1EX0tleXdvcmRzJyxcbiAgICAgICdnbWQ6dHlwZSc6ICdtcmk6dHlwZScsXG4gICAgICAnZ21kOk1EX0tleXdvcmRUeXBlQ29kZSc6ICdtcmk6TURfS2V5d29yZFR5cGVDb2RlJyxcbiAgICAgICdnbWQ6dGhlc2F1cnVzTmFtZSc6ICdtcmk6dGhlc2F1cnVzTmFtZScsXG4gICAgICAnZ21kOmtleXdvcmQnOiAnbXJpOmtleXdvcmQnLFxuICAgICAgJ2dtZDppZGVudGlmaWVyJzogJ2NpdDppZGVudGlmaWVyJyxcbiAgICAgICdnbWQ6TURfSWRlbnRpZmllcic6ICdtY2M6TURfSWRlbnRpZmllcicsXG4gICAgICAnZ21kOmNvZGUnOiAnbWNjOmNvZGUnLFxuXG4gICAgICAvLyBkaXN0cmlidXRpb25zXG4gICAgICAnZ21kOk1EX0Rpc3RyaWJ1dGlvbic6ICdtcmQ6TURfRGlzdHJpYnV0aW9uJyxcbiAgICAgICdnbWQ6dHJhbnNmZXJPcHRpb25zJzogJ21yZDp0cmFuc2Zlck9wdGlvbnMnLFxuICAgICAgJ2dtZDpNRF9EaWdpdGFsVHJhbnNmZXJPcHRpb25zJzogJ21yZDpNRF9EaWdpdGFsVHJhbnNmZXJPcHRpb25zJyxcbiAgICAgICdnbWQ6b25MaW5lJzogJ21yZDpvbkxpbmUnLFxuICAgICAgJ2dtZDpkaXN0cmlidXRpb25Gb3JtYXQnOiAnbXJkOmRpc3RyaWJ1dGlvbkZvcm1hdCcsXG4gICAgICAnZ21kOk1EX0Zvcm1hdCc6ICdtcmQ6TURfRm9ybWF0JyxcbiAgICAgICdnbWQ6Q0lfT25saW5lUmVzb3VyY2UnOiAnY2l0OkNJX09ubGluZVJlc291cmNlJyxcbiAgICAgICdnbWQ6bGlua2FnZSc6ICdjaXQ6bGlua2FnZScsXG4gICAgICAnZ21kOm5hbWUnOiAnY2l0Om5hbWUnLFxuICAgICAgJ2dtZDpkZXNjcmlwdGlvbic6ICdjaXQ6ZGVzY3JpcHRpb24nLFxuICAgICAgJ2dtZDpDSV9PbkxpbmVGdW5jdGlvbkNvZGUnOiAnY2l0OkNJX09uTGluZUZ1bmN0aW9uQ29kZScsXG4gICAgICAnZ21kOmZ1bmN0aW9uJzogJ2NpdDpmdW5jdGlvbicsXG4gICAgICAnZ21kOnByb3RvY29sJzogJ2NpdDpwcm90b2NvbCcsXG5cbiAgICAgIC8vIHRvcGljXG4gICAgICAnZ21kOnRvcGljQ2F0ZWdvcnknOiAnbXJpOnRvcGljQ2F0ZWdvcnknLFxuICAgICAgJ2dtZDpNRF9Ub3BpY0NhdGVnb3J5Q29kZSc6ICdtcmk6TURfVG9waWNDYXRlZ29yeUNvZGUnLFxuXG4gICAgICAvLyB1cGRhdGUgZnJlcXVlbmN5XG4gICAgICAnZ21kOnJlc291cmNlTWFpbnRlbmFuY2UnOiAnbXJpOnJlc291cmNlTWFpbnRlbmFuY2UnLFxuICAgICAgJ2dtZDpNRF9NYWludGVuYW5jZUluZm9ybWF0aW9uJzogJ21taTpNRF9NYWludGVuYW5jZUluZm9ybWF0aW9uJyxcbiAgICAgICdnbWQ6dXNlckRlZmluZWRNYWludGVuYW5jZUZyZXF1ZW5jeSc6XG4gICAgICAgICdtbWk6dXNlckRlZmluZWRNYWludGVuYW5jZUZyZXF1ZW5jeScsXG4gICAgICAnZ3RzOlRNX1BlcmlvZER1cmF0aW9uJzogJ2djbzpUTV9QZXJpb2REdXJhdGlvbicsXG5cbiAgICAgIC8vIGNvbnN0cmFpbnRzXG4gICAgICAnZ21kOnJlc291cmNlQ29uc3RyYWludHMnOiAnbXJpOnJlc291cmNlQ29uc3RyYWludHMnLFxuICAgICAgJ2dtZDpNRF9Db25zdHJhaW50cyc6ICdtY286TURfQ29uc3RyYWludHMnLFxuICAgICAgJ2dtZDpNRF9MZWdhbENvbnN0cmFpbnRzJzogJ21jbzpNRF9MZWdhbENvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6TURfU2VjdXJpdHlDb25zdHJhaW50cyc6ICdtY286TURfU2VjdXJpdHlDb25zdHJhaW50cycsXG4gICAgICAnZ21kOnVzZUxpbWl0YXRpb24nOiAnbWNvOnVzZUxpbWl0YXRpb24nLFxuICAgICAgJ2dtZDp1c2VDb25zdHJhaW50cyc6ICdtY286dXNlQ29uc3RyYWludHMnLFxuICAgICAgJ2dtZDphY2Nlc3NDb25zdHJhaW50cyc6ICdtY286YWNjZXNzQ29uc3RyYWludHMnLFxuICAgICAgJ2dtZDpvdGhlckNvbnN0cmFpbnRzJzogJ21jbzpvdGhlckNvbnN0cmFpbnRzJyxcbiAgICAgICdnbWQ6TURfUmVzdHJpY3Rpb25Db2RlJzogJ21jbzpNRF9SZXN0cmljdGlvbkNvZGUnLFxuICAgICAgJ2dtZDpjbGFzc2lmaWNhdGlvbic6ICdtY286Y2xhc3NpZmljYXRpb24nLFxuICAgICAgJ2dtZDpNRF9DbGFzc2lmaWNhdGlvbkNvZGUnOiAnbWNvOk1EX0NsYXNzaWZpY2F0aW9uQ29kZScsXG5cbiAgICAgIC8vIG92ZXJ2aWV3c1xuICAgICAgJ2dtZDpncmFwaGljT3ZlcnZpZXcnOiAnbXJpOmdyYXBoaWNPdmVydmlldycsXG4gICAgICAnZ21kOk1EX0Jyb3dzZUdyYXBoaWMnOiAnbWNjOk1EX0Jyb3dzZUdyYXBoaWMnLFxuICAgICAgJ2dtZDpmaWxlTmFtZSc6ICdtY2M6ZmlsZU5hbWUnLFxuICAgICAgJ2dtZDpmaWxlRGVzY3JpcHRpb24nOiAnbWNjOmZpbGVEZXNjcmlwdGlvbicsXG5cbiAgICAgIC8vIG5vIG1vcmUgVVJMIGVsZW1lbnRzXG4gICAgICAnZ21kOlVSTCc6ICdnY286Q2hhcmFjdGVyU3RyaW5nJyxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgd3JpdGVSZWNvcmQoXG4gICAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICAgIHJlZmVyZW5jZT86IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCByZXN1bHQgPSBhd2FpdCBzdXBlci53cml0ZVJlY29yZChyZWNvcmQsIHJlZmVyZW5jZSlcbiAgICAvLyBmaXggZ2NvIG5hbWVzcGFjZSBkZWZpbml0aW9uIChjaGFuZ2VzIGJldHdlZW4gaXNvMTkxMzkgYW5kIGlzbzE5MTE1LTNcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShcbiAgICAgICdcImh0dHA6Ly93d3cuaXNvdGMyMTEub3JnLzIwMDUvZ2NvXCInLFxuICAgICAgJ1wiaHR0cDovL3N0YW5kYXJkcy5pc28ub3JnL2lzby8xOTExNS8tMy9nY28vMS4wXCInXG4gICAgKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl19
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { findChildElement, findChildrenElement, findNestedElement, findNestedElements, findParent, readAttribute, } from '../xml-utils';
|
|
2
2
|
import { combine, filterArray, flattenArray, getAtIndex, map, mapArray, pipe, } from '../function-utils';
|
|
3
|
-
import { extractCharacterString, extractDatasetOnlineResources, extractDateTime, extractLocalizedCharacterString, extractRole, extractServiceOnlineResources, extractUrl, findIdentification, } from '../iso19139/read-parts';
|
|
3
|
+
import { extractCharacterString, extractDatasetOnlineResources, extractDateTime, extractLocalizedCharacterString, extractRole, extractServiceOnlineResources, extractReuseOnlineResources, extractUrl, findIdentification, } from '../iso19139/read-parts';
|
|
4
4
|
import { matchMimeType } from '../common/distribution.mapper';
|
|
5
5
|
import { fullNameToParts } from '../iso19139/utils/individual-name';
|
|
6
6
|
import { LANG_3_TO_2_MAPPER } from '../../../../../../libs/util/i18n/src/lib/language-codes';
|
|
7
|
+
import { getResourceType, getReuseType } from '../common/resource-types';
|
|
7
8
|
export function readKind(rootEl) {
|
|
8
|
-
return pipe(findNestedElement('mdb:metadataScope', 'mdb:MD_MetadataScope', 'mdb:resourceScope', 'mcc:MD_ScopeCode'), readAttribute('codeListValue'), map((scopeCode) => scopeCode
|
|
9
|
+
return pipe(findNestedElement('mdb:metadataScope', 'mdb:MD_MetadataScope', 'mdb:resourceScope', 'mcc:MD_ScopeCode'), readAttribute('codeListValue'), map((scopeCode) => getResourceType(scopeCode)))(rootEl);
|
|
9
10
|
}
|
|
10
11
|
export function findDistribution() {
|
|
11
12
|
return findNestedElement('mdb:distributionInfo', 'mrd:MD_Distribution');
|
|
@@ -113,12 +114,22 @@ export function readRecordCreated(rootEl) {
|
|
|
113
114
|
export function readRecordPublished(rootEl) {
|
|
114
115
|
return extractDateInfo('publication')(rootEl);
|
|
115
116
|
}
|
|
117
|
+
export function readReuseType(rootEl) {
|
|
118
|
+
return pipe(findNestedElement('mdb:metadataScope', 'mdb:MD_MetadataScope', 'mdb:resourceScope', 'mcc:MD_ScopeCode'), readAttribute('codeListValue'), map((scopeCode) => getReuseType(scopeCode)))(rootEl);
|
|
119
|
+
}
|
|
116
120
|
const getMimeType = pipe(findParent('mrd:MD_Distribution'), findNestedElement('mrd:distributionFormat', 'mrd:MD_Format', 'mrd:formatSpecificationCitation', 'cit:CI_Citation', 'cit:title'), extractCharacterString(), map(matchMimeType));
|
|
117
121
|
export function readOnlineResources(rootEl) {
|
|
122
|
+
let getOnlineResources;
|
|
118
123
|
if (readKind(rootEl) === 'dataset') {
|
|
119
|
-
|
|
124
|
+
getOnlineResources = extractDatasetOnlineResources(getMimeType);
|
|
125
|
+
}
|
|
126
|
+
else if (readKind(rootEl) === 'service') {
|
|
127
|
+
getOnlineResources = extractServiceOnlineResources();
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
getOnlineResources = extractReuseOnlineResources();
|
|
120
131
|
}
|
|
121
|
-
return pipe(findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'), mapArray(
|
|
132
|
+
return pipe(findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'), mapArray(getOnlineResources), flattenArray())(rootEl);
|
|
122
133
|
}
|
|
123
134
|
function readLocaleElement() {
|
|
124
135
|
return pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? LANG_3_TO_2_MAPPER[lang.toLowerCase()] : null)));
|
|
@@ -129,4 +140,4 @@ export function readDefaultLanguage(rootEl) {
|
|
|
129
140
|
export function readOtherLanguages(rootEl) {
|
|
130
141
|
return pipe(findChildrenElement('mdb:otherLocale', false), mapArray(readLocaleElement()))(rootEl);
|
|
131
142
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1wYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2lzbzE5MTE1LTMvcmVhZC1wYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixhQUFhLEdBRWQsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUVMLE9BQU8sRUFDUCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFVBQVUsRUFDVixHQUFHLEVBQ0gsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZiwrQkFBK0IsRUFDL0IsV0FBVyxFQUNYLDZCQUE2QixFQUM3QixVQUFVLEVBQ1Ysa0JBQWtCLEdBQ25CLE1BQU0sd0JBQXdCLENBQUE7QUFXL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUU1RixNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWtCO0lBQ3pDLE9BQU8sSUFBSSxDQUNULGlCQUFpQixDQUNmLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixDQUNuQixFQUNELGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFDOUIsR0FBRyxDQUNELENBQUMsU0FBUyxFQUFjLEVBQUUsQ0FDeEIsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ2xELENBQ0YsQ0FBQyxNQUFNLENB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LENBQUE7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWtCO0lBQ25ELE9BQU8sSUFBSSxDQUNULG1CQUFtQixDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxFQUM3QyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUM5QixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZpbmRDaGlsZEVsZW1lbnQsXG4gIGZpbmRDaGlsZHJlbkVsZW1lbnQsXG4gIGZpbmROZXN0ZWRFbGVtZW50LFxuICBmaW5kTmVzdGVkRWxlbWVudHMsXG4gIGZpbmRQYXJlbnQsXG4gIHJlYWRBdHRyaWJ1dGUsXG4gIFhtbEVsZW1lbnQsXG59IGZyb20gJy4uL3htbC11dGlscydcbmltcG9ydCB7XG4gIENoYWluYWJsZUZ1bmN0aW9uLFxuICBjb21iaW5lLFxuICBmaWx0ZXJBcnJheSxcbiAgZmxhdHRlbkFycmF5LFxuICBnZXRBdEluZGV4LFxuICBtYXAsXG4gIG1hcEFycmF5LFxuICBwaXBlLFxufSBmcm9tICcuLi9mdW5jdGlvbi11dGlscydcbmltcG9ydCB7XG4gIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcsXG4gIGV4dHJhY3REYXRhc2V0T25saW5lUmVzb3VyY2VzLFxuICBleHRyYWN0RGF0ZVRpbWUsXG4gIGV4dHJhY3RMb2NhbGl6ZWRDaGFyYWN0ZXJTdHJpbmcsXG4gIGV4dHJhY3RSb2xlLFxuICBleHRyYWN0U2VydmljZU9ubGluZVJlc291cmNlcyxcbiAgZXh0cmFjdFVybCxcbiAgZmluZElkZW50aWZpY2F0aW9uLFxufSBmcm9tICcuLi9pc28xOTEzOS9yZWFkLXBhcnRzJ1xuaW1wb3J0IHtcbiAgSW5kaXZpZHVhbCxcbiAgTGFuZ3VhZ2VDb2RlLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgT3JnYW5pemF0aW9uLFxuICBPcmdhbml6YXRpb25UcmFuc2xhdGlvbnMsXG4gIFJlY29yZEtpbmQsXG4gIFJlY29yZFRyYW5zbGF0aW9ucyxcbiAgUm9sZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgbWF0Y2hNaW1lVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9kaXN0cmlidXRpb24ubWFwcGVyJ1xuaW1wb3J0IHsgZnVsbE5hbWVUb1BhcnRzIH0gZnJvbSAnLi4vaXNvMTkxMzkvdXRpbHMvaW5kaXZpZHVhbC1uYW1lJ1xuaW1wb3J0IHsgTEFOR18zX1RPXzJfTUFQUEVSIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjL2xpYi9sYW5ndWFnZS1jb2RlcydcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRLaW5kKHJvb3RFbDogWG1sRWxlbWVudCk6IFJlY29yZEtpbmQge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICdtZGI6bWV0YWRhdGFTY29wZScsXG4gICAgICAnbWRiOk1EX01ldGFkYXRhU2NvcGUnLFxuICAgICAgJ21kYjpyZXNvdXJjZVNjb3BlJyxcbiAgICAgICdtY2M6TURfU2NvcGVDb2RlJ1xuICAgICksXG4gICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgIG1hcChcbiAgICAgIChzY29wZUNvZGUpOiBSZWNvcmRLaW5kID0+XG4gICAgICAgIHNjb3BlQ29kZSA9PT0gJ3NlcnZpY2UnID8gJ3NlcnZpY2UnIDogJ2RhdGFzZXQnXG4gICAgKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmREaXN0cmlidXRpb24oKSB7XG4gIHJldHVybiBmaW5kTmVzdGVkRWxlbWVudCgnbWRiOmRpc3RyaWJ1dGlvbkluZm8nLCAnbXJkOk1EX0Rpc3RyaWJ1dGlvbicpXG59XG5cbi8vIGZyb20gY2l0OkNJX09yZ2FuaXNhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RPcmdhbml6YXRpb24oKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIE9yZ2FuaXphdGlvblxuPiB7XG4gIGNvbnN0IGdldFVybCA9IHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKFxuICAgICAgJ2NpdDpjb250YWN0SW5mbycsXG4gICAgICAnY2l0OkNJX0NvbnRhY3QnLFxuICAgICAgJ2NpdDpvbmxpbmVSZXNvdXJjZScsXG4gICAgICAnY2l0OkNJX09ubGluZVJlc291cmNlJyxcbiAgICAgICdjaXQ6bGlua2FnZSdcbiAgICApLFxuICAgIGdldEF0SW5kZXgoMCksXG4gICAgZXh0cmFjdFVybCgpXG4gIClcbiAgcmV0dXJuIHBpcGUoXG4gICAgY29tYmluZShcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpuYW1lJywgZmFsc2UpLFxuICAgICAgICBleHRyYWN0TG9jYWxpemVkQ2hhcmFjdGVyU3RyaW5nPE9yZ2FuaXphdGlvblRyYW5zbGF0aW9ucz4oJ25hbWUnKVxuICAgICAgKSxcbiAgICAgIGdldFVybFxuICAgICksXG4gICAgbWFwKChbW25hbWUsIHRyYW5zbGF0aW9uc10sIHdlYnNpdGVdKSA9PiAoe1xuICAgICAgbmFtZSxcbiAgICAgIC4uLih3ZWJzaXRlICYmIHsgd2Vic2l0ZSB9KSxcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICB9KSlcbiAgKVxufVxuXG4vLyBmcm9tIGNpdDpDSV9JbmRpdmlkdWFsIG9yIGNpdDpDSV9PcmdhbmlzYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW5kaXZpZHVhbChcbiAgcm9sZTogUm9sZSxcbiAgb3JnYW5pemF0aW9uPzogT3JnYW5pemF0aW9uLFxuICBvcmdDb250YWN0PzogSW5kaXZpZHVhbFxuKTogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgSW5kaXZpZHVhbD4ge1xuICBjb25zdCBnZXRQb3NpdGlvbiA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnY2l0OnBvc2l0aW9uTmFtZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApXG4gIGNvbnN0IGdldE5hbWVQYXJ0cyA9IHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnY2l0Om5hbWUnKSxcbiAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCksXG4gICAgbWFwKChmdWxsTmFtZSkgPT4ge1xuICAgICAgaWYgKCFmdWxsTmFtZSkgcmV0dXJuIFtdXG4gICAgICByZXR1cm4gZnVsbE5hbWVUb1BhcnRzKGZ1bGxOYW1lKVxuICAgIH0pXG4gIClcbiAgY29uc3QgZ2V0Q29udGFjdCA9IGZpbmROZXN0ZWRFbGVtZW50KCdjaXQ6Y29udGFjdEluZm8nLCAnY2l0OkNJX0NvbnRhY3QnKVxuICBjb25zdCBnZXRBZGRyZXNzUm9vdCA9IHBpcGUoXG4gICAgZ2V0Q29udGFjdCxcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnY2l0OmFkZHJlc3MnLCAnY2l0OkNJX0FkZHJlc3MnKVxuICApXG4gIGNvbnN0IGdldEFkZHJlc3MgPSBwaXBlKFxuICAgIGdldEFkZHJlc3NSb290LFxuICAgIGNvbWJpbmUoXG4gICAgICBwaXBlKFxuICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6ZGVsaXZlcnlQb2ludCcsIGZhbHNlKSxcbiAgICAgICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICAgICApLFxuICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6Y2l0eScsIGZhbHNlKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKSxcbiAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnY2l0OnBvc3RhbENvZGUnLCBmYWxzZSksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSksXG4gICAgICBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpjb3VudHJ5JywgZmFsc2UpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpXG4gICAgKSxcbiAgICBtYXAoKHBhcnRzKSA9PiBwYXJ0cy5maWx0ZXIoKHApID0+ICEhcCkuam9pbignLCAnKSlcbiAgKVxuICBjb25zdCBnZXRQaG9uZSA9IHBpcGUoXG4gICAgZ2V0Q29udGFjdCxcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnY2l0OnBob25lJywgJ2NpdDpDSV9UZWxlcGhvbmUnLCAnY2l0Om51bWJlcicpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApXG4gIGNvbnN0IGdldEVtYWlsID0gcGlwZShcbiAgICBnZXRBZGRyZXNzUm9vdCxcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6ZWxlY3Ryb25pY01haWxBZGRyZXNzJywgZmFsc2UpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApXG4gIGNvbnN0IGRlZmF1bHRPcmc6IE9yZ2FuaXphdGlvbiA9IHtcbiAgICBuYW1lOiAnTWlzc2luZyBPcmdhbml6YXRpb24nLFxuICAgIHRyYW5zbGF0aW9uczoge30sXG4gIH1cblxuICBsZXQgZGVmYXVsdEluZGl2aWR1YWw6IFBhcnRpYWw8SW5kaXZpZHVhbD4gPSB7fVxuICBpZiAob3JnQ29udGFjdCkge1xuICAgIGRlZmF1bHRJbmRpdmlkdWFsID0ge1xuICAgICAgZW1haWw6IG9yZ0NvbnRhY3QuZW1haWwsXG4gICAgICAuLi4ob3JnQ29udGFjdC5hZGRyZXNzICYmIHsgYWRkcmVzczogb3JnQ29udGFjdC5hZGRyZXNzIH0pLFxuICAgICAgLi4uKG9yZ0NvbnRhY3QucGhvbmUgJiYgeyBwaG9uZTogb3JnQ29udGFjdC5waG9uZSB9KSxcbiAgICAgIC4uLihvcmdDb250YWN0LnBvc2l0aW9uICYmIHsgcG9zaXRpb246IG9yZ0NvbnRhY3QucG9zaXRpb24gfSksXG4gICAgICBvcmdhbml6YXRpb24sXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBpcGUoXG4gICAgY29tYmluZShnZXRQb3NpdGlvbiwgZ2V0TmFtZVBhcnRzLCBnZXRFbWFpbCwgZ2V0QWRkcmVzcywgZ2V0UGhvbmUpLFxuICAgIG1hcCgoW3Bvc2l0aW9uLCBbZmlyc3ROYW1lLCBsYXN0TmFtZV0sIGVtYWlsLCBhZGRyZXNzLCBwaG9uZV0pID0+ICh7XG4gICAgICAuLi5kZWZhdWx0SW5kaXZpZHVhbCxcbiAgICAgIGVtYWlsOiBlbWFpbCB8fCBkZWZhdWx0SW5kaXZpZHVhbC5lbWFpbCB8fCAnbWlzc2luZ0BtaXNzaW5nLmNvbScsXG4gICAgICByb2xlLFxuICAgICAgb3JnYW5pemF0aW9uOiBvcmdhbml6YXRpb24gfHwgZGVmYXVsdE9yZyxcbiAgICAgIC4uLihwb3NpdGlvbiAmJiB7IHBvc2l0aW9uIH0pLFxuICAgICAgLi4uKGZpcnN0TmFtZSAmJiB7IGZpcnN0TmFtZSB9KSxcbiAgICAgIC4uLihsYXN0TmFtZSAmJiB7IGxhc3ROYW1lIH0pLFxuICAgICAgLi4uKGFkZHJlc3MgJiYgeyBhZGRyZXNzIH0pLFxuICAgICAgLi4uKHBob25lICYmIHsgcGhvbmUgfSksXG4gICAgfSkpXG4gIClcbn1cblxuLy8gZnJvbSBjaXQ6Q0lfT3JnYW5pc2F0aW9uXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE9yZ2FuaXphdGlvbkluZGl2aWR1YWxzKFxuICByb2xlOiBSb2xlXG4pOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBBcnJheTxJbmRpdmlkdWFsPj4ge1xuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKFxuICAgICAgZXh0cmFjdE9yZ2FuaXphdGlvbigpLFxuICAgICAgZXh0cmFjdEluZGl2aWR1YWwocm9sZSksXG4gICAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2NpdDppbmRpdmlkdWFsJywgJ2NpdDpDSV9JbmRpdmlkdWFsJylcbiAgICApLFxuICAgIG1hcCgoW29yZywgb3JnQ29udGFjdCwgZWxzXSkgPT5cbiAgICAgIGVscy5sZW5ndGhcbiAgICAgICAgPyBlbHMubWFwKChlbCkgPT4gZXh0cmFjdEluZGl2aWR1YWwocm9sZSwgb3JnLCBvcmdDb250YWN0KShlbCkpXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlbWFpbDogb3JnQ29udGFjdC5lbWFpbCxcbiAgICAgICAgICAgICAgLi4uKG9yZ0NvbnRhY3QuYWRkcmVzcyAmJiB7IGFkZHJlc3M6IG9yZ0NvbnRhY3QuYWRkcmVzcyB9KSxcbiAgICAgICAgICAgICAgLi4uKG9yZ0NvbnRhY3QucGhvbmUgJiYgeyBwaG9uZTogb3JnQ29udGFjdC5waG9uZSB9KSxcbiAgICAgICAgICAgICAgLi4uKG9yZ0NvbnRhY3QucG9zaXRpb24gJiYgeyBwb3NpdGlvbjogb3JnQ29udGFjdC5wb3NpdGlvbiB9KSxcbiAgICAgICAgICAgICAgb3JnYW5pemF0aW9uOiBvcmcsXG4gICAgICAgICAgICAgIHJvbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICApXG4gIClcbn1cblxuLy8gZnJvbSBjaXQ6Q0lfUmVzcG9uc2liaWxpdHlcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW5kaXZpZHVhbHMoKTogQ2hhaW5hYmxlRnVuY3Rpb248XG4gIFhtbEVsZW1lbnQsXG4gIEFycmF5PEluZGl2aWR1YWw+XG4+IHtcbiAgY29uc3QgZ2V0Um9sZSA9IHBpcGUoZmluZENoaWxkRWxlbWVudCgnY2l0OnJvbGUnKSwgZXh0cmFjdFJvbGUoKSlcbiAgY29uc3QgZ2V0SW5kaXZpZHVhbHMgPSBwaXBlKFxuICAgIGNvbWJpbmUoZ2V0Um9sZSwgZmluZE5lc3RlZEVsZW1lbnRzKCdjaXQ6cGFydHknLCAnY2l0OkNJX0luZGl2aWR1YWwnKSksXG4gICAgKFtyb2xlLCBlbHNdKSA9PiBlbHMubWFwKGV4dHJhY3RJbmRpdmlkdWFsKHJvbGUpKVxuICApXG4gIGNvbnN0IGdldE9yZ0luZGl2aWR1YWxzID0gcGlwZShcbiAgICBjb21iaW5lKGdldFJvbGUsIGZpbmROZXN0ZWRFbGVtZW50cygnY2l0OnBhcnR5JywgJ2NpdDpDSV9PcmdhbmlzYXRpb24nKSksXG4gICAgbWFwKChbcm9sZSwgZWxzXSkgPT4gZWxzLm1hcChleHRyYWN0T3JnYW5pemF0aW9uSW5kaXZpZHVhbHMocm9sZSkpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApXG5cbiAgcmV0dXJuIHBpcGUoY29tYmluZShnZXRJbmRpdmlkdWFscywgZ2V0T3JnSW5kaXZpZHVhbHMpLCBmbGF0dGVuQXJyYXkoKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVbmlxdWVJZGVudGlmaWVyKHJvb3RFbDogWG1sRWxlbWVudCk6IHN0cmluZyB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KFxuICAgICAgJ21kYjptZXRhZGF0YUlkZW50aWZpZXInLFxuICAgICAgJ21jYzpNRF9JZGVudGlmaWVyJyxcbiAgICAgICdtY2M6Y29kZSdcbiAgICApLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPd25lck9yZ2FuaXphdGlvbihyb290RWw6IFhtbEVsZW1lbnQpOiBPcmdhbml6YXRpb24ge1xuICBjb25zdCBjb250YWN0cyA9IHJlYWRDb250YWN0cyhyb290RWwpXG4gIGNvbnN0IGNvbnRhY3RzRm9yUmVzb3VyY2UgPSByZWFkQ29udGFjdHNGb3JSZXNvdXJjZShyb290RWwpXG4gIGNvbnN0IHBvaW50T2ZDb250YWN0ID0gY29udGFjdHMuZmlsdGVyKFxuICAgIChjKSA9PiBjLnJvbGUgPT09ICdwb2ludF9vZl9jb250YWN0J1xuICApWzBdXG4gIHJldHVybiAocG9pbnRPZkNvbnRhY3QgfHwgY29udGFjdHNbMF0gfHwgY29udGFjdHNGb3JSZXNvdXJjZVswXSkub3JnYW5pemF0aW9uXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29udGFjdHMocm9vdEVsOiBYbWxFbGVtZW50KTogSW5kaXZpZHVhbFtdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdtZGI6Y29udGFjdCcsICdjaXQ6Q0lfUmVzcG9uc2liaWxpdHknKSxcbiAgICBtYXBBcnJheShleHRyYWN0SW5kaXZpZHVhbHMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29udGFjdHNGb3JSZXNvdXJjZShyb290RWw6IFhtbEVsZW1lbnQpOiBJbmRpdmlkdWFsW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgICAgIGZpbmROZXN0ZWRFbGVtZW50cyhcbiAgICAgICAgICAnbXJpOmNpdGF0aW9uJyxcbiAgICAgICAgICAnY2l0OkNJX0NpdGF0aW9uJyxcbiAgICAgICAgICAnY2l0OmNpdGVkUmVzcG9uc2libGVQYXJ0eSdcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRJZGVudGlmaWNhdGlvbigpLFxuICAgICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtcmk6cG9pbnRPZkNvbnRhY3QnLCBmYWxzZSlcbiAgICAgICksXG4gICAgICBwaXBlKGZpbmREaXN0cmlidXRpb24oKSwgZmluZENoaWxkcmVuRWxlbWVudCgnbXJkOmRpc3RyaWJ1dG9yQ29udGFjdCcpKVxuICAgICksXG4gICAgZmxhdHRlbkFycmF5KCksXG4gICAgbWFwQXJyYXkoZmluZENoaWxkRWxlbWVudCgnY2l0OkNJX1Jlc3BvbnNpYmlsaXR5JywgZmFsc2UpKSxcbiAgICBtYXBBcnJheShleHRyYWN0SW5kaXZpZHVhbHMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkTGFuZGluZ1BhZ2Uocm9vdEVsOiBYbWxFbGVtZW50KTogVVJMIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAnbWRiOm1ldGFkYXRhTGlua2FnZScsXG4gICAgICAnY2l0OkNJX09ubGluZVJlc291cmNlJyxcbiAgICAgICdjaXQ6bGlua2FnZSdcbiAgICApLFxuICAgIGV4dHJhY3RVcmwoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMaW5lYWdlKFxuICByb290RWw6IFhtbEVsZW1lbnQsXG4gIHRyYW5zbGF0aW9uczogUmVjb3JkVHJhbnNsYXRpb25zXG4pOiBzdHJpbmcge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudCgnbWRiOnJlc291cmNlTGluZWFnZScsICdtcmw6TElfTGluZWFnZScsICdtcmw6c3RhdGVtZW50JyksXG4gICAgZXh0cmFjdExvY2FsaXplZENoYXJhY3RlclN0cmluZygnbGluZWFnZScsIHRyYW5zbGF0aW9ucyksXG4gICAgbWFwKChbbGluZWFnZV0pID0+IGxpbmVhZ2UpXG4gICkocm9vdEVsKVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RGF0ZUluZm8oXG4gIHR5cGU6ICdjcmVhdGlvbicgfCAncmV2aXNpb24nIHwgJ3B1YmxpY2F0aW9uJ1xuKTogQ2hhaW5hYmxlRnVuY3Rpb248WG1sRWxlbWVudCwgRGF0ZT4ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtZGI6ZGF0ZUluZm8nLCBmYWxzZSksXG4gICAgZmlsdGVyQXJyYXkoXG4gICAgICAoZWwpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnY2l0OkNJX0RhdGVUeXBlQ29kZScpLFxuICAgICAgICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKVxuICAgICAgICApKGVsKSA9PT0gdHlwZVxuICAgICksXG4gICAgZ2V0QXRJbmRleCgwKSxcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6ZGF0ZScpLFxuICAgIGV4dHJhY3REYXRlVGltZSgpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRVcGRhdGVkKHJvb3RFbDogWG1sRWxlbWVudCk6IERhdGUge1xuICByZXR1cm4gZXh0cmFjdERhdGVJbmZvKCdyZXZpc2lvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRDcmVhdGVkKHJvb3RFbDogWG1sRWxlbWVudCk6IERhdGUge1xuICByZXR1cm4gZXh0cmFjdERhdGVJbmZvKCdjcmVhdGlvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRQdWJsaXNoZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBleHRyYWN0RGF0ZUluZm8oJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5jb25zdCBnZXRNaW1lVHlwZSA9IHBpcGUoXG4gIGZpbmRQYXJlbnQoJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnLFxuICAgICdtcmQ6TURfRm9ybWF0JyxcbiAgICAnbXJkOmZvcm1hdFNwZWNpZmljYXRpb25DaXRhdGlvbicsXG4gICAgJ2NpdDpDSV9DaXRhdGlvbicsXG4gICAgJ2NpdDp0aXRsZSdcbiAgKSxcbiAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpLFxuICBtYXAobWF0Y2hNaW1lVHlwZSlcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPbmxpbmVSZXNvdXJjZXMocm9vdEVsOiBYbWxFbGVtZW50KTogT25saW5lUmVzb3VyY2VbXSB7XG4gIGlmIChyZWFkS2luZChyb290RWwpID09PSAnZGF0YXNldCcpIHtcbiAgICByZXR1cm4gcGlwZShcbiAgICAgIGZpbmROZXN0ZWRFbGVtZW50cygnbXJkOmRpc3RyaWJ1dGlvbkluZm8nLCAnbXJkOk1EX0Rpc3RyaWJ1dGlvbicpLFxuICAgICAgbWFwQXJyYXkoZXh0cmFjdERhdGFzZXRPbmxpbmVSZXNvdXJjZXMoZ2V0TWltZVR5cGUpKSxcbiAgICAgIGZsYXR0ZW5BcnJheSgpXG4gICAgKShyb290RWwpXG4gIH1cbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnRzKCdtcmQ6ZGlzdHJpYnV0aW9uSW5mbycsICdtcmQ6TURfRGlzdHJpYnV0aW9uJyksXG4gICAgbWFwQXJyYXkoZXh0cmFjdFNlcnZpY2VPbmxpbmVSZXNvdXJjZXMoKSksXG4gICAgZmxhdHRlbkFycmF5KClcbiAgKShyb290RWwpXG59XG5cbmZ1bmN0aW9uIHJlYWRMb2NhbGVFbGVtZW50KCk6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIExhbmd1YWdlQ29kZT4ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdsYW46TGFuZ3VhZ2VDb2RlJyksXG4gICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgIG1hcCgobGFuZykgPT4gKGxhbmcgPyBMQU5HXzNfVE9fMl9NQVBQRVJbbGFuZy50b0xvd2VyQ2FzZSgpXSA6IG51bGwpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRGVmYXVsdExhbmd1YWdlKHJvb3RFbDogWG1sRWxlbWVudCk6IExhbmd1YWdlQ29kZSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ21kYjpkZWZhdWx0TG9jYWxlJywgZmFsc2UpLFxuICAgIHJlYWRMb2NhbGVFbGVtZW50KClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT3RoZXJMYW5ndWFnZXMocm9vdEVsOiBYbWxFbGVtZW50KTogTGFuZ3VhZ2VDb2RlW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtZGI6b3RoZXJMb2NhbGUnLCBmYWxzZSksXG4gICAgbWFwQXJyYXkocmVhZExvY2FsZUVsZW1lbnQoKSlcbiAgKShyb290RWwpXG59XG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1wYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2lzbzE5MTE1LTMvcmVhZC1wYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixhQUFhLEdBRWQsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUVMLE9BQU8sRUFDUCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFVBQVUsRUFDVixHQUFHLEVBQ0gsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZiwrQkFBK0IsRUFDL0IsV0FBVyxFQUNYLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLHdCQUF3QixDQUFBO0FBWS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV4RSxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWtCO0lBQ3pDLE9BQU8sSUFBSSxDQUNULGlCQUFpQixDQUNmLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixDQUNuQixFQUNELGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFDOUIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFjLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FB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QUVELFNBQVMsaUJBQWlCO0lBQ3hCLE9BQU8sSUFBSSxDQUNULGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLEVBQ3BDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFDOUIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3RFLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE1BQWtCO0lBQ3BELE9BQU8sSUFBSSxDQUNULGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxFQUM1QyxpQkFBaUIsRUFBRSxDQUNwQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFrQjtJQUNuRCxPQUFPLElBQUksQ0FDVCxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsRUFDN0MsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FDOUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmaW5kQ2hpbGRFbGVtZW50LFxuICBmaW5kQ2hpbGRyZW5FbGVtZW50LFxuICBmaW5kTmVzdGVkRWxlbWVudCxcbiAgZmluZE5lc3RlZEVsZW1lbnRzLFxuICBmaW5kUGFyZW50LFxuICByZWFkQXR0cmlidXRlLFxuICBYbWxFbGVtZW50LFxufSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQge1xuICBDaGFpbmFibGVGdW5jdGlvbixcbiAgY29tYmluZSxcbiAgZmlsdGVyQXJyYXksXG4gIGZsYXR0ZW5BcnJheSxcbiAgZ2V0QXRJbmRleCxcbiAgbWFwLFxuICBtYXBBcnJheSxcbiAgcGlwZSxcbn0gZnJvbSAnLi4vZnVuY3Rpb24tdXRpbHMnXG5pbXBvcnQge1xuICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nLFxuICBleHRyYWN0RGF0YXNldE9ubGluZVJlc291cmNlcyxcbiAgZXh0cmFjdERhdGVUaW1lLFxuICBleHRyYWN0TG9jYWxpemVkQ2hhcmFjdGVyU3RyaW5nLFxuICBleHRyYWN0Um9sZSxcbiAgZXh0cmFjdFNlcnZpY2VPbmxpbmVSZXNvdXJjZXMsXG4gIGV4dHJhY3RSZXVzZU9ubGluZVJlc291cmNlcyxcbiAgZXh0cmFjdFVybCxcbiAgZmluZElkZW50aWZpY2F0aW9uLFxufSBmcm9tICcuLi9pc28xOTEzOS9yZWFkLXBhcnRzJ1xuaW1wb3J0IHtcbiAgSW5kaXZpZHVhbCxcbiAgTGFuZ3VhZ2VDb2RlLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgT3JnYW5pemF0aW9uLFxuICBPcmdhbml6YXRpb25UcmFuc2xhdGlvbnMsXG4gIFJlY29yZEtpbmQsXG4gIFJlY29yZFRyYW5zbGF0aW9ucyxcbiAgUmV1c2VUeXBlLFxuICBSb2xlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBtYXRjaE1pbWVUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2Rpc3RyaWJ1dGlvbi5tYXBwZXInXG5pbXBvcnQgeyBmdWxsTmFtZVRvUGFydHMgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9pbmRpdmlkdWFsLW5hbWUnXG5pbXBvcnQgeyBMQU5HXzNfVE9fMl9NQVBQRVIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvbGliL2xhbmd1YWdlLWNvZGVzJ1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VUeXBlLCBnZXRSZXVzZVR5cGUgfSBmcm9tICcuLi9jb21tb24vcmVzb3VyY2UtdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkS2luZChyb290RWw6IFhtbEVsZW1lbnQpOiBSZWNvcmRLaW5kIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAnbWRiOm1ldGFkYXRhU2NvcGUnLFxuICAgICAgJ21kYjpNRF9NZXRhZGF0YVNjb3BlJyxcbiAgICAgICdtZGI6cmVzb3VyY2VTY29wZScsXG4gICAgICAnbWNjOk1EX1Njb3BlQ29kZSdcbiAgICApLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICBtYXAoKHNjb3BlQ29kZSk6IFJlY29yZEtpbmQgPT4gZ2V0UmVzb3VyY2VUeXBlKHNjb3BlQ29kZSkpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZERpc3RyaWJ1dGlvbigpIHtcbiAgcmV0dXJuIGZpbmROZXN0ZWRFbGVtZW50KCdtZGI6ZGlzdHJpYnV0aW9uSW5mbycsICdtcmQ6TURfRGlzdHJpYnV0aW9uJylcbn1cblxuLy8gZnJvbSBjaXQ6Q0lfT3JnYW5pc2F0aW9uXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE9yZ2FuaXphdGlvbigpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgT3JnYW5pemF0aW9uXG4+IHtcbiAgY29uc3QgZ2V0VXJsID0gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoXG4gICAgICAnY2l0OmNvbnRhY3RJbmZvJyxcbiAgICAgICdjaXQ6Q0lfQ29udGFjdCcsXG4gICAgICAnY2l0Om9ubGluZVJlc291cmNlJyxcbiAgICAgICdjaXQ6Q0lfT25saW5lUmVzb3VyY2UnLFxuICAgICAgJ2NpdDpsaW5rYWdlJ1xuICAgICksXG4gICAgZ2V0QXRJbmRleCgwKSxcbiAgICBleHRyYWN0VXJsKClcbiAgKVxuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZENoaWxkRWxlbWVudCgnY2l0Om5hbWUnLCBmYWxzZSksXG4gICAgICAgIGV4dHJhY3RMb2NhbGl6ZWRDaGFyYWN0ZXJTdHJpbmc8T3JnYW5pemF0aW9uVHJhbnNsYXRpb25zPignbmFtZScpXG4gICAgICApLFxuICAgICAgZ2V0VXJsXG4gICAgKSxcbiAgICBtYXAoKFtbbmFtZSwgdHJhbnNsYXRpb25zXSwgd2Vic2l0ZV0pID0+ICh7XG4gICAgICBuYW1lLFxuICAgICAgLi4uKHdlYnNpdGUgJiYgeyB3ZWJzaXRlIH0pLFxuICAgICAgdHJhbnNsYXRpb25zLFxuICAgIH0pKVxuICApXG59XG5cbi8vIGZyb20gY2l0OkNJX0luZGl2aWR1YWwgb3IgY2l0OkNJX09yZ2FuaXNhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmRpdmlkdWFsKFxuICByb2xlOiBSb2xlLFxuICBvcmdhbml6YXRpb24/OiBPcmdhbml6YXRpb24sXG4gIG9yZ0NvbnRhY3Q/OiBJbmRpdmlkdWFsXG4pOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBJbmRpdmlkdWFsPiB7XG4gIGNvbnN0IGdldFBvc2l0aW9uID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6cG9zaXRpb25OYW1lJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZ2V0TmFtZVBhcnRzID0gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6bmFtZScpLFxuICAgIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSxcbiAgICBtYXAoKGZ1bGxOYW1lKSA9PiB7XG4gICAgICBpZiAoIWZ1bGxOYW1lKSByZXR1cm4gW11cbiAgICAgIHJldHVybiBmdWxsTmFtZVRvUGFydHMoZnVsbE5hbWUpXG4gICAgfSlcbiAgKVxuICBjb25zdCBnZXRDb250YWN0ID0gZmluZE5lc3RlZEVsZW1lbnQoJ2NpdDpjb250YWN0SW5mbycsICdjaXQ6Q0lfQ29udGFjdCcpXG4gIGNvbnN0IGdldEFkZHJlc3NSb290ID0gcGlwZShcbiAgICBnZXRDb250YWN0LFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdjaXQ6YWRkcmVzcycsICdjaXQ6Q0lfQWRkcmVzcycpXG4gIClcbiAgY29uc3QgZ2V0QWRkcmVzcyA9IHBpcGUoXG4gICAgZ2V0QWRkcmVzc1Jvb3QsXG4gICAgY29tYmluZShcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpkZWxpdmVyeVBvaW50JywgZmFsc2UpLFxuICAgICAgICBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKClcbiAgICAgICksXG4gICAgICBwaXBlKGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpjaXR5JywgZmFsc2UpLCBleHRyYWN0Q2hhcmFjdGVyU3RyaW5nKCkpLFxuICAgICAgcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6cG9zdGFsQ29kZScsIGZhbHNlKSwgZXh0cmFjdENoYXJhY3RlclN0cmluZygpKSxcbiAgICAgIHBpcGUoZmluZENoaWxkRWxlbWVudCgnY2l0OmNvdW50cnknLCBmYWxzZSksIGV4dHJhY3RDaGFyYWN0ZXJTdHJpbmcoKSlcbiAgICApLFxuICAgIG1hcCgocGFydHMpID0+IHBhcnRzLmZpbHRlcigocCkgPT4gISFwKS5qb2luKCcsICcpKVxuICApXG4gIGNvbnN0IGdldFBob25lID0gcGlwZShcbiAgICBnZXRDb250YWN0LFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdjaXQ6cGhvbmUnLCAnY2l0OkNJX1RlbGVwaG9uZScsICdjaXQ6bnVtYmVyJyksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZ2V0RW1haWwgPSBwaXBlKFxuICAgIGdldEFkZHJlc3NSb290LFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDplbGVjdHJvbmljTWFpbEFkZHJlc3MnLCBmYWxzZSksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gIClcbiAgY29uc3QgZGVmYXVsdE9yZzogT3JnYW5pemF0aW9uID0ge1xuICAgIG5hbWU6ICdNaXNzaW5nIE9yZ2FuaXphdGlvbicsXG4gICAgdHJhbnNsYXRpb25zOiB7fSxcbiAgfVxuXG4gIGxldCBkZWZhdWx0SW5kaXZpZHVhbDogUGFydGlhbDxJbmRpdmlkdWFsPiA9IHt9XG4gIGlmIChvcmdDb250YWN0KSB7XG4gICAgZGVmYXVsdEluZGl2aWR1YWwgPSB7XG4gICAgICBlbWFpbDogb3JnQ29udGFjdC5lbWFpbCxcbiAgICAgIC4uLihvcmdDb250YWN0LmFkZHJlc3MgJiYgeyBhZGRyZXNzOiBvcmdDb250YWN0LmFkZHJlc3MgfSksXG4gICAgICAuLi4ob3JnQ29udGFjdC5waG9uZSAmJiB7IHBob25lOiBvcmdDb250YWN0LnBob25lIH0pLFxuICAgICAgLi4uKG9yZ0NvbnRhY3QucG9zaXRpb24gJiYgeyBwb3NpdGlvbjogb3JnQ29udGFjdC5wb3NpdGlvbiB9KSxcbiAgICAgIG9yZ2FuaXphdGlvbixcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGlwZShcbiAgICBjb21iaW5lKGdldFBvc2l0aW9uLCBnZXROYW1lUGFydHMsIGdldEVtYWlsLCBnZXRBZGRyZXNzLCBnZXRQaG9uZSksXG4gICAgbWFwKChbcG9zaXRpb24sIFtmaXJzdE5hbWUsIGxhc3ROYW1lXSwgZW1haWwsIGFkZHJlc3MsIHBob25lXSkgPT4gKHtcbiAgICAgIC4uLmRlZmF1bHRJbmRpdmlkdWFsLFxuICAgICAgZW1haWw6IGVtYWlsIHx8IGRlZmF1bHRJbmRpdmlkdWFsLmVtYWlsIHx8ICdtaXNzaW5nQG1pc3NpbmcuY29tJyxcbiAgICAgIHJvbGUsXG4gICAgICBvcmdhbml6YXRpb246IG9yZ2FuaXphdGlvbiB8fCBkZWZhdWx0T3JnLFxuICAgICAgLi4uKHBvc2l0aW9uICYmIHsgcG9zaXRpb24gfSksXG4gICAgICAuLi4oZmlyc3ROYW1lICYmIHsgZmlyc3ROYW1lIH0pLFxuICAgICAgLi4uKGxhc3ROYW1lICYmIHsgbGFzdE5hbWUgfSksXG4gICAgICAuLi4oYWRkcmVzcyAmJiB7IGFkZHJlc3MgfSksXG4gICAgICAuLi4ocGhvbmUgJiYgeyBwaG9uZSB9KSxcbiAgICB9KSlcbiAgKVxufVxuXG4vLyBmcm9tIGNpdDpDSV9PcmdhbmlzYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0T3JnYW5pemF0aW9uSW5kaXZpZHVhbHMoXG4gIHJvbGU6IFJvbGVcbik6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIEFycmF5PEluZGl2aWR1YWw+PiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGNvbWJpbmUoXG4gICAgICBleHRyYWN0T3JnYW5pemF0aW9uKCksXG4gICAgICBleHRyYWN0SW5kaXZpZHVhbChyb2xlKSxcbiAgICAgIGZpbmROZXN0ZWRFbGVtZW50cygnY2l0OmluZGl2aWR1YWwnLCAnY2l0OkNJX0luZGl2aWR1YWwnKVxuICAgICksXG4gICAgbWFwKChbb3JnLCBvcmdDb250YWN0LCBlbHNdKSA9PlxuICAgICAgZWxzLmxlbmd0aFxuICAgICAgICA/IGVscy5tYXAoKGVsKSA9PiBleHRyYWN0SW5kaXZpZHVhbChyb2xlLCBvcmcsIG9yZ0NvbnRhY3QpKGVsKSlcbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVtYWlsOiBvcmdDb250YWN0LmVtYWlsLFxuICAgICAgICAgICAgICAuLi4ob3JnQ29udGFjdC5hZGRyZXNzICYmIHsgYWRkcmVzczogb3JnQ29udGFjdC5hZGRyZXNzIH0pLFxuICAgICAgICAgICAgICAuLi4ob3JnQ29udGFjdC5waG9uZSAmJiB7IHBob25lOiBvcmdDb250YWN0LnBob25lIH0pLFxuICAgICAgICAgICAgICAuLi4ob3JnQ29udGFjdC5wb3NpdGlvbiAmJiB7IHBvc2l0aW9uOiBvcmdDb250YWN0LnBvc2l0aW9uIH0pLFxuICAgICAgICAgICAgICBvcmdhbml6YXRpb246IG9yZyxcbiAgICAgICAgICAgICAgcm9sZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgIClcbiAgKVxufVxuXG4vLyBmcm9tIGNpdDpDSV9SZXNwb25zaWJpbGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmRpdmlkdWFscygpOiBDaGFpbmFibGVGdW5jdGlvbjxcbiAgWG1sRWxlbWVudCxcbiAgQXJyYXk8SW5kaXZpZHVhbD5cbj4ge1xuICBjb25zdCBnZXRSb2xlID0gcGlwZShmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6cm9sZScpLCBleHRyYWN0Um9sZSgpKVxuICBjb25zdCBnZXRJbmRpdmlkdWFscyA9IHBpcGUoXG4gICAgY29tYmluZShnZXRSb2xlLCBmaW5kTmVzdGVkRWxlbWVudHMoJ2NpdDpwYXJ0eScsICdjaXQ6Q0lfSW5kaXZpZHVhbCcpKSxcbiAgICAoW3JvbGUsIGVsc10pID0+IGVscy5tYXAoZXh0cmFjdEluZGl2aWR1YWwocm9sZSkpXG4gIClcbiAgY29uc3QgZ2V0T3JnSW5kaXZpZHVhbHMgPSBwaXBlKFxuICAgIGNvbWJpbmUoZ2V0Um9sZSwgZmluZE5lc3RlZEVsZW1lbnRzKCdjaXQ6cGFydHknLCAnY2l0OkNJX09yZ2FuaXNhdGlvbicpKSxcbiAgICBtYXAoKFtyb2xlLCBlbHNdKSA9PiBlbHMubWFwKGV4dHJhY3RPcmdhbml6YXRpb25JbmRpdmlkdWFscyhyb2xlKSkpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gIClcblxuICByZXR1cm4gcGlwZShjb21iaW5lKGdldEluZGl2aWR1YWxzLCBnZXRPcmdJbmRpdmlkdWFscyksIGZsYXR0ZW5BcnJheSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVuaXF1ZUlkZW50aWZpZXIocm9vdEVsOiBYbWxFbGVtZW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgICAnbWRiOm1ldGFkYXRhSWRlbnRpZmllcicsXG4gICAgICAnbWNjOk1EX0lkZW50aWZpZXInLFxuICAgICAgJ21jYzpjb2RlJ1xuICAgICksXG4gICAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZE93bmVyT3JnYW5pemF0aW9uKHJvb3RFbDogWG1sRWxlbWVudCk6IE9yZ2FuaXphdGlvbiB7XG4gIGNvbnN0IGNvbnRhY3RzID0gcmVhZENvbnRhY3RzKHJvb3RFbClcbiAgY29uc3QgY29udGFjdHNGb3JSZXNvdXJjZSA9IHJlYWRDb250YWN0c0ZvclJlc291cmNlKHJvb3RFbClcbiAgY29uc3QgcG9pbnRPZkNvbnRhY3QgPSBjb250YWN0cy5maWx0ZXIoXG4gICAgKGMpID0+IGMucm9sZSA9PT0gJ3BvaW50X29mX2NvbnRhY3QnXG4gIClbMF1cbiAgcmV0dXJuIChwb2ludE9mQ29udGFjdCB8fCBjb250YWN0c1swXSB8fCBjb250YWN0c0ZvclJlc291cmNlWzBdKS5vcmdhbml6YXRpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb250YWN0cyhyb290RWw6IFhtbEVsZW1lbnQpOiBJbmRpdmlkdWFsW10ge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ21kYjpjb250YWN0JywgJ2NpdDpDSV9SZXNwb25zaWJpbGl0eScpLFxuICAgIG1hcEFycmF5KGV4dHJhY3RJbmRpdmlkdWFscygpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb250YWN0c0ZvclJlc291cmNlKHJvb3RFbDogWG1sRWxlbWVudCk6IEluZGl2aWR1YWxbXSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGNvbWJpbmUoXG4gICAgICBwaXBlKFxuICAgICAgICBmaW5kSWRlbnRpZmljYXRpb24oKSxcbiAgICAgICAgZmluZE5lc3RlZEVsZW1lbnRzKFxuICAgICAgICAgICdtcmk6Y2l0YXRpb24nLFxuICAgICAgICAgICdjaXQ6Q0lfQ2l0YXRpb24nLFxuICAgICAgICAgICdjaXQ6Y2l0ZWRSZXNwb25zaWJsZVBhcnR5J1xuICAgICAgICApXG4gICAgICApLFxuICAgICAgcGlwZShcbiAgICAgICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21yaTpwb2ludE9mQ29udGFjdCcsIGZhbHNlKVxuICAgICAgKSxcbiAgICAgIHBpcGUoZmluZERpc3RyaWJ1dGlvbigpLCBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtcmQ6ZGlzdHJpYnV0b3JDb250YWN0JykpXG4gICAgKSxcbiAgICBmbGF0dGVuQXJyYXkoKSxcbiAgICBtYXBBcnJheShmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6Q0lfUmVzcG9uc2liaWxpdHknLCBmYWxzZSkpLFxuICAgIG1hcEFycmF5KGV4dHJhY3RJbmRpdmlkdWFscygpKSxcbiAgICBmbGF0dGVuQXJyYXkoKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMYW5kaW5nUGFnZShyb290RWw6IFhtbEVsZW1lbnQpOiBVUkwge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudChcbiAgICAgICdtZGI6bWV0YWRhdGFMaW5rYWdlJyxcbiAgICAgICdjaXQ6Q0lfT25saW5lUmVzb3VyY2UnLFxuICAgICAgJ2NpdDpsaW5rYWdlJ1xuICAgICksXG4gICAgZXh0cmFjdFVybCgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZExpbmVhZ2UoXG4gIHJvb3RFbDogWG1sRWxlbWVudCxcbiAgdHJhbnNsYXRpb25zOiBSZWNvcmRUcmFuc2xhdGlvbnNcbik6IHN0cmluZyB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KCdtZGI6cmVzb3VyY2VMaW5lYWdlJywgJ21ybDpMSV9MaW5lYWdlJywgJ21ybDpzdGF0ZW1lbnQnKSxcbiAgICBleHRyYWN0TG9jYWxpemVkQ2hhcmFjdGVyU3RyaW5nKCdsaW5lYWdlJywgdHJhbnNsYXRpb25zKSxcbiAgICBtYXAoKFtsaW5lYWdlXSkgPT4gbGluZWFnZSlcbiAgKShyb290RWwpXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REYXRlSW5mbyhcbiAgdHlwZTogJ2NyZWF0aW9uJyB8ICdyZXZpc2lvbicgfCAncHVibGljYXRpb24nXG4pOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBEYXRlPiB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21kYjpkYXRlSW5mbycsIGZhbHNlKSxcbiAgICBmaWx0ZXJBcnJheShcbiAgICAgIChlbCkgPT5cbiAgICAgICAgcGlwZShcbiAgICAgICAgICBmaW5kQ2hpbGRFbGVtZW50KCdjaXQ6Q0lfRGF0ZVR5cGVDb2RlJyksXG4gICAgICAgICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpXG4gICAgICAgICkoZWwpID09PSB0eXBlXG4gICAgKSxcbiAgICBnZXRBdEluZGV4KDApLFxuICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpkYXRlJyksXG4gICAgZXh0cmFjdERhdGVUaW1lKClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZFVwZGF0ZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBleHRyYWN0RGF0ZUluZm8oJ3JldmlzaW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZENyZWF0ZWQocm9vdEVsOiBYbWxFbGVtZW50KTogRGF0ZSB7XG4gIHJldHVybiBleHRyYWN0RGF0ZUluZm8oJ2NyZWF0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZFB1Ymxpc2hlZChyb290RWw6IFhtbEVsZW1lbnQpOiBEYXRlIHtcbiAgcmV0dXJuIGV4dHJhY3REYXRlSW5mbygncHVibGljYXRpb24nKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkUmV1c2VUeXBlKHJvb3RFbDogWG1sRWxlbWVudCk6IFJldXNlVHlwZSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmROZXN0ZWRFbGVtZW50KFxuICAgICAgJ21kYjptZXRhZGF0YVNjb3BlJyxcbiAgICAgICdtZGI6TURfTWV0YWRhdGFTY29wZScsXG4gICAgICAnbWRiOnJlc291cmNlU2NvcGUnLFxuICAgICAgJ21jYzpNRF9TY29wZUNvZGUnXG4gICAgKSxcbiAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgbWFwKChzY29wZUNvZGUpOiBSZXVzZVR5cGUgPT4gZ2V0UmV1c2VUeXBlKHNjb3BlQ29kZSkpXG4gICkocm9vdEVsKVxufVxuXG5jb25zdCBnZXRNaW1lVHlwZSA9IHBpcGUoXG4gIGZpbmRQYXJlbnQoJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgZmluZE5lc3RlZEVsZW1lbnQoXG4gICAgJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnLFxuICAgICdtcmQ6TURfRm9ybWF0JyxcbiAgICAnbXJkOmZvcm1hdFNwZWNpZmljYXRpb25DaXRhdGlvbicsXG4gICAgJ2NpdDpDSV9DaXRhdGlvbicsXG4gICAgJ2NpdDp0aXRsZSdcbiAgKSxcbiAgZXh0cmFjdENoYXJhY3RlclN0cmluZygpLFxuICBtYXAobWF0Y2hNaW1lVHlwZSlcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPbmxpbmVSZXNvdXJjZXMocm9vdEVsOiBYbWxFbGVtZW50KTogT25saW5lUmVzb3VyY2VbXSB7XG4gIGxldCBnZXRPbmxpbmVSZXNvdXJjZXM6IENoYWluYWJsZUZ1bmN0aW9uPFhtbEVsZW1lbnQsIE9ubGluZVJlc291cmNlW10+XG4gIGlmIChyZWFkS2luZChyb290RWwpID09PSAnZGF0YXNldCcpIHtcbiAgICBnZXRPbmxpbmVSZXNvdXJjZXMgPSBleHRyYWN0RGF0YXNldE9ubGluZVJlc291cmNlcyhnZXRNaW1lVHlwZSlcbiAgfSBlbHNlIGlmIChyZWFkS2luZChyb290RWwpID09PSAnc2VydmljZScpIHtcbiAgICBnZXRPbmxpbmVSZXNvdXJjZXMgPSBleHRyYWN0U2VydmljZU9ubGluZVJlc291cmNlcygpXG4gIH0gZWxzZSB7XG4gICAgZ2V0T25saW5lUmVzb3VyY2VzID0gZXh0cmFjdFJldXNlT25saW5lUmVzb3VyY2VzKClcbiAgfVxuICByZXR1cm4gcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ21yZDpkaXN0cmlidXRpb25JbmZvJywgJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICBtYXBBcnJheShnZXRPbmxpbmVSZXNvdXJjZXMpLFxuICAgIGZsYXR0ZW5BcnJheSgpXG4gICkocm9vdEVsKVxufVxuXG5mdW5jdGlvbiByZWFkTG9jYWxlRWxlbWVudCgpOiBDaGFpbmFibGVGdW5jdGlvbjxYbWxFbGVtZW50LCBMYW5ndWFnZUNvZGU+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkRWxlbWVudCgnbGFuOkxhbmd1YWdlQ29kZScpLFxuICAgIHJlYWRBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnKSxcbiAgICBtYXAoKGxhbmcpID0+IChsYW5nID8gTEFOR18zX1RPXzJfTUFQUEVSW2xhbmcudG9Mb3dlckNhc2UoKV0gOiBudWxsKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZERlZmF1bHRMYW5ndWFnZShyb290RWw6IFhtbEVsZW1lbnQpOiBMYW5ndWFnZUNvZGUge1xuICByZXR1cm4gcGlwZShcbiAgICBmaW5kQ2hpbGRFbGVtZW50KCdtZGI6ZGVmYXVsdExvY2FsZScsIGZhbHNlKSxcbiAgICByZWFkTG9jYWxlRWxlbWVudCgpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZE90aGVyTGFuZ3VhZ2VzKHJvb3RFbDogWG1sRWxlbWVudCk6IExhbmd1YWdlQ29kZVtdIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkcmVuRWxlbWVudCgnbWRiOm90aGVyTG9jYWxlJywgZmFsc2UpLFxuICAgIG1hcEFycmF5KHJlYWRMb2NhbGVFbGVtZW50KCkpXG4gICkocm9vdEVsKVxufVxuIl19
|
|
@@ -4,11 +4,13 @@ import { appendKeywords, appendOnlineResource, appendServiceOnlineResources, cre
|
|
|
4
4
|
import { findIdentification } from '../iso19139/read-parts';
|
|
5
5
|
import { namePartsToFull } from '../iso19139/utils/individual-name';
|
|
6
6
|
import { LANG_2_TO_3_MAPPER } from '../../../../../../libs/util/i18n/src/lib/language-codes';
|
|
7
|
+
import { kindToCodeListValue } from '../common/resource-types';
|
|
7
8
|
export function writeUniqueIdentifier(record, rootEl) {
|
|
8
9
|
pipe(findNestedChildOrCreate('mdb:metadataIdentifier', 'mcc:MD_Identifier', 'mcc:code'), writeCharacterString(record.uniqueIdentifier))(rootEl);
|
|
9
10
|
}
|
|
10
11
|
export function writeKind(record, rootEl) {
|
|
11
|
-
|
|
12
|
+
const kind = kindToCodeListValue(record);
|
|
13
|
+
pipe(findNestedChildOrCreate('mdb:metadataScope', 'mdb:MD_MetadataScope', 'mdb:resourceScope', 'mcc:MD_ScopeCode'), writeAttribute('codeList', 'https://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#MD_ScopeCode'), writeAttribute('codeListValue', kind), setTextContent(kind))(rootEl);
|
|
12
14
|
}
|
|
13
15
|
function removeRecordDate(type) {
|
|
14
16
|
return removeChildren(pipe(findChildrenElement('mdb:dateInfo', false), filterArray(pipe(findChildElement('cit:CI_DateTypeCode'), readAttribute('codeListValue'), map((value) => value === type)))));
|
|
@@ -56,6 +58,9 @@ export function writeResourcePublished(record, rootEl) {
|
|
|
56
58
|
return;
|
|
57
59
|
appendResourceDate(record.resourcePublished, 'publication')(rootEl);
|
|
58
60
|
}
|
|
61
|
+
export function writeReuseType(record, rootEl) {
|
|
62
|
+
writeKind(record, rootEl);
|
|
63
|
+
}
|
|
59
64
|
export function appendResponsibleParty(contact, defaultLanguage) {
|
|
60
65
|
const fullName = namePartsToFull(contact.firstName, contact.lastName);
|
|
61
66
|
const createIndividual = pipe(createElement('cit:individual'), createChild('cit:CI_Individual'), fullName
|
|
@@ -145,4 +150,4 @@ export function writeOtherLanguages(record, rootEl) {
|
|
|
145
150
|
}
|
|
146
151
|
appendChildren(...record.otherLanguages.map((lang) => pipe(createElement('mdb:otherLocale'), writeLocaleElement(lang))))(rootEl);
|
|
147
152
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtcGFydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTExNS0zL3dyaXRlLXBhcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGVBQWUsRUFDZixXQUFXLEVBQ1gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxjQUFjLEdBRWYsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLEdBQUcsRUFDSCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksR0FDTCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksRUFDWiw2QkFBNkIsR0FDOUIsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUE7QUFFNUYsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUFxQixFQUNyQixNQUFrQjtJQUVsQixJQUFJLENBQ0YsdUJBQXVCLENBQ3JCLHdCQUF3QixFQUN4Qixt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QUFBO0lBQ3hELE9BQU8sSUFBSSxDQUNULGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUNsQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUM1Qyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsRUFDM0QsY0FBYyxDQUFDLFVBQVUsRUFBRSx3Q0FBd0MsQ0FBQyxFQUNwRSxjQUFjLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUN2QyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBcUIsRUFDckIsTUFBa0I7SUFFbEIsSUFBSSxDQUNGLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEVBQ3RDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FDM0MsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNYLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUIsRUFBRSxNQUFrQjtJQUMzRSxpQkFBaUI7SUFDakIsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUUvQyw0RUFBNEU7SUFDNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFO1FBQ2xDLE9BQU07S0FDUDtJQUVELGNBQWMsQ0FDWixHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNqRSxDQUNGLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgRGF0YXNldFJlY29yZCxcbiAgSW5kaXZpZHVhbCxcbiAgTGFuZ3VhZ2VDb2RlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBhbGxDaGlsZHJlbkVsZW1lbnQsXG4gIGFwcGVuZENoaWxkcmVuLFxuICBhcHBlbmRDaGlsZFRyZWUsXG4gIGNyZWF0ZUNoaWxkLFxuICBjcmVhdGVFbGVtZW50LFxuICBmaW5kQ2hpbGRFbGVtZW50LFxuICBmaW5kQ2hpbGRPckNyZWF0ZSxcbiAgZmluZENoaWxkcmVuRWxlbWVudCxcbiAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUsXG4gIGZpbmROZXN0ZWRFbGVtZW50LFxuICBmaW5kTmVzdGVkRWxlbWVudHMsXG4gIHJlYWRBdHRyaWJ1dGUsXG4gIHJlbW92ZUNoaWxkcmVuLFxuICByZW1vdmVDaGlsZHJlbkJ5TmFtZSxcbiAgc2V0VGV4dENvbnRlbnQsXG4gIHdyaXRlQXR0cmlidXRlLFxuICBYbWxFbGVtZW50LFxufSBmcm9tICcuLi94bWwtdXRpbHMnXG5pbXBvcnQge1xuICBmYWxsYmFjayxcbiAgZmlsdGVyQXJyYXksXG4gIGdldEF0SW5kZXgsXG4gIG1hcCxcbiAgbWFwQXJyYXksXG4gIG5vb3AsXG4gIHBpcGUsXG59IGZyb20gJy4uL2Z1bmN0aW9uLXV0aWxzJ1xuaW1wb3J0IHtcbiAgYXBwZW5kS2V5d29yZHMsXG4gIGFwcGVuZE9ubGluZVJlc291cmNlLFxuICBhcHBlbmRTZXJ2aWNlT25saW5lUmVzb3VyY2VzLFxuICBjcmVhdGVEaXN0cmlidXRpb25JbmZvLFxuICBmaW5kT3JDcmVhdGVEaXN0cmlidXRpb24sXG4gIGZpbmRPckNyZWF0ZUlkZW50aWZpY2F0aW9uLFxuICBnZXRQcm9ncmVzc0NvZGUsXG4gIGdldFJvbGVDb2RlLFxuICByZW1vdmVLZXl3b3JkcyxcbiAgd3JpdGVDaGFyYWN0ZXJTdHJpbmcsXG4gIHdyaXRlRGF0ZVRpbWUsXG4gIHdyaXRlTGlua2FnZSxcbiAgd3JpdGVMb2NhbGl6ZWRDaGFyYWN0ZXJTdHJpbmcsXG59IGZyb20gJy4uL2lzbzE5MTM5L3dyaXRlLXBhcnRzJ1xuaW1wb3J0IHsgZmluZElkZW50aWZpY2F0aW9uIH0gZnJvbSAnLi4vaXNvMTkxMzkvcmVhZC1wYXJ0cydcbmltcG9ydCB7IG5hbWVQYXJ0c1RvRnVsbCB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL2luZGl2aWR1YWwtbmFtZSdcbmltcG9ydCB7IExBTkdfMl9UT18zX01BUFBFUiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYy9saWIvbGFuZ3VhZ2UtY29kZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVVuaXF1ZUlkZW50aWZpZXIoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcGlwZShcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZShcbiAgICAgICdtZGI6bWV0YWRhdGFJZGVudGlmaWVyJyxcbiAgICAgICdtY2M6TURfSWRlbnRpZmllcicsXG4gICAgICAnbWNjOmNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUtpbmQocmVjb3JkOiBDYXRhbG9nUmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgcGlwZShcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZShcbiAgICAgICdtZGI6bWV0YWRhdGFTY29wZScsXG4gICAgICAnbWRiOk1EX01ldGFkYXRhU2NvcGUnLFxuICAgICAgJ21kYjpyZXNvdXJjZVNjb3BlJyxcbiAgICAgICdtY2M6TURfU2NvcGVDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoXG4gICAgICAnY29kZUxpc3QnLFxuICAgICAgJ2h0dHBzOi8vc3RhbmRhcmRzLmlzby5vcmcvaXNvLzE5MTE1L3Jlc291cmNlcy9Db2RlbGlzdHMvY2F0L2NvZGVsaXN0cy54bWwjTURfU2NvcGVDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnLCByZWNvcmQua2luZCksXG4gICAgc2V0VGV4dENvbnRlbnQocmVjb3JkLmtpbmQpXG4gICkocm9vdEVsKVxufVxuXG5mdW5jdGlvbiByZW1vdmVSZWNvcmREYXRlKHR5cGU6ICdyZXZpc2lvbicgfCAnY3JlYXRpb24nIHwgJ3B1YmxpY2F0aW9uJykge1xuICByZXR1cm4gcmVtb3ZlQ2hpbGRyZW4oXG4gICAgcGlwZShcbiAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21kYjpkYXRlSW5mbycsIGZhbHNlKSxcbiAgICAgIGZpbHRlckFycmF5KFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpDSV9EYXRlVHlwZUNvZGUnKSxcbiAgICAgICAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHR5cGUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuZnVuY3Rpb24gYXBwZW5kUmVjb3JkRGF0ZShcbiAgZGF0ZTogRGF0ZSxcbiAgdHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nXG4pIHtcbiAgcmV0dXJuIGFwcGVuZENoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBjcmVhdGVFbGVtZW50KCdtZGI6ZGF0ZUluZm8nKSxcbiAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZScpLFxuICAgICAgYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnY2l0OmRhdGUnKSwgd3JpdGVEYXRlVGltZShkYXRlKSksXG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OmRhdGVUeXBlJyksXG4gICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9EYXRlVHlwZUNvZGUnKSxcbiAgICAgICAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICdjb2RlTGlzdCcsXG4gICAgICAgICAgICAnaHR0cHM6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvcmVzb3VyY2VzL0NvZGVsaXN0cy9jYXQvY29kZWxpc3RzLnhtbCNDSV9EYXRlVHlwZUNvZGUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScsIHR5cGUpLFxuICAgICAgICAgIHNldFRleHRDb250ZW50KHR5cGUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUmVjb3JkVXBkYXRlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkge1xuICByZW1vdmVSZWNvcmREYXRlKCdyZXZpc2lvbicpKHJvb3RFbClcbiAgYXBwZW5kUmVjb3JkRGF0ZShyZWNvcmQucmVjb3JkVXBkYXRlZCwgJ3JldmlzaW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZWNvcmRDcmVhdGVkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHJlbW92ZVJlY29yZERhdGUoJ2NyZWF0aW9uJykocm9vdEVsKVxuICBpZiAoIXJlY29yZC5yZWNvcmRDcmVhdGVkKSByZXR1cm5cbiAgYXBwZW5kUmVjb3JkRGF0ZShyZWNvcmQucmVjb3JkQ3JlYXRlZCwgJ2NyZWF0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZWNvcmRQdWJsaXNoZWQoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcmVtb3ZlUmVjb3JkRGF0ZSgncHVibGljYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlY29yZFB1Ymxpc2hlZCkgcmV0dXJuXG4gIGFwcGVuZFJlY29yZERhdGUocmVjb3JkLnJlY29yZFB1Ymxpc2hlZCwgJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5mdW5jdGlvbiByZW1vdmVSZXNvdXJjZURhdGUodHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRPckNyZWF0ZUlkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoJ21yaTpjaXRhdGlvbicsICdjaXQ6Q0lfQ2l0YXRpb24nKSxcbiAgICByZW1vdmVDaGlsZHJlbihcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2NpdDpkYXRlJywgZmFsc2UpLFxuICAgICAgICBmaWx0ZXJBcnJheShcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnY2l0OkNJX0RhdGVUeXBlQ29kZScpLFxuICAgICAgICAgICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHR5cGUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIGFwcGVuZFJlc291cmNlRGF0ZShcbiAgZGF0ZTogRGF0ZSxcbiAgdHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nXG4pIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoJ21yaTpjaXRhdGlvbicsICdjaXQ6Q0lfQ2l0YXRpb24nKSxcbiAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgIHBpcGUoXG4gICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpkYXRlJyksXG4gICAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZScpLFxuICAgICAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKGNyZWF0ZUVsZW1lbnQoJ2NpdDpkYXRlJyksIHdyaXRlRGF0ZVRpbWUoZGF0ZSkpLFxuICAgICAgICAgIHBpcGUoXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZGF0ZVR5cGUnKSxcbiAgICAgICAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZVR5cGVDb2RlJyksXG4gICAgICAgICAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgJ2NvZGVMaXN0JyxcbiAgICAgICAgICAgICAgJ2h0dHBzOi8vc3RhbmRhcmRzLmlzby5vcmcvaXNvLzE5MTE1L3Jlc291cmNlcy9Db2RlbGlzdHMvY2F0L2NvZGVsaXN0cy54bWwjQ0lfRGF0ZVR5cGVDb2RlJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdyaXRlQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJywgdHlwZSksXG4gICAgICAgICAgICBzZXRUZXh0Q29udGVudCh0eXBlKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZXNvdXJjZVVwZGF0ZWQoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcmVtb3ZlUmVzb3VyY2VEYXRlKCdyZXZpc2lvbicpKHJvb3RFbClcbiAgaWYgKCFyZWNvcmQucmVzb3VyY2VVcGRhdGVkKSByZXR1cm5cbiAgYXBwZW5kUmVzb3VyY2VEYXRlKHJlY29yZC5yZXNvdXJjZVVwZGF0ZWQsICdyZXZpc2lvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUmVzb3VyY2VDcmVhdGVkKFxuICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gIHJvb3RFbDogWG1sRWxlbWVudFxuKSB7XG4gIHJlbW92ZVJlc291cmNlRGF0ZSgnY3JlYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlc291cmNlQ3JlYXRlZCkgcmV0dXJuXG4gIGFwcGVuZFJlc291cmNlRGF0ZShyZWNvcmQucmVzb3VyY2VDcmVhdGVkLCAnY3JlYXRpb24nKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVJlc291cmNlUHVibGlzaGVkKFxuICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gIHJvb3RFbDogWG1sRWxlbWVudFxuKSB7XG4gIHJlbW92ZVJlc291cmNlRGF0ZSgncHVibGljYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlc291cmNlUHVibGlzaGVkKSByZXR1cm5cbiAgYXBwZW5kUmVzb3VyY2VEYXRlKHJlY29yZC5yZXNvdXJjZVB1Ymxpc2hlZCwgJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kUmVzcG9uc2libGVQYXJ0eShcbiAgY29udGFjdDogSW5kaXZpZHVhbCxcbiAgZGVmYXVsdExhbmd1YWdlOiBMYW5ndWFnZUNvZGVcbikge1xuICBjb25zdCBmdWxsTmFtZSA9IG5hbWVQYXJ0c1RvRnVsbChjb250YWN0LmZpcnN0TmFtZSwgY29udGFjdC5sYXN0TmFtZSlcblxuICBjb25zdCBjcmVhdGVJbmRpdmlkdWFsID0gcGlwZShcbiAgICBjcmVhdGVFbGVtZW50KCdjaXQ6aW5kaXZpZHVhbCcpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfSW5kaXZpZHVhbCcpLFxuICAgIGZ1bGxOYW1lXG4gICAgICA/IGFwcGVuZENoaWxkcmVuKFxuICAgICAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnY2l0Om5hbWUnKSwgd3JpdGVDaGFyYWN0ZXJTdHJpbmcoZnVsbE5hbWUpKVxuICAgICAgICApXG4gICAgICA6IG5vb3AsXG4gICAgY29udGFjdC5wb3NpdGlvblxuICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OnBvc2l0aW9uTmFtZScpLFxuICAgICAgICAgICAgd3JpdGVDaGFyYWN0ZXJTdHJpbmcoY29udGFjdC5wb3NpdGlvbilcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogbm9vcFxuICApXG5cbiAgY29uc3QgY3JlYXRlQ29udGFjdEluZm8gPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpjb250YWN0SW5mbycpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfQ29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgcGlwZShcbiAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OmFkZHJlc3MnKSxcbiAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9BZGRyZXNzJyksXG4gICAgICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgICAgIHBpcGUoXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZWxlY3Ryb25pY01haWxBZGRyZXNzJyksXG4gICAgICAgICAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhjb250YWN0LmVtYWlsKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFjdC5hZGRyZXNzXG4gICAgICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICAgICAgcGlwZShcbiAgICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZGVsaXZlcnlQb2ludCcpLFxuICAgICAgICAgICAgICAgIHdyaXRlQ2hhcmFjdGVyU3RyaW5nKGNvbnRhY3QuYWRkcmVzcylcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbm9vcFxuICAgICAgKVxuICAgICksXG4gICAgY29udGFjdC5vcmdhbml6YXRpb24/LndlYnNpdGVcbiAgICAgID8gYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgICAgcGlwZShcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpvbmxpbmVSZXNvdXJjZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9PbmxpbmVSZXNvdXJjZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpsaW5rYWdlJyksXG4gICAgICAgICAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhjb250YWN0Lm9yZ2FuaXphdGlvbi53ZWJzaXRlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IG5vb3AsXG4gICAgY29udGFjdC5waG9uZVxuICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OnBob25lJyksXG4gICAgICAgICAgICBjcmVhdGVDaGlsZCgnY2l0OkNJX1RlbGVwaG9uZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpudW1iZXInKSxcbiAgICAgICAgICAgIHdyaXRlQ2hhcmFjdGVyU3RyaW5nKGNvbnRhY3QucGhvbmUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IG5vb3BcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZVJvbGUgPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpyb2xlJyksXG4gICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9Sb2xlQ29kZScpLFxuICAgIHdyaXRlQXR0cmlidXRlKFxuICAgICAgJ2NvZGVMaXN0JyxcbiAgICAgICdodHRwczovL3N0YW5kYXJkcy5pc28ub3JnL2lzby8xOTExNS9yZXNvdXJjZXMvQ29kZWxpc3RzL2NhdC9jb2RlbGlzdHMueG1sI0NJX1JvbGVDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnLCBnZXRSb2xlQ29kZShjb250YWN0LnJvbGUpKSxcbiAgICBzZXRUZXh0Q29udGVudChnZXRSb2xlQ29kZShjb250YWN0LnJvbGUpKVxuICApXG5cbiAgY29uc3QgY3JlYXRlUGFydHkgPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpwYXJ0eScpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfT3JnYW5pc2F0aW9uJyksXG4gICAgY29udGFjdC5vcmdhbml6YXRpb24/Lm5hbWVcbiAgICAgID8gYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgICAgcGlwZShcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpuYW1lJyksXG4gICAgICAgICAgICB3cml0ZUxvY2FsaXplZENoYXJhY3RlclN0cmluZyhcbiAgICAgICAgICAgICAgY29udGFjdC5vcmdhbml6YXRpb24/Lm5hbWUsXG4gICAgICAgICAgICAgIGNvbnRhY3Qub3JnYW5pemF0aW9uPy50cmFuc2xhdGlvbnM/Lm5hbWUsXG4gICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgOiBub29wLFxuICAgIGFwcGVuZENoaWxkcmVuKGNyZWF0ZUNvbnRhY3RJbmZvLCBjcmVhdGVJbmRpdmlkdWFsKVxuICApXG5cbiAgcmV0dXJuIGFwcGVuZENoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6Q0lfUmVzcG9uc2liaWxpdHknKSxcbiAgICAgIGFwcGVuZENoaWxkcmVuKGNyZWF0ZVJvbGUsIGNyZWF0ZVBhcnR5KVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb250YWN0cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkge1xuICBwaXBlKFxuICAgIHJlbW92ZUNoaWxkcmVuQnlOYW1lKCdtZGI6Y29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgLi4ucmVjb3JkLmNvbnRhY3RzLm1hcCgoY29udGFjdCkgPT5cbiAgICAgICAgcGlwZShcbiAgICAgICAgICBjcmVhdGVFbGVtZW50KCdnbWQ6Y29udGFjdCcpLFxuICAgICAgICAgIGFwcGVuZFJlc3BvbnNpYmxlUGFydHkoY29udGFjdCwgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNvbnRhY3RzRm9yUmVzb3VyY2UoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgY29uc3Qgd2l0aG91dERpc3RyaWJ1dG9ycyA9IHJlY29yZC5jb250YWN0c0ZvclJlc291cmNlLmZpbHRlcihcbiAgICAoYykgPT4gYy5yb2xlICE9PSAnZGlzdHJpYnV0b3InXG4gIClcbiAgY29uc3QgZGlzdHJpYnV0b3JzID0gcmVjb3JkLmNvbnRhY3RzRm9yUmVzb3VyY2UuZmlsdGVyKFxuICAgIChjKSA9PiBjLnJvbGUgPT09ICdkaXN0cmlidXRvcidcbiAgKVxuICBwaXBlKFxuICAgIGZpbmRPckNyZWF0ZUlkZW50aWZpY2F0aW9uKCksXG4gICAgcmVtb3ZlQ2hpbGRyZW5CeU5hbWUoJ21yaTpwb2ludE9mQ29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgLi4ud2l0aG91dERpc3RyaWJ1dG9ycy5tYXAoKGNvbnRhY3QpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnbXJpOnBvaW50T2ZDb250YWN0JyksXG4gICAgICAgICAgYXBwZW5kUmVzcG9uc2libGVQYXJ0eShjb250YWN0LCByZWNvcmQuZGVmYXVsdExhbmd1YWdlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApKHJvb3RFbClcbiAgaWYgKCFkaXN0cmlidXRvcnMubGVuZ3RoKSByZXR1cm5cbiAgcGlwZShcbiAgICBmaW5kT3JDcmVhdGVEaXN0cmlidXRpb24oKSxcbiAgICByZW1vdmVDaGlsZHJlbkJ5TmFtZSgnbXJkOmRpc3RyaWJ1dG9yJyksXG4gICAgY3JlYXRlQ2hpbGQoJ21yZDpkaXN0cmlidXRvcicpLFxuICAgIGNyZWF0ZUNoaWxkKCdtcmQ6TURfRGlzdHJpYnV0b3InKSxcbiAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgIC4uLmRpc3RyaWJ1dG9ycy5tYXAoKGNvbnRhY3QpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnbXJkOmRpc3RyaWJ1dG9yQ29udGFjdCcpLFxuICAgICAgICAgIGFwcGVuZFJlc3BvbnNpYmxlUGFydHkoY29udGFjdCwgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUtleXdvcmRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICByZW1vdmVLZXl3b3JkcygpLFxuICAgIGFwcGVuZEtleXdvcmRzKHJlY29yZC5rZXl3b3JkcywgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUxhbmRpbmdQYWdlKHJlY29yZDogRGF0YXNldFJlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoXG4gICAgICAnbWRiOm1ldGFkYXRhTGlua2FnZScsXG4gICAgICAnY2l0OkNJX09ubGluZVJlc291cmNlJyxcbiAgICAgICdjaXQ6bGlua2FnZSdcbiAgICApLFxuICAgIHdyaXRlTGlua2FnZShyZWNvcmQubGFuZGluZ1BhZ2UpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVMaW5lYWdlKHJlY29yZDogRGF0YXNldFJlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoXG4gICAgICAnbWRiOnJlc291cmNlTGluZWFnZScsXG4gICAgICAnbXJsOkxJX0xpbmVhZ2UnLFxuICAgICAgJ21ybDpzdGF0ZW1lbnQnXG4gICAgKSxcbiAgICB3cml0ZUxvY2FsaXplZENoYXJhY3RlclN0cmluZyhcbiAgICAgIHJlY29yZC5saW5lYWdlLFxuICAgICAgcmVjb3JkLnRyYW5zbGF0aW9ucz8ubGluZWFnZSxcbiAgICAgIHJlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcbiAgICApXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVTdGF0dXMocmVjb3JkOiBEYXRhc2V0UmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgY29uc3QgcHJvZ3Jlc3NDb2RlID0gZ2V0UHJvZ3Jlc3NDb2RlKHJlY29yZC5zdGF0dXMpXG4gIHBpcGUoXG4gICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZSgnbXJpOnN0YXR1cycsICdtY2M6TURfUHJvZ3Jlc3NDb2RlJyksXG4gICAgd3JpdGVBdHRyaWJ1dGUoXG4gICAgICAnY29kZUxpc3QnLFxuICAgICAgJ2h0dHBzOi8vc3RhbmRhcmRzLmlzby5vcmcvaXNvLzE5MTE1L3Jlc291cmNlcy9Db2RlbGlzdHMvY2F0L2NvZGVsaXN0cy54bWwjTURfUHJvZ3Jlc3NDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnLCBwcm9ncmVzc0NvZGUpLFxuICAgIHNldFRleHRDb250ZW50KHByb2dyZXNzQ29kZSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVNwYXRpYWxSZXByZXNlbnRhdGlvbihcbiAgcmVjb3JkOiBEYXRhc2V0UmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICBpZiAoIXJlY29yZC5zcGF0aWFsUmVwcmVzZW50YXRpb24pIHtcbiAgICBwaXBlKFxuICAgICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICAgIHJlbW92ZUNoaWxkcmVuQnlOYW1lKCdtcmk6c3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZScpXG4gICAgKShyb290RWwpXG4gICAgcmV0dXJuXG4gIH1cbiAgcGlwZShcbiAgICBmaW5kT3JDcmVhdGVJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRDaGlsZE9yQ3JlYXRlKFxuICAgICAgJ21yaTpzcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlJyxcbiAgICAgICdtY2M6TURfU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZUNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICdjb2RlTGlzdCcsXG4gICAgICAnaHR0cHM6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvcmVzb3VyY2VzL0NvZGVsaXN0cy9jYXQvY29kZWxpc3RzLnhtbCNNRF9TcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlQ29kZSdcbiAgICApLFxuICAgIHdyaXRlQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJywgcmVjb3JkLnNwYXRpYWxSZXByZXNlbnRhdGlvbiksXG4gICAgc2V0VGV4dENvbnRlbnQocmVjb3JkLnNwYXRpYWxSZXByZXNlbnRhdGlvbilcbiAgKShyb290RWwpXG59XG5cbi8vIHRoaXMgd2lsbCByZW1vdmUgYWxsIHRyYW5zZmVyIG9wdGlvbnMgYW5kIGZvcm1hdHMgZnJvbSBkaXN0cmlidXRpb24gaW5mb1xuLy8gYW5kIHJlbW92ZSBlbXB0eSBkaXN0cmlidXRpb24gaW5mb1xuZnVuY3Rpb24gcmVtb3ZlVHJhbnNmZXJPcHRpb25zKHJvb3RFbDogWG1sRWxlbWVudCkge1xuICAvLyByZW1vdmUgdHJhbnNmZXIgb3B0aW9ucyAmIGZvcm1hdHNcbiAgcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ21kYjpkaXN0cmlidXRpb25JbmZvJywgJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICBtYXBBcnJheShcbiAgICAgIHBpcGUoXG4gICAgICAgIHJlbW92ZUNoaWxkcmVuKGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnLCBmYWxzZSkpLFxuICAgICAgICByZW1vdmVDaGlsZHJlbihmaW5kQ2hpbGRyZW5FbGVtZW50KCdtcmQ6dHJhbnNmZXJPcHRpb25zJywgZmFsc2UpKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG4gIC8vIHJlbW92ZSBlbXB0eSBkaXN0cmlidXRpb25zXG4gIHJlbW92ZUNoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtZGI6ZGlzdHJpYnV0aW9uSW5mbycsIGZhbHNlKSxcbiAgICAgIGZpbHRlckFycmF5KFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICAgICAgICBhbGxDaGlsZHJlbkVsZW1lbnQsXG4gICAgICAgICAgbWFwKChjaGlsZHJlbikgPT4gY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApKHJvb3RFbClcbn1cblxuZnVuY3Rpb24gYXBwZW5kT25saW5lUmVzb3VyY2VGb3JtYXQobWltZVR5cGU6IHN0cmluZykge1xuICByZXR1cm4gYXBwZW5kQ2hpbGRyZW4oXG4gICAgcGlwZShcbiAgICAgIGNyZWF0ZUVsZW1lbnQoJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnKSxcbiAgICAgIGNyZWF0ZUNoaWxkKCdtcmQ6TURfRm9ybWF0JyksXG4gICAgICBjcmVhdGVDaGlsZCgnbXJkOmZvcm1hdFNwZWNpZmljYXRpb25DaXRhdGlvbicpLFxuICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9DaXRhdGlvbicpLFxuICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDp0aXRsZScpLFxuICAgICAgd3JpdGVDaGFyYWN0ZXJTdHJpbmcobWltZVR5cGUpXG4gICAgKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZU9ubGluZVJlc291cmNlcyhcbiAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICByZW1vdmVUcmFuc2Zlck9wdGlvbnMocm9vdEVsKVxuXG4gIGlmIChyZWNvcmQua2luZCA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgYXBwZW5kU2VydmljZU9ubGluZVJlc291cmNlcyhyZWNvcmQsIHJvb3RFbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGZvciBlYWNoIG9ubGluZSByZXNvdXJjZSwgZWl0aGVyIGZpbmQgYW4gZXhpc3RpbmcgZGlzdHJpYnV0aW9uIGluZm8gb3IgY3JlYXRlIGEgbmV3IG9uZVxuICByZWNvcmQub25saW5lUmVzb3VyY2VzLmZvckVhY2goKG9ubGluZVJlc291cmNlLCBpbmRleCkgPT4ge1xuICAgIHBpcGUoXG4gICAgICBmYWxsYmFjayhcbiAgICAgICAgcGlwZShcbiAgICAgICAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpkaXN0cmlidXRpb25JbmZvJywgJ2dtZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICAgICAgICBnZXRBdEluZGV4KGluZGV4KVxuICAgICAgICApLFxuICAgICAgICBhcHBlbmRDaGlsZFRyZWUoY3JlYXRlRGlzdHJpYnV0aW9uSW5mbygpKVxuICAgICAgKSxcbiAgICAgIGFwcGVuZE9ubGluZVJlc291cmNlKFxuICAgICAgICBvbmxpbmVSZXNvdXJjZSxcbiAgICAgICAgYXBwZW5kT25saW5lUmVzb3VyY2VGb3JtYXQsXG4gICAgICAgIHJlY29yZC50cmFuc2xhdGlvbnMsXG4gICAgICAgIHJlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgIClcbiAgICApKHJvb3RFbClcbiAgfSlcbn1cblxuZnVuY3Rpb24gd3JpdGVMb2NhbGVFbGVtZW50KGxhbmd1YWdlOiBMYW5ndWFnZUNvZGUpIHtcbiAgY29uc3QgbGFuZzMgPSBMQU5HXzJfVE9fM19NQVBQRVJbbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKV1cbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkT3JDcmVhdGUoJ2xhbjpQVF9Mb2NhbGUnKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnaWQnLCBsYW5ndWFnZS50b1VwcGVyQ2FzZSgpKSxcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZSgnbGFuOmxhbmd1YWdlJywgJ2dtZDpMYW5ndWFnZUNvZGUnKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3QnLCAnaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi8nKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScsIGxhbmczKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURlZmF1bHRMYW5ndWFnZShcbiAgcmVjb3JkOiBEYXRhc2V0UmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICBwaXBlKFxuICAgIGZpbmRDaGlsZE9yQ3JlYXRlKCdtZGI6ZGVmYXVsdExvY2FsZScpLFxuICAgIHdyaXRlTG9jYWxlRWxlbWVudChyZWNvcmQuZGVmYXVsdExhbmd1YWdlKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlT3RoZXJMYW5ndWFnZXMocmVjb3JkOiBEYXRhc2V0UmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgLy8gY2xlYXIgZXhpc3RpbmdcbiAgcmVtb3ZlQ2hpbGRyZW5CeU5hbWUoJ21kYjpvdGhlckxvY2FsZScpKHJvb3RFbClcblxuICAvLyBkbyBub3Qgd3JpdGUgZG93biBsYW5ndWFnZXMgaWYgdGhlcmUgaXMgbm90aGluZyBlbHNlIHRoYW4gdGhlIGRlZmF1bHQgb25lXG4gIGlmICghcmVjb3JkLm90aGVyTGFuZ3VhZ2VzPy5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGFwcGVuZENoaWxkcmVuKFxuICAgIC4uLnJlY29yZC5vdGhlckxhbmd1YWdlcy5tYXAoKGxhbmc6IExhbmd1YWdlQ29kZSkgPT5cbiAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnbWRiOm90aGVyTG9jYWxlJyksIHdyaXRlTG9jYWxlRWxlbWVudChsYW5nKSlcbiAgICApXG4gICkocm9vdEVsKVxufVxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtcGFydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTExNS0zL3dyaXRlLXBhcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGVBQWUsRUFDZixXQUFXLEVBQ1gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxjQUFjLEdBRWYsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLEdBQUcsRUFDSCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksR0FDTCxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksRUFDWiw2QkFBNkIsR0FDOUIsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFOUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUFxQixFQUNyQixNQUFr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QUksQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBEYXRhc2V0UmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBMYW5ndWFnZUNvZGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIGFsbENoaWxkcmVuRWxlbWVudCxcbiAgYXBwZW5kQ2hpbGRyZW4sXG4gIGFwcGVuZENoaWxkVHJlZSxcbiAgY3JlYXRlQ2hpbGQsXG4gIGNyZWF0ZUVsZW1lbnQsXG4gIGZpbmRDaGlsZEVsZW1lbnQsXG4gIGZpbmRDaGlsZE9yQ3JlYXRlLFxuICBmaW5kQ2hpbGRyZW5FbGVtZW50LFxuICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZSxcbiAgZmluZE5lc3RlZEVsZW1lbnQsXG4gIGZpbmROZXN0ZWRFbGVtZW50cyxcbiAgcmVhZEF0dHJpYnV0ZSxcbiAgcmVtb3ZlQ2hpbGRyZW4sXG4gIHJlbW92ZUNoaWxkcmVuQnlOYW1lLFxuICBzZXRUZXh0Q29udGVudCxcbiAgd3JpdGVBdHRyaWJ1dGUsXG4gIFhtbEVsZW1lbnQsXG59IGZyb20gJy4uL3htbC11dGlscydcbmltcG9ydCB7XG4gIGZhbGxiYWNrLFxuICBmaWx0ZXJBcnJheSxcbiAgZ2V0QXRJbmRleCxcbiAgbWFwLFxuICBtYXBBcnJheSxcbiAgbm9vcCxcbiAgcGlwZSxcbn0gZnJvbSAnLi4vZnVuY3Rpb24tdXRpbHMnXG5pbXBvcnQge1xuICBhcHBlbmRLZXl3b3JkcyxcbiAgYXBwZW5kT25saW5lUmVzb3VyY2UsXG4gIGFwcGVuZFNlcnZpY2VPbmxpbmVSZXNvdXJjZXMsXG4gIGNyZWF0ZURpc3RyaWJ1dGlvbkluZm8sXG4gIGZpbmRPckNyZWF0ZURpc3RyaWJ1dGlvbixcbiAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24sXG4gIGdldFByb2dyZXNzQ29kZSxcbiAgZ2V0Um9sZUNvZGUsXG4gIHJlbW92ZUtleXdvcmRzLFxuICB3cml0ZUNoYXJhY3RlclN0cmluZyxcbiAgd3JpdGVEYXRlVGltZSxcbiAgd3JpdGVMaW5rYWdlLFxuICB3cml0ZUxvY2FsaXplZENoYXJhY3RlclN0cmluZyxcbn0gZnJvbSAnLi4vaXNvMTkxMzkvd3JpdGUtcGFydHMnXG5pbXBvcnQgeyBmaW5kSWRlbnRpZmljYXRpb24gfSBmcm9tICcuLi9pc28xOTEzOS9yZWFkLXBhcnRzJ1xuaW1wb3J0IHsgbmFtZVBhcnRzVG9GdWxsIH0gZnJvbSAnLi4vaXNvMTkxMzkvdXRpbHMvaW5kaXZpZHVhbC1uYW1lJ1xuaW1wb3J0IHsgTEFOR18yX1RPXzNfTUFQUEVSIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjL2xpYi9sYW5ndWFnZS1jb2RlcydcbmltcG9ydCB7IGtpbmRUb0NvZGVMaXN0VmFsdWUgfSBmcm9tICcuLi9jb21tb24vcmVzb3VyY2UtdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVVuaXF1ZUlkZW50aWZpZXIoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcGlwZShcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZShcbiAgICAgICdtZGI6bWV0YWRhdGFJZGVudGlmaWVyJyxcbiAgICAgICdtY2M6TURfSWRlbnRpZmllcicsXG4gICAgICAnbWNjOmNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUtpbmQocmVjb3JkOiBDYXRhbG9nUmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgY29uc3Qga2luZCA9IGtpbmRUb0NvZGVMaXN0VmFsdWUocmVjb3JkKVxuICBwaXBlKFxuICAgIGZpbmROZXN0ZWRDaGlsZE9yQ3JlYXRlKFxuICAgICAgJ21kYjptZXRhZGF0YVNjb3BlJyxcbiAgICAgICdtZGI6TURfTWV0YWRhdGFTY29wZScsXG4gICAgICAnbWRiOnJlc291cmNlU2NvcGUnLFxuICAgICAgJ21jYzpNRF9TY29wZUNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICdjb2RlTGlzdCcsXG4gICAgICAnaHR0cHM6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvcmVzb3VyY2VzL0NvZGVsaXN0cy9jYXQvY29kZWxpc3RzLnhtbCNNRF9TY29wZUNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScsIGtpbmQpLFxuICAgIHNldFRleHRDb250ZW50KGtpbmQpXG4gICkocm9vdEVsKVxufVxuXG5mdW5jdGlvbiByZW1vdmVSZWNvcmREYXRlKHR5cGU6ICdyZXZpc2lvbicgfCAnY3JlYXRpb24nIHwgJ3B1YmxpY2F0aW9uJykge1xuICByZXR1cm4gcmVtb3ZlQ2hpbGRyZW4oXG4gICAgcGlwZShcbiAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21kYjpkYXRlSW5mbycsIGZhbHNlKSxcbiAgICAgIGZpbHRlckFycmF5KFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ2NpdDpDSV9EYXRlVHlwZUNvZGUnKSxcbiAgICAgICAgICByZWFkQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJyksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHR5cGUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuZnVuY3Rpb24gYXBwZW5kUmVjb3JkRGF0ZShcbiAgZGF0ZTogRGF0ZSxcbiAgdHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nXG4pIHtcbiAgcmV0dXJuIGFwcGVuZENoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBjcmVhdGVFbGVtZW50KCdtZGI6ZGF0ZUluZm8nKSxcbiAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZScpLFxuICAgICAgYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnY2l0OmRhdGUnKSwgd3JpdGVEYXRlVGltZShkYXRlKSksXG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OmRhdGVUeXBlJyksXG4gICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9EYXRlVHlwZUNvZGUnKSxcbiAgICAgICAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICdjb2RlTGlzdCcsXG4gICAgICAgICAgICAnaHR0cHM6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvcmVzb3VyY2VzL0NvZGVsaXN0cy9jYXQvY29kZWxpc3RzLnhtbCNDSV9EYXRlVHlwZUNvZGUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScsIHR5cGUpLFxuICAgICAgICAgIHNldFRleHRDb250ZW50KHR5cGUpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUmVjb3JkVXBkYXRlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkge1xuICByZW1vdmVSZWNvcmREYXRlKCdyZXZpc2lvbicpKHJvb3RFbClcbiAgYXBwZW5kUmVjb3JkRGF0ZShyZWNvcmQucmVjb3JkVXBkYXRlZCwgJ3JldmlzaW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZWNvcmRDcmVhdGVkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHJlbW92ZVJlY29yZERhdGUoJ2NyZWF0aW9uJykocm9vdEVsKVxuICBpZiAoIXJlY29yZC5yZWNvcmRDcmVhdGVkKSByZXR1cm5cbiAgYXBwZW5kUmVjb3JkRGF0ZShyZWNvcmQucmVjb3JkQ3JlYXRlZCwgJ2NyZWF0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZWNvcmRQdWJsaXNoZWQoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcmVtb3ZlUmVjb3JkRGF0ZSgncHVibGljYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlY29yZFB1Ymxpc2hlZCkgcmV0dXJuXG4gIGFwcGVuZFJlY29yZERhdGUocmVjb3JkLnJlY29yZFB1Ymxpc2hlZCwgJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5mdW5jdGlvbiByZW1vdmVSZXNvdXJjZURhdGUodHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIGZpbmRPckNyZWF0ZUlkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoJ21yaTpjaXRhdGlvbicsICdjaXQ6Q0lfQ2l0YXRpb24nKSxcbiAgICByZW1vdmVDaGlsZHJlbihcbiAgICAgIHBpcGUoXG4gICAgICAgIGZpbmRDaGlsZHJlbkVsZW1lbnQoJ2NpdDpkYXRlJywgZmFsc2UpLFxuICAgICAgICBmaWx0ZXJBcnJheShcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgZmluZENoaWxkRWxlbWVudCgnY2l0OkNJX0RhdGVUeXBlQ29kZScpLFxuICAgICAgICAgICAgcmVhZEF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScpLFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHR5cGUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIGFwcGVuZFJlc291cmNlRGF0ZShcbiAgZGF0ZTogRGF0ZSxcbiAgdHlwZTogJ3JldmlzaW9uJyB8ICdjcmVhdGlvbicgfCAncHVibGljYXRpb24nXG4pIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZElkZW50aWZpY2F0aW9uKCksXG4gICAgZmluZE5lc3RlZEVsZW1lbnQoJ21yaTpjaXRhdGlvbicsICdjaXQ6Q0lfQ2l0YXRpb24nKSxcbiAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgIHBpcGUoXG4gICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpkYXRlJyksXG4gICAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZScpLFxuICAgICAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKGNyZWF0ZUVsZW1lbnQoJ2NpdDpkYXRlJyksIHdyaXRlRGF0ZVRpbWUoZGF0ZSkpLFxuICAgICAgICAgIHBpcGUoXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZGF0ZVR5cGUnKSxcbiAgICAgICAgICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfRGF0ZVR5cGVDb2RlJyksXG4gICAgICAgICAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgJ2NvZGVMaXN0JyxcbiAgICAgICAgICAgICAgJ2h0dHBzOi8vc3RhbmRhcmRzLmlzby5vcmcvaXNvLzE5MTE1L3Jlc291cmNlcy9Db2RlbGlzdHMvY2F0L2NvZGVsaXN0cy54bWwjQ0lfRGF0ZVR5cGVDb2RlJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdyaXRlQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJywgdHlwZSksXG4gICAgICAgICAgICBzZXRUZXh0Q29udGVudCh0eXBlKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZXNvdXJjZVVwZGF0ZWQoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgcmVtb3ZlUmVzb3VyY2VEYXRlKCdyZXZpc2lvbicpKHJvb3RFbClcbiAgaWYgKCFyZWNvcmQucmVzb3VyY2VVcGRhdGVkKSByZXR1cm5cbiAgYXBwZW5kUmVzb3VyY2VEYXRlKHJlY29yZC5yZXNvdXJjZVVwZGF0ZWQsICdyZXZpc2lvbicpKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUmVzb3VyY2VDcmVhdGVkKFxuICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gIHJvb3RFbDogWG1sRWxlbWVudFxuKSB7XG4gIHJlbW92ZVJlc291cmNlRGF0ZSgnY3JlYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlc291cmNlQ3JlYXRlZCkgcmV0dXJuXG4gIGFwcGVuZFJlc291cmNlRGF0ZShyZWNvcmQucmVzb3VyY2VDcmVhdGVkLCAnY3JlYXRpb24nKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVJlc291cmNlUHVibGlzaGVkKFxuICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gIHJvb3RFbDogWG1sRWxlbWVudFxuKSB7XG4gIHJlbW92ZVJlc291cmNlRGF0ZSgncHVibGljYXRpb24nKShyb290RWwpXG4gIGlmICghcmVjb3JkLnJlc291cmNlUHVibGlzaGVkKSByZXR1cm5cbiAgYXBwZW5kUmVzb3VyY2VEYXRlKHJlY29yZC5yZXNvdXJjZVB1Ymxpc2hlZCwgJ3B1YmxpY2F0aW9uJykocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVSZXVzZVR5cGUocmVjb3JkOiBDYXRhbG9nUmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgd3JpdGVLaW5kKHJlY29yZCwgcm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kUmVzcG9uc2libGVQYXJ0eShcbiAgY29udGFjdDogSW5kaXZpZHVhbCxcbiAgZGVmYXVsdExhbmd1YWdlOiBMYW5ndWFnZUNvZGVcbikge1xuICBjb25zdCBmdWxsTmFtZSA9IG5hbWVQYXJ0c1RvRnVsbChjb250YWN0LmZpcnN0TmFtZSwgY29udGFjdC5sYXN0TmFtZSlcblxuICBjb25zdCBjcmVhdGVJbmRpdmlkdWFsID0gcGlwZShcbiAgICBjcmVhdGVFbGVtZW50KCdjaXQ6aW5kaXZpZHVhbCcpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfSW5kaXZpZHVhbCcpLFxuICAgIGZ1bGxOYW1lXG4gICAgICA/IGFwcGVuZENoaWxkcmVuKFxuICAgICAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnY2l0Om5hbWUnKSwgd3JpdGVDaGFyYWN0ZXJTdHJpbmcoZnVsbE5hbWUpKVxuICAgICAgICApXG4gICAgICA6IG5vb3AsXG4gICAgY29udGFjdC5wb3NpdGlvblxuICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OnBvc2l0aW9uTmFtZScpLFxuICAgICAgICAgICAgd3JpdGVDaGFyYWN0ZXJTdHJpbmcoY29udGFjdC5wb3NpdGlvbilcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIDogbm9vcFxuICApXG5cbiAgY29uc3QgY3JlYXRlQ29udGFjdEluZm8gPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpjb250YWN0SW5mbycpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfQ29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgcGlwZShcbiAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OmFkZHJlc3MnKSxcbiAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9BZGRyZXNzJyksXG4gICAgICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgICAgIHBpcGUoXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZWxlY3Ryb25pY01haWxBZGRyZXNzJyksXG4gICAgICAgICAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhjb250YWN0LmVtYWlsKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFjdC5hZGRyZXNzXG4gICAgICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICAgICAgcGlwZShcbiAgICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6ZGVsaXZlcnlQb2ludCcpLFxuICAgICAgICAgICAgICAgIHdyaXRlQ2hhcmFjdGVyU3RyaW5nKGNvbnRhY3QuYWRkcmVzcylcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbm9vcFxuICAgICAgKVxuICAgICksXG4gICAgY29udGFjdC5vcmdhbml6YXRpb24/LndlYnNpdGVcbiAgICAgID8gYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgICAgcGlwZShcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpvbmxpbmVSZXNvdXJjZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9PbmxpbmVSZXNvdXJjZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpsaW5rYWdlJyksXG4gICAgICAgICAgICB3cml0ZUNoYXJhY3RlclN0cmluZyhjb250YWN0Lm9yZ2FuaXphdGlvbi53ZWJzaXRlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IG5vb3AsXG4gICAgY29udGFjdC5waG9uZVxuICAgICAgPyBhcHBlbmRDaGlsZHJlbihcbiAgICAgICAgICBwaXBlKFxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudCgnY2l0OnBob25lJyksXG4gICAgICAgICAgICBjcmVhdGVDaGlsZCgnY2l0OkNJX1RlbGVwaG9uZScpLFxuICAgICAgICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpudW1iZXInKSxcbiAgICAgICAgICAgIHdyaXRlQ2hhcmFjdGVyU3RyaW5nKGNvbnRhY3QucGhvbmUpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IG5vb3BcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZVJvbGUgPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpyb2xlJyksXG4gICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9Sb2xlQ29kZScpLFxuICAgIHdyaXRlQXR0cmlidXRlKFxuICAgICAgJ2NvZGVMaXN0JyxcbiAgICAgICdodHRwczovL3N0YW5kYXJkcy5pc28ub3JnL2lzby8xOTExNS9yZXNvdXJjZXMvQ29kZWxpc3RzL2NhdC9jb2RlbGlzdHMueG1sI0NJX1JvbGVDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnLCBnZXRSb2xlQ29kZShjb250YWN0LnJvbGUpKSxcbiAgICBzZXRUZXh0Q29udGVudChnZXRSb2xlQ29kZShjb250YWN0LnJvbGUpKVxuICApXG5cbiAgY29uc3QgY3JlYXRlUGFydHkgPSBwaXBlKFxuICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpwYXJ0eScpLFxuICAgIGNyZWF0ZUNoaWxkKCdjaXQ6Q0lfT3JnYW5pc2F0aW9uJyksXG4gICAgY29udGFjdC5vcmdhbml6YXRpb24/Lm5hbWVcbiAgICAgID8gYXBwZW5kQ2hpbGRyZW4oXG4gICAgICAgICAgcGlwZShcbiAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQoJ2NpdDpuYW1lJyksXG4gICAgICAgICAgICB3cml0ZUxvY2FsaXplZENoYXJhY3RlclN0cmluZyhcbiAgICAgICAgICAgICAgY29udGFjdC5vcmdhbml6YXRpb24/Lm5hbWUsXG4gICAgICAgICAgICAgIGNvbnRhY3Qub3JnYW5pemF0aW9uPy50cmFuc2xhdGlvbnM/Lm5hbWUsXG4gICAgICAgICAgICAgIGRlZmF1bHRMYW5ndWFnZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgOiBub29wLFxuICAgIGFwcGVuZENoaWxkcmVuKGNyZWF0ZUNvbnRhY3RJbmZvLCBjcmVhdGVJbmRpdmlkdWFsKVxuICApXG5cbiAgcmV0dXJuIGFwcGVuZENoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBjcmVhdGVFbGVtZW50KCdjaXQ6Q0lfUmVzcG9uc2liaWxpdHknKSxcbiAgICAgIGFwcGVuZENoaWxkcmVuKGNyZWF0ZVJvbGUsIGNyZWF0ZVBhcnR5KVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb250YWN0cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQsIHJvb3RFbDogWG1sRWxlbWVudCkge1xuICBwaXBlKFxuICAgIHJlbW92ZUNoaWxkcmVuQnlOYW1lKCdtZGI6Y29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgLi4ucmVjb3JkLmNvbnRhY3RzLm1hcCgoY29udGFjdCkgPT5cbiAgICAgICAgcGlwZShcbiAgICAgICAgICBjcmVhdGVFbGVtZW50KCdnbWQ6Y29udGFjdCcpLFxuICAgICAgICAgIGFwcGVuZFJlc3BvbnNpYmxlUGFydHkoY29udGFjdCwgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNvbnRhY3RzRm9yUmVzb3VyY2UoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgcm9vdEVsOiBYbWxFbGVtZW50XG4pIHtcbiAgY29uc3Qgd2l0aG91dERpc3RyaWJ1dG9ycyA9IHJlY29yZC5jb250YWN0c0ZvclJlc291cmNlLmZpbHRlcihcbiAgICAoYykgPT4gYy5yb2xlICE9PSAnZGlzdHJpYnV0b3InXG4gIClcbiAgY29uc3QgZGlzdHJpYnV0b3JzID0gcmVjb3JkLmNvbnRhY3RzRm9yUmVzb3VyY2UuZmlsdGVyKFxuICAgIChjKSA9PiBjLnJvbGUgPT09ICdkaXN0cmlidXRvcidcbiAgKVxuICBwaXBlKFxuICAgIGZpbmRPckNyZWF0ZUlkZW50aWZpY2F0aW9uKCksXG4gICAgcmVtb3ZlQ2hpbGRyZW5CeU5hbWUoJ21yaTpwb2ludE9mQ29udGFjdCcpLFxuICAgIGFwcGVuZENoaWxkcmVuKFxuICAgICAgLi4ud2l0aG91dERpc3RyaWJ1dG9ycy5tYXAoKGNvbnRhY3QpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnbXJpOnBvaW50T2ZDb250YWN0JyksXG4gICAgICAgICAgYXBwZW5kUmVzcG9uc2libGVQYXJ0eShjb250YWN0LCByZWNvcmQuZGVmYXVsdExhbmd1YWdlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApKHJvb3RFbClcbiAgaWYgKCFkaXN0cmlidXRvcnMubGVuZ3RoKSByZXR1cm5cbiAgcGlwZShcbiAgICBmaW5kT3JDcmVhdGVEaXN0cmlidXRpb24oKSxcbiAgICByZW1vdmVDaGlsZHJlbkJ5TmFtZSgnbXJkOmRpc3RyaWJ1dG9yJyksXG4gICAgY3JlYXRlQ2hpbGQoJ21yZDpkaXN0cmlidXRvcicpLFxuICAgIGNyZWF0ZUNoaWxkKCdtcmQ6TURfRGlzdHJpYnV0b3InKSxcbiAgICBhcHBlbmRDaGlsZHJlbihcbiAgICAgIC4uLmRpc3RyaWJ1dG9ycy5tYXAoKGNvbnRhY3QpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgY3JlYXRlRWxlbWVudCgnbXJkOmRpc3RyaWJ1dG9yQ29udGFjdCcpLFxuICAgICAgICAgIGFwcGVuZFJlc3BvbnNpYmxlUGFydHkoY29udGFjdCwgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUtleXdvcmRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICByZW1vdmVLZXl3b3JkcygpLFxuICAgIGFwcGVuZEtleXdvcmRzKHJlY29yZC5rZXl3b3JkcywgcmVjb3JkLmRlZmF1bHRMYW5ndWFnZSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUxhbmRpbmdQYWdlKHJlY29yZDogRGF0YXNldFJlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoXG4gICAgICAnbWRiOm1ldGFkYXRhTGlua2FnZScsXG4gICAgICAnY2l0OkNJX09ubGluZVJlc291cmNlJyxcbiAgICAgICdjaXQ6bGlua2FnZSdcbiAgICApLFxuICAgIHdyaXRlTGlua2FnZShyZWNvcmQubGFuZGluZ1BhZ2UpXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVMaW5lYWdlKHJlY29yZDogRGF0YXNldFJlY29yZCwgcm9vdEVsOiBYbWxFbGVtZW50KSB7XG4gIHBpcGUoXG4gICAgZmluZE5lc3RlZENoaWxkT3JDcmVhdGUoXG4gICAgICAnbWRiOnJlc291cmNlTGluZWFnZScsXG4gICAgICAnbXJsOkxJX0xpbmVhZ2UnLFxuICAgICAgJ21ybDpzdGF0ZW1lbnQnXG4gICAgKSxcbiAgICB3cml0ZUxvY2FsaXplZENoYXJhY3RlclN0cmluZyhcbiAgICAgIHJlY29yZC5saW5lYWdlLFxuICAgICAgcmVjb3JkLnRyYW5zbGF0aW9ucz8ubGluZWFnZSxcbiAgICAgIHJlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcbiAgICApXG4gICkocm9vdEVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVTdGF0dXMocmVjb3JkOiBEYXRhc2V0UmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgY29uc3QgcHJvZ3Jlc3NDb2RlID0gZ2V0UHJvZ3Jlc3NDb2RlKHJlY29yZC5zdGF0dXMpXG4gIHBpcGUoXG4gICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZSgnbXJpOnN0YXR1cycsICdtY2M6TURfUHJvZ3Jlc3NDb2RlJyksXG4gICAgd3JpdGVBdHRyaWJ1dGUoXG4gICAgICAnY29kZUxpc3QnLFxuICAgICAgJ2h0dHBzOi8vc3RhbmRhcmRzLmlzby5vcmcvaXNvLzE5MTE1L3Jlc291cmNlcy9Db2RlbGlzdHMvY2F0L2NvZGVsaXN0cy54bWwjTURfUHJvZ3Jlc3NDb2RlJ1xuICAgICksXG4gICAgd3JpdGVBdHRyaWJ1dGUoJ2NvZGVMaXN0VmFsdWUnLCBwcm9ncmVzc0NvZGUpLFxuICAgIHNldFRleHRDb250ZW50KHByb2dyZXNzQ29kZSlcbiAgKShyb290RWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVNwYXRpYWxSZXByZXNlbnRhdGlvbihcbiAgcmVjb3JkOiBEYXRhc2V0UmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICBpZiAoIXJlY29yZC5zcGF0aWFsUmVwcmVzZW50YXRpb24pIHtcbiAgICBwaXBlKFxuICAgICAgZmluZE9yQ3JlYXRlSWRlbnRpZmljYXRpb24oKSxcbiAgICAgIHJlbW92ZUNoaWxkcmVuQnlOYW1lKCdtcmk6c3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZScpXG4gICAgKShyb290RWwpXG4gICAgcmV0dXJuXG4gIH1cbiAgcGlwZShcbiAgICBmaW5kT3JDcmVhdGVJZGVudGlmaWNhdGlvbigpLFxuICAgIGZpbmROZXN0ZWRDaGlsZE9yQ3JlYXRlKFxuICAgICAgJ21yaTpzcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlJyxcbiAgICAgICdtY2M6TURfU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZUNvZGUnXG4gICAgKSxcbiAgICB3cml0ZUF0dHJpYnV0ZShcbiAgICAgICdjb2RlTGlzdCcsXG4gICAgICAnaHR0cHM6Ly9zdGFuZGFyZHMuaXNvLm9yZy9pc28vMTkxMTUvcmVzb3VyY2VzL0NvZGVsaXN0cy9jYXQvY29kZWxpc3RzLnhtbCNNRF9TcGF0aWFsUmVwcmVzZW50YXRpb25UeXBlQ29kZSdcbiAgICApLFxuICAgIHdyaXRlQXR0cmlidXRlKCdjb2RlTGlzdFZhbHVlJywgcmVjb3JkLnNwYXRpYWxSZXByZXNlbnRhdGlvbiksXG4gICAgc2V0VGV4dENvbnRlbnQocmVjb3JkLnNwYXRpYWxSZXByZXNlbnRhdGlvbilcbiAgKShyb290RWwpXG59XG5cbi8vIHRoaXMgd2lsbCByZW1vdmUgYWxsIHRyYW5zZmVyIG9wdGlvbnMgYW5kIGZvcm1hdHMgZnJvbSBkaXN0cmlidXRpb24gaW5mb1xuLy8gYW5kIHJlbW92ZSBlbXB0eSBkaXN0cmlidXRpb24gaW5mb1xuZnVuY3Rpb24gcmVtb3ZlVHJhbnNmZXJPcHRpb25zKHJvb3RFbDogWG1sRWxlbWVudCkge1xuICAvLyByZW1vdmUgdHJhbnNmZXIgb3B0aW9ucyAmIGZvcm1hdHNcbiAgcGlwZShcbiAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ21kYjpkaXN0cmlidXRpb25JbmZvJywgJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICBtYXBBcnJheShcbiAgICAgIHBpcGUoXG4gICAgICAgIHJlbW92ZUNoaWxkcmVuKGZpbmRDaGlsZHJlbkVsZW1lbnQoJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnLCBmYWxzZSkpLFxuICAgICAgICByZW1vdmVDaGlsZHJlbihmaW5kQ2hpbGRyZW5FbGVtZW50KCdtcmQ6dHJhbnNmZXJPcHRpb25zJywgZmFsc2UpKVxuICAgICAgKVxuICAgIClcbiAgKShyb290RWwpXG4gIC8vIHJlbW92ZSBlbXB0eSBkaXN0cmlidXRpb25zXG4gIHJlbW92ZUNoaWxkcmVuKFxuICAgIHBpcGUoXG4gICAgICBmaW5kQ2hpbGRyZW5FbGVtZW50KCdtZGI6ZGlzdHJpYnV0aW9uSW5mbycsIGZhbHNlKSxcbiAgICAgIGZpbHRlckFycmF5KFxuICAgICAgICBwaXBlKFxuICAgICAgICAgIGZpbmRDaGlsZEVsZW1lbnQoJ21yZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICAgICAgICBhbGxDaGlsZHJlbkVsZW1lbnQsXG4gICAgICAgICAgbWFwKChjaGlsZHJlbikgPT4gY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApKHJvb3RFbClcbn1cblxuZnVuY3Rpb24gYXBwZW5kT25saW5lUmVzb3VyY2VGb3JtYXQobWltZVR5cGU6IHN0cmluZykge1xuICByZXR1cm4gYXBwZW5kQ2hpbGRyZW4oXG4gICAgcGlwZShcbiAgICAgIGNyZWF0ZUVsZW1lbnQoJ21yZDpkaXN0cmlidXRpb25Gb3JtYXQnKSxcbiAgICAgIGNyZWF0ZUNoaWxkKCdtcmQ6TURfRm9ybWF0JyksXG4gICAgICBjcmVhdGVDaGlsZCgnbXJkOmZvcm1hdFNwZWNpZmljYXRpb25DaXRhdGlvbicpLFxuICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDpDSV9DaXRhdGlvbicpLFxuICAgICAgY3JlYXRlQ2hpbGQoJ2NpdDp0aXRsZScpLFxuICAgICAgd3JpdGVDaGFyYWN0ZXJTdHJpbmcobWltZVR5cGUpXG4gICAgKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZU9ubGluZVJlc291cmNlcyhcbiAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICByZW1vdmVUcmFuc2Zlck9wdGlvbnMocm9vdEVsKVxuXG4gIGlmIChyZWNvcmQua2luZCA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgYXBwZW5kU2VydmljZU9ubGluZVJlc291cmNlcyhyZWNvcmQsIHJvb3RFbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGZvciBlYWNoIG9ubGluZSByZXNvdXJjZSwgZWl0aGVyIGZpbmQgYW4gZXhpc3RpbmcgZGlzdHJpYnV0aW9uIGluZm8gb3IgY3JlYXRlIGEgbmV3IG9uZVxuICByZWNvcmQub25saW5lUmVzb3VyY2VzLmZvckVhY2goKG9ubGluZVJlc291cmNlLCBpbmRleCkgPT4ge1xuICAgIHBpcGUoXG4gICAgICBmYWxsYmFjayhcbiAgICAgICAgcGlwZShcbiAgICAgICAgICBmaW5kTmVzdGVkRWxlbWVudHMoJ2dtZDpkaXN0cmlidXRpb25JbmZvJywgJ2dtZDpNRF9EaXN0cmlidXRpb24nKSxcbiAgICAgICAgICBnZXRBdEluZGV4KGluZGV4KVxuICAgICAgICApLFxuICAgICAgICBhcHBlbmRDaGlsZFRyZWUoY3JlYXRlRGlzdHJpYnV0aW9uSW5mbygpKVxuICAgICAgKSxcbiAgICAgIGFwcGVuZE9ubGluZVJlc291cmNlKFxuICAgICAgICBvbmxpbmVSZXNvdXJjZSxcbiAgICAgICAgYXBwZW5kT25saW5lUmVzb3VyY2VGb3JtYXQsXG4gICAgICAgIHJlY29yZC50cmFuc2xhdGlvbnMsXG4gICAgICAgIHJlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgIClcbiAgICApKHJvb3RFbClcbiAgfSlcbn1cblxuZnVuY3Rpb24gd3JpdGVMb2NhbGVFbGVtZW50KGxhbmd1YWdlOiBMYW5ndWFnZUNvZGUpIHtcbiAgY29uc3QgbGFuZzMgPSBMQU5HXzJfVE9fM19NQVBQRVJbbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKV1cbiAgcmV0dXJuIHBpcGUoXG4gICAgZmluZENoaWxkT3JDcmVhdGUoJ2xhbjpQVF9Mb2NhbGUnKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnaWQnLCBsYW5ndWFnZS50b1VwcGVyQ2FzZSgpKSxcbiAgICBmaW5kTmVzdGVkQ2hpbGRPckNyZWF0ZSgnbGFuOmxhbmd1YWdlJywgJ2dtZDpMYW5ndWFnZUNvZGUnKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3QnLCAnaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi8nKSxcbiAgICB3cml0ZUF0dHJpYnV0ZSgnY29kZUxpc3RWYWx1ZScsIGxhbmczKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURlZmF1bHRMYW5ndWFnZShcbiAgcmVjb3JkOiBEYXRhc2V0UmVjb3JkLFxuICByb290RWw6IFhtbEVsZW1lbnRcbikge1xuICBwaXBlKFxuICAgIGZpbmRDaGlsZE9yQ3JlYXRlKCdtZGI6ZGVmYXVsdExvY2FsZScpLFxuICAgIHdyaXRlTG9jYWxlRWxlbWVudChyZWNvcmQuZGVmYXVsdExhbmd1YWdlKVxuICApKHJvb3RFbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlT3RoZXJMYW5ndWFnZXMocmVjb3JkOiBEYXRhc2V0UmVjb3JkLCByb290RWw6IFhtbEVsZW1lbnQpIHtcbiAgLy8gY2xlYXIgZXhpc3RpbmdcbiAgcmVtb3ZlQ2hpbGRyZW5CeU5hbWUoJ21kYjpvdGhlckxvY2FsZScpKHJvb3RFbClcblxuICAvLyBkbyBub3Qgd3JpdGUgZG93biBsYW5ndWFnZXMgaWYgdGhlcmUgaXMgbm90aGluZyBlbHNlIHRoYW4gdGhlIGRlZmF1bHQgb25lXG4gIGlmICghcmVjb3JkLm90aGVyTGFuZ3VhZ2VzPy5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGFwcGVuZENoaWxkcmVuKFxuICAgIC4uLnJlY29yZC5vdGhlckxhbmd1YWdlcy5tYXAoKGxhbmc6IExhbmd1YWdlQ29kZSkgPT5cbiAgICAgIHBpcGUoY3JlYXRlRWxlbWVudCgnbWRiOm90aGVyTG9jYWxlJyksIHdyaXRlTG9jYWxlRWxlbWVudChsYW5nKSlcbiAgICApXG4gICkocm9vdEVsKVxufVxuIl19
|