@mnaoumov/obsidian-lib 1.0.0 → 1.0.1
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 +9 -1
- package/dist/lib/cjs/__merged.cjs +40 -64
- package/dist/lib/cjs/active-file-provider.cjs +40 -64
- package/dist/lib/cjs/app.cjs +40 -64
- package/dist/lib/cjs/async-with-notice.cjs +40 -64
- package/dist/lib/cjs/attachment-path.cjs +40 -64
- package/dist/lib/cjs/attachment-unit-folder.cjs +40 -64
- package/dist/lib/cjs/backlink-index.cjs +41 -65
- package/dist/lib/cjs/backlink.cjs +40 -64
- package/dist/lib/cjs/bases-view-registrar.cjs +40 -64
- package/dist/lib/cjs/callout.cjs +40 -64
- package/dist/lib/cjs/canvas.cjs +40 -64
- package/dist/lib/cjs/case-insensitive-file-index.cjs +40 -64
- package/dist/lib/cjs/code-block-markdown-information.cjs +40 -64
- package/dist/lib/cjs/code-block-reg-exp.cjs +40 -64
- package/dist/lib/cjs/codemirror/index.cjs +40 -64
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +40 -64
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/command-handler-component.cjs +40 -64
- package/dist/lib/cjs/command-handlers/command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/file-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/global-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/index.cjs +40 -64
- package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-registrar.cjs +40 -64
- package/dist/lib/cjs/community-plugins.cjs +40 -64
- package/dist/lib/cjs/components/abort-signal-component.cjs +40 -64
- package/dist/lib/cjs/components/all-windows-event-component.cjs +40 -64
- package/dist/lib/cjs/components/async-error-handler-component.cjs +40 -64
- package/dist/lib/cjs/components/async-events-component.cjs +40 -64
- package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +40 -64
- package/dist/lib/cjs/components/component-ex.cjs +41 -65
- package/dist/lib/cjs/components/console-debug-component.cjs +40 -64
- package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +40 -64
- package/dist/lib/cjs/components/disposable-component.cjs +40 -64
- package/dist/lib/cjs/components/embed-extensions-component.cjs +40 -64
- package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +40 -64
- package/dist/lib/cjs/components/index.cjs +40 -64
- package/dist/lib/cjs/components/layout-ready-component.cjs +40 -64
- package/dist/lib/cjs/components/menu-event-registrar-component.cjs +40 -64
- package/dist/lib/cjs/components/monkey-around-component.cjs +40 -64
- package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-context-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-gate-component.cjs +41 -65
- package/dist/lib/cjs/components/plugin-notice-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-settings-component.cjs +41 -65
- package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +40 -64
- package/dist/lib/cjs/components/pointer-position-component.cjs +40 -64
- package/dist/lib/cjs/components/registry-component.cjs +40 -64
- package/dist/lib/cjs/components/release-notes-component.cjs +40 -64
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +40 -64
- package/dist/lib/cjs/components/rmdir-guard-component.cjs +40 -64
- package/dist/lib/cjs/components/settings-migration-component.cjs +40 -64
- package/dist/lib/cjs/components/syntax-highlighting-component.cjs +40 -64
- package/dist/lib/cjs/components/templates-language-component.cjs +40 -64
- package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +40 -64
- package/dist/lib/cjs/constructors/index.cjs +40 -64
- package/dist/lib/cjs/css-class.cjs +40 -64
- package/dist/lib/cjs/data-handler.cjs +40 -64
- package/dist/lib/cjs/dataview-link.cjs +40 -64
- package/dist/lib/cjs/dataview.cjs +40 -64
- package/dist/lib/cjs/debug.cjs +40 -64
- package/dist/lib/cjs/demo-vault-helper-settings.cjs +40 -64
- package/dist/lib/cjs/demo-vault-helper.cjs +40 -64
- package/dist/lib/cjs/demo-vault-naming.cjs +40 -64
- package/dist/lib/cjs/desktop-demo-vault-opener.cjs +40 -64
- package/dist/lib/cjs/desktop-trusted-input.cjs +40 -64
- package/dist/lib/cjs/editor-extension-registrar.cjs +40 -64
- package/dist/lib/cjs/editor-suggest-registrar.cjs +40 -64
- package/dist/lib/cjs/editor.cjs +40 -64
- package/dist/lib/cjs/events.cjs +40 -64
- package/dist/lib/cjs/extensions-registrar.cjs +40 -64
- package/dist/lib/cjs/file-change.cjs +40 -64
- package/dist/lib/cjs/file-explorer.cjs +40 -64
- package/dist/lib/cjs/file-manager.cjs +40 -64
- package/dist/lib/cjs/file-system.cjs +40 -64
- package/dist/lib/cjs/folder-note.cjs +40 -64
- package/dist/lib/cjs/frontmatter-formatting.cjs +41 -65
- package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +40 -64
- package/dist/lib/cjs/frontmatter.cjs +40 -64
- package/dist/lib/cjs/generated-during-build.cjs +41 -65
- package/dist/lib/cjs/generated-during-build.d.cts +8 -2
- package/dist/lib/cjs/hover-link-source-registrar.cjs +40 -64
- package/dist/lib/cjs/html-element.cjs +40 -64
- package/dist/lib/cjs/i18n/custom-type-options.cjs +40 -64
- package/dist/lib/cjs/i18n/default-translations.cjs +40 -64
- package/dist/lib/cjs/i18n/i18n.cjs +40 -64
- package/dist/lib/cjs/i18n/index.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/en.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/index.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/translations-map.cjs +40 -64
- package/dist/lib/cjs/index.cjs +40 -64
- package/dist/lib/cjs/is-in-obsidian.cjs +40 -64
- package/dist/lib/cjs/library-styles.cjs +40 -64
- package/dist/lib/cjs/library.cjs +40 -64
- package/dist/lib/cjs/link-name.cjs +40 -64
- package/dist/lib/cjs/link-update-progress.cjs +40 -64
- package/dist/lib/cjs/link.cjs +40 -64
- package/dist/lib/cjs/logger.cjs +40 -64
- package/dist/lib/cjs/loop.cjs +40 -64
- package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +40 -64
- package/dist/lib/cjs/markdown-code-block-processor.cjs +40 -64
- package/dist/lib/cjs/markdown-post-processor-registrar.cjs +40 -64
- package/dist/lib/cjs/markdown-view.cjs +40 -64
- package/dist/lib/cjs/markdown.cjs +40 -64
- package/dist/lib/cjs/menu-event-registrar.cjs +40 -64
- package/dist/lib/cjs/metadata-cache.cjs +40 -64
- package/dist/lib/cjs/mobile-trusted-input.cjs +40 -64
- package/dist/lib/cjs/modals/alert.cjs +40 -64
- package/dist/lib/cjs/modals/confirm.cjs +40 -64
- package/dist/lib/cjs/modals/index.cjs +40 -64
- package/dist/lib/cjs/modals/minimizable-modal.cjs +40 -64
- package/dist/lib/cjs/modals/modal-command-builder.cjs +40 -64
- package/dist/lib/cjs/modals/modal.cjs +40 -64
- package/dist/lib/cjs/modals/prompt.cjs +40 -64
- package/dist/lib/cjs/modals/select-item.cjs +40 -64
- package/dist/lib/cjs/modals/select-option.cjs +40 -64
- package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +40 -64
- package/dist/lib/cjs/note-priority.cjs +41 -65
- package/dist/lib/cjs/notebook-navigator.cjs +40 -64
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +40 -64
- package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +40 -64
- package/dist/lib/cjs/obsidian-settings.cjs +40 -64
- package/dist/lib/cjs/parse-link.cjs +40 -64
- package/dist/lib/cjs/path-settings.cjs +40 -64
- package/dist/lib/cjs/pdf.cjs +40 -64
- package/dist/lib/cjs/plugin/index.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-api.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-context.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-event-source.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +41 -65
- package/dist/lib/cjs/plugin/plugin.cjs +41 -65
- package/dist/lib/cjs/plugin/settings-migration-api.cjs +40 -64
- package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +40 -64
- package/dist/lib/cjs/popovers/field-popover.cjs +40 -64
- package/dist/lib/cjs/popovers/index.cjs +40 -64
- package/dist/lib/cjs/popovers/popover-anchor.cjs +40 -64
- package/dist/lib/cjs/popovers/popover.cjs +40 -64
- package/dist/lib/cjs/property-entry.cjs +40 -64
- package/dist/lib/cjs/queue.cjs +40 -64
- package/dist/lib/cjs/react/app-context.cjs +40 -64
- package/dist/lib/cjs/react/index.cjs +40 -64
- package/dist/lib/cjs/reference.cjs +40 -64
- package/dist/lib/cjs/resource-lock.cjs +40 -64
- package/dist/lib/cjs/resource-url.cjs +40 -64
- package/dist/lib/cjs/ribbon-icon-registrar.cjs +40 -64
- package/dist/lib/cjs/setting-components/checkbox-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/date-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/date-time-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/email-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/file-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/index.cjs +40 -64
- package/dist/lib/cjs/setting-components/month-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/multiple-email-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-file-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-text-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/number-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/password-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +40 -64
- package/dist/lib/cjs/setting-components/telephone-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/text-based-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/time-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-text-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/url-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/validator-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +40 -64
- package/dist/lib/cjs/setting-components/week-component.cjs +40 -64
- package/dist/lib/cjs/setting-ex.cjs +40 -64
- package/dist/lib/cjs/setting-group-ex.cjs +40 -64
- package/dist/lib/cjs/status-bar-item-registrar.cjs +40 -64
- package/dist/lib/cjs/templater.cjs +40 -64
- package/dist/lib/cjs/transformers/duration-transformer.cjs +40 -64
- package/dist/lib/cjs/transformers/index.cjs +40 -64
- package/dist/lib/cjs/trusted-input.cjs +40 -64
- package/dist/lib/cjs/validation.cjs +40 -64
- package/dist/lib/cjs/vault-delete.cjs +40 -64
- package/dist/lib/cjs/vault-transaction.cjs +40 -64
- package/dist/lib/cjs/vault.cjs +41 -65
- package/dist/lib/cjs/view-registrar.cjs +40 -64
- package/dist/lib/cjs/workspace.cjs +40 -64
- package/dist/lib/esm/__merged.mjs +6 -14
- package/dist/lib/esm/active-file-provider.mjs +6 -14
- package/dist/lib/esm/app.mjs +6 -14
- package/dist/lib/esm/async-with-notice.mjs +6 -14
- package/dist/lib/esm/attachment-path.mjs +6 -14
- package/dist/lib/esm/attachment-unit-folder.mjs +6 -14
- package/dist/lib/esm/backlink-index.mjs +6 -14
- package/dist/lib/esm/backlink.mjs +6 -14
- package/dist/lib/esm/bases-view-registrar.mjs +6 -14
- package/dist/lib/esm/callout.mjs +6 -14
- package/dist/lib/esm/canvas.mjs +6 -14
- package/dist/lib/esm/case-insensitive-file-index.mjs +6 -14
- package/dist/lib/esm/code-block-markdown-information.mjs +5 -13
- package/dist/lib/esm/code-block-reg-exp.mjs +6 -14
- package/dist/lib/esm/codemirror/index.mjs +6 -14
- package/dist/lib/esm/codemirror/state-field-spec.mjs +5 -13
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/command-handler-component.mjs +6 -14
- package/dist/lib/esm/command-handlers/command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/editor-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/file-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/folder-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/global-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/index.mjs +6 -14
- package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +6 -14
- package/dist/lib/esm/command-registrar.mjs +6 -14
- package/dist/lib/esm/community-plugins.mjs +6 -14
- package/dist/lib/esm/components/abort-signal-component.mjs +6 -14
- package/dist/lib/esm/components/all-windows-event-component.mjs +6 -14
- package/dist/lib/esm/components/async-error-handler-component.mjs +6 -14
- package/dist/lib/esm/components/async-events-component.mjs +6 -14
- package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +6 -14
- package/dist/lib/esm/components/component-ex.mjs +6 -14
- package/dist/lib/esm/components/console-debug-component.mjs +6 -14
- package/dist/lib/esm/components/core-plugin-toggle-component.mjs +6 -14
- package/dist/lib/esm/components/disposable-component.mjs +6 -14
- package/dist/lib/esm/components/embed-extensions-component.mjs +6 -14
- package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +6 -14
- package/dist/lib/esm/components/index.mjs +6 -14
- package/dist/lib/esm/components/layout-ready-component.mjs +6 -14
- package/dist/lib/esm/components/menu-event-registrar-component.mjs +6 -14
- package/dist/lib/esm/components/monkey-around-component.mjs +6 -14
- package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-context-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-gate-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-notice-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-settings-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-settings-tab-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-suggestion-component.mjs +6 -14
- package/dist/lib/esm/components/pointer-position-component.mjs +6 -14
- package/dist/lib/esm/components/registry-component.mjs +6 -14
- package/dist/lib/esm/components/release-notes-component.mjs +6 -14
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +6 -14
- package/dist/lib/esm/components/rmdir-guard-component.mjs +6 -14
- package/dist/lib/esm/components/settings-migration-component.mjs +6 -14
- package/dist/lib/esm/components/syntax-highlighting-component.mjs +6 -14
- package/dist/lib/esm/components/templates-language-component.mjs +6 -14
- package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +6 -14
- package/dist/lib/esm/constructors/index.mjs +6 -14
- package/dist/lib/esm/css-class.mjs +6 -14
- package/dist/lib/esm/data-handler.mjs +6 -14
- package/dist/lib/esm/dataview-link.mjs +6 -14
- package/dist/lib/esm/dataview.mjs +6 -14
- package/dist/lib/esm/debug.mjs +6 -14
- package/dist/lib/esm/demo-vault-helper-settings.mjs +5 -13
- package/dist/lib/esm/demo-vault-helper.mjs +6 -14
- package/dist/lib/esm/demo-vault-naming.mjs +6 -14
- package/dist/lib/esm/desktop-demo-vault-opener.mjs +6 -14
- package/dist/lib/esm/desktop-trusted-input.mjs +6 -14
- package/dist/lib/esm/editor-extension-registrar.mjs +6 -14
- package/dist/lib/esm/editor-suggest-registrar.mjs +6 -14
- package/dist/lib/esm/editor.mjs +6 -14
- package/dist/lib/esm/events.mjs +6 -14
- package/dist/lib/esm/extensions-registrar.mjs +6 -14
- package/dist/lib/esm/file-change.mjs +6 -14
- package/dist/lib/esm/file-explorer.mjs +6 -14
- package/dist/lib/esm/file-manager.mjs +6 -14
- package/dist/lib/esm/file-system.mjs +6 -14
- package/dist/lib/esm/folder-note.mjs +6 -14
- package/dist/lib/esm/frontmatter-formatting.mjs +6 -14
- package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +6 -14
- package/dist/lib/esm/frontmatter.mjs +6 -14
- package/dist/lib/esm/generated-during-build.d.mts +8 -2
- package/dist/lib/esm/generated-during-build.mjs +7 -15
- package/dist/lib/esm/hover-link-source-registrar.mjs +6 -14
- package/dist/lib/esm/html-element.mjs +6 -14
- package/dist/lib/esm/i18n/custom-type-options.mjs +6 -14
- package/dist/lib/esm/i18n/default-translations.mjs +6 -14
- package/dist/lib/esm/i18n/i18n.mjs +6 -14
- package/dist/lib/esm/i18n/index.mjs +6 -14
- package/dist/lib/esm/i18n/locales/en.mjs +6 -14
- package/dist/lib/esm/i18n/locales/index.mjs +6 -14
- package/dist/lib/esm/i18n/locales/translations-map.mjs +6 -14
- package/dist/lib/esm/index.mjs +6 -14
- package/dist/lib/esm/is-in-obsidian.mjs +6 -14
- package/dist/lib/esm/library-styles.mjs +6 -14
- package/dist/lib/esm/library.mjs +6 -14
- package/dist/lib/esm/link-name.mjs +6 -14
- package/dist/lib/esm/link-update-progress.mjs +5 -13
- package/dist/lib/esm/link.mjs +6 -14
- package/dist/lib/esm/logger.mjs +6 -14
- package/dist/lib/esm/loop.mjs +6 -14
- package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +6 -14
- package/dist/lib/esm/markdown-code-block-processor.mjs +6 -14
- package/dist/lib/esm/markdown-post-processor-registrar.mjs +6 -14
- package/dist/lib/esm/markdown-view.mjs +6 -14
- package/dist/lib/esm/markdown.mjs +6 -14
- package/dist/lib/esm/menu-event-registrar.mjs +5 -13
- package/dist/lib/esm/metadata-cache.mjs +6 -14
- package/dist/lib/esm/mobile-trusted-input.mjs +6 -14
- package/dist/lib/esm/modals/alert.mjs +6 -14
- package/dist/lib/esm/modals/confirm.mjs +6 -14
- package/dist/lib/esm/modals/index.mjs +6 -14
- package/dist/lib/esm/modals/minimizable-modal.mjs +6 -14
- package/dist/lib/esm/modals/modal-command-builder.mjs +6 -14
- package/dist/lib/esm/modals/modal.mjs +6 -14
- package/dist/lib/esm/modals/prompt.mjs +6 -14
- package/dist/lib/esm/modals/select-item.mjs +6 -14
- package/dist/lib/esm/modals/select-option.mjs +6 -14
- package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +6 -14
- package/dist/lib/esm/note-priority.mjs +6 -14
- package/dist/lib/esm/notebook-navigator.mjs +6 -14
- package/dist/lib/esm/obsidian-dev-utils-state.mjs +6 -14
- package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +6 -14
- package/dist/lib/esm/obsidian-settings.mjs +6 -14
- package/dist/lib/esm/parse-link.mjs +6 -14
- package/dist/lib/esm/path-settings.mjs +6 -14
- package/dist/lib/esm/pdf.mjs +6 -14
- package/dist/lib/esm/plugin/index.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-api.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-context.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-event-source.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-install-state.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-settings-tab.mjs +6 -14
- package/dist/lib/esm/plugin/plugin.mjs +6 -14
- package/dist/lib/esm/plugin/settings-migration-api.mjs +5 -13
- package/dist/lib/esm/plugin-cli-handler-registrar.mjs +6 -14
- package/dist/lib/esm/popovers/field-popover.mjs +6 -14
- package/dist/lib/esm/popovers/index.mjs +6 -14
- package/dist/lib/esm/popovers/popover-anchor.mjs +6 -14
- package/dist/lib/esm/popovers/popover.mjs +6 -14
- package/dist/lib/esm/property-entry.mjs +6 -14
- package/dist/lib/esm/queue.mjs +6 -14
- package/dist/lib/esm/react/app-context.mjs +6 -14
- package/dist/lib/esm/react/index.mjs +6 -14
- package/dist/lib/esm/reference.mjs +6 -14
- package/dist/lib/esm/resource-lock.mjs +6 -14
- package/dist/lib/esm/resource-url.mjs +6 -14
- package/dist/lib/esm/ribbon-icon-registrar.mjs +6 -14
- package/dist/lib/esm/setting-components/checkbox-component.mjs +6 -14
- package/dist/lib/esm/setting-components/code-highlighter-component.mjs +6 -14
- package/dist/lib/esm/setting-components/date-component.mjs +6 -14
- package/dist/lib/esm/setting-components/date-time-component.mjs +6 -14
- package/dist/lib/esm/setting-components/email-component.mjs +6 -14
- package/dist/lib/esm/setting-components/file-component.mjs +6 -14
- package/dist/lib/esm/setting-components/index.mjs +6 -14
- package/dist/lib/esm/setting-components/month-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-email-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-file-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/number-component.mjs +6 -14
- package/dist/lib/esm/setting-components/password-component.mjs +6 -14
- package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +6 -14
- package/dist/lib/esm/setting-components/telephone-component.mjs +6 -14
- package/dist/lib/esm/setting-components/text-based-component.mjs +6 -14
- package/dist/lib/esm/setting-components/time-component.mjs +6 -14
- package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-range-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/url-component.mjs +6 -14
- package/dist/lib/esm/setting-components/validator-component.mjs +6 -14
- package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +5 -13
- package/dist/lib/esm/setting-components/week-component.mjs +6 -14
- package/dist/lib/esm/setting-ex.mjs +6 -14
- package/dist/lib/esm/setting-group-ex.mjs +6 -14
- package/dist/lib/esm/status-bar-item-registrar.mjs +6 -14
- package/dist/lib/esm/templater.mjs +6 -14
- package/dist/lib/esm/transformers/duration-transformer.mjs +6 -14
- package/dist/lib/esm/transformers/index.mjs +6 -14
- package/dist/lib/esm/trusted-input.mjs +6 -14
- package/dist/lib/esm/validation.mjs +6 -14
- package/dist/lib/esm/vault-delete.mjs +6 -14
- package/dist/lib/esm/vault-transaction.mjs +6 -14
- package/dist/lib/esm/vault.mjs +6 -14
- package/dist/lib/esm/view-registrar.mjs +6 -14
- package/dist/lib/esm/workspace.mjs +6 -14
- package/package.json +69 -24
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -65,8 +53,6 @@ function keepName($unknown) {
|
|
|
65
53
|
if (!originalRequire || originalRequire.__isPatched) {
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
|
-
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
56
|
require = Object.assign(
|
|
71
57
|
(id) => requirePatched(id),
|
|
72
58
|
originalRequire,
|
|
@@ -74,53 +60,45 @@ function keepName($unknown) {
|
|
|
74
60
|
__isPatched: true
|
|
75
61
|
}
|
|
76
62
|
);
|
|
77
|
-
|
|
78
63
|
function extractDefault(module) {
|
|
79
|
-
return module && module.__esModule &&
|
|
64
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
80
65
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
'@codemirror/tooltip']
|
|
111
|
-
);
|
|
112
|
-
|
|
66
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
67
|
+
"@codemirror/autocomplete",
|
|
68
|
+
"@codemirror/collab",
|
|
69
|
+
"@codemirror/commands",
|
|
70
|
+
"@codemirror/language",
|
|
71
|
+
"@codemirror/lint",
|
|
72
|
+
"@codemirror/search",
|
|
73
|
+
"@codemirror/state",
|
|
74
|
+
"@codemirror/text",
|
|
75
|
+
"@codemirror/view",
|
|
76
|
+
"@lezer/common",
|
|
77
|
+
"@lezer/highlight",
|
|
78
|
+
"@lezer/lr",
|
|
79
|
+
"obsidian"
|
|
80
|
+
]);
|
|
81
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
82
|
+
"@codemirror/closebrackets",
|
|
83
|
+
"@codemirror/comment",
|
|
84
|
+
"@codemirror/fold",
|
|
85
|
+
"@codemirror/gutter",
|
|
86
|
+
"@codemirror/highlight",
|
|
87
|
+
"@codemirror/history",
|
|
88
|
+
"@codemirror/matchbrackets",
|
|
89
|
+
"@codemirror/panel",
|
|
90
|
+
"@codemirror/rangeset",
|
|
91
|
+
"@codemirror/rectangular-selection",
|
|
92
|
+
"@codemirror/stream-parser",
|
|
93
|
+
"@codemirror/tooltip"
|
|
94
|
+
]);
|
|
113
95
|
function requirePatched(id) {
|
|
114
96
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
115
97
|
return originalRequire?.(id);
|
|
116
98
|
}
|
|
117
|
-
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
119
99
|
if (globalThis.app.isMobile) {
|
|
120
|
-
if (id ===
|
|
121
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
100
|
+
if (id === "process" || id === "node:process") {
|
|
122
101
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
123
|
-
|
|
124
102
|
return process;
|
|
125
103
|
}
|
|
126
104
|
} else {
|
|
@@ -129,8 +107,6 @@ function keepName($unknown) {
|
|
|
129
107
|
return extractDefault(module);
|
|
130
108
|
}
|
|
131
109
|
}
|
|
132
|
-
|
|
133
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
134
110
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
135
111
|
return {};
|
|
136
112
|
}
|
|
@@ -269,4 +245,4 @@ class SyntaxHighlightingComponent extends import_component_ex.ComponentEx {
|
|
|
269
245
|
0 && (module.exports = {
|
|
270
246
|
SyntaxHighlightingComponent
|
|
271
247
|
});
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBjbGFzcyB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50fSB0aGF0IHJlZ2lzdGVycyBzeW50YXggaGlnaGxpZ2h0aW5nIGxhbmd1YWdlcy5cbiAqXG4gKiBPYnNpZGlhbiBoaWdobGlnaHRzIGNvZGUgaW4gdHdvIGluZGVwZW5kZW50IHBsYWNlcywgdGhyb3VnaCB0d28gc2VwYXJhdGUgcmVnaXN0cmllcywgYW5kIGEgcGx1Z2luIGFkZGluZ1xuICogaXRzIG93biBsYW5ndWFnZSB1c3VhbGx5IGhhcyB0byB0b3VjaCBib3RoOlxuICpcbiAqIC0gKipQcmlzbSoqIChgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXWApIGhpZ2hsaWdodHMgY29kZSBpbiByZWFkaW5nIHZpZXcgYW5kIGluIGV2ZXJ5IGA8cHJlPjxjb2RlPmAgdGhlXG4gKiAgIGxpYnJhcnkgcmVuZGVycyBcdTIwMTQgaW5jbHVkaW5nIHRoZSB7QGxpbmsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50fSBzZXR0aW5ncyBmaWVsZC5cbiAqIC0gKipUaGUgQ29kZU1pcnJvciA1IG1vZGUgcmVnaXN0cnkqKiAoYHdpbmRvdy5Db2RlTWlycm9yLm1vZGVzW2xhbmd1YWdlXWApIGhpZ2hsaWdodHMgYSBmZW5jZWQgY29kZSBibG9ja1xuICogICBpbnNpZGUgdGhlIGVkaXRvci5cbiAqXG4gKiBUaGUgQ29kZU1pcnJvciA1IGhhbGYgbG9va3MgbGlrZSBsZWdhY3kgdGhhdCBzaG91bGQgYmUgbWlncmF0ZWQgdG8gQ29kZU1pcnJvciA2LiAqKkl0IGlzIG5vdCoqIFx1MjAxNCB2ZXJpZmllZFxuICogYWdhaW5zdCB0aGUgT2JzaWRpYW4gMS4xMy40IHJ1bnRpbWU6XG4gKlxuICogLSBPYnNpZGlhbidzIG93biBDb2RlTWlycm9yIDYgZWRpdG9yIGxhbmd1YWdlIGlzIGEgYnJpZGdlZCBDb2RlTWlycm9yIDUgbW9kZTpcbiAqICAgYFN0cmVhbUxhbmd1YWdlLmRlZmluZShDb2RlTWlycm9yLmdldE1vZGUoe30sIHsgbmFtZTogJ2h5cGVybWQnIH0pKWAuXG4gKiAtIE9ic2lkaWFuIHJlZ2lzdGVycyB0aGF0IGBoeXBlcm1kYCBtb2RlIHRocm91Z2ggYHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGVgIHdpdGhcbiAqICAgYGZlbmNlZENvZGVCbG9ja0hpZ2hsaWdodGluZzogdHJ1ZWAsIGFuZCB0aGF0IG9wdGlvbiByZXNvbHZlcyBlYWNoIGZlbmNlJ3MgbGFuZ3VhZ2UgdGhyb3VnaCB0aGVcbiAqICAgKipDb2RlTWlycm9yIDUgbW9kZSByZWdpc3RyeSoqLlxuICogLSBUaGVyZSBpcyBubyBwdWJsaWMgb3IgaW50ZXJuYWwgQ29kZU1pcnJvciA2IGxhbmd1YWdlLXJlZ2lzdHJhdGlvbiBBUEkgZm9yIGZlbmNlcy5cbiAqXG4gKiBTbyBgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZWAgaXMgdGhlIHNhbmN0aW9uZWQgZXh0ZW5zaW9uIHBvaW50LCBub3QgbGVnYWN5IGRlYnQuIERvIG5vdCByZW9wZW4gdGhpc1xuICogYXMgYSBtaWdyYXRpb24uXG4gKlxuICogVGVhcmRvd24gUkVNT1ZFUyB0aGUgbW9kZSByYXRoZXIgdGhhbiByZWRlZmluaW5nIGl0IHRvIGBudWxsYC4gUGx1Z2lucyBwcmVkYXRpbmcgdGhpcyBjb21wb25lbnQgcmVkZWZpbmVkXG4gKiB0aGUgbW9kZSB0byBgbnVsbGAgb24gdW5sb2FkLCBiZWNhdXNlIGl0IHdhcyB1bmNsZWFyIHdoZXRoZXIgQ29kZU1pcnJvcidzIGBnZXRNb2RlYCBuZWVkcyB0aGUgZW50cnkgdG9cbiAqIHN0YXkgcHJlc2VudC4gSXQgZG9lcyBub3QgXHUyMDE0IHZlcmlmaWVkIGFnYWluc3QgYSBsaXZlIE9ic2lkaWFuIDEuMTMuNCBieVxuICogYHN5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50Lm9ic2lkaWFuLmludGVncmF0aW9uLnRlc3QudHNgOiBhZnRlciB0aGUgZW50cnkgaXMgZGVsZXRlZCwgdGhlIGZlbmNlXG4gKiByZW5kZXJzIGl0cyB0ZXh0IHdpdGggbm8gZXJyb3IgYW5kIGRyb3BzIGJhY2sgdG8gdGhlIGV4YWN0IHRva2VuIGNvdW50IGl0IGhhZCBiZWZvcmUgdGhlIGxhbmd1YWdlIHdhc1xuICogZXZlciByZWdpc3RlcmVkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgR3JhbW1hcixcbiAgUHJpc21Nb2R1bGVcbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9lcnJvcic7XG5pbXBvcnQgeyBsb2FkUHJpc20gfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYENvZGVIaWdobGlnaHRlckNvbXBvbmVudGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NldHRpbmctY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IENvbXBvbmVudEV4IH0gZnJvbSAnLi9jb21wb25lbnQtZXgudHMnO1xuXG4vKipcbiAqIFRoZSBsb2FkZWQgUHJpc20gbW9kdWxlLCBoYW5kZWQgdG8gYSBncmFtbWFyIGZhY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gICAqL1xuICByZWFkb25seSBwcmlzbTogUHJpc21Nb2R1bGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdyYW1tYXIgb2YgYW4gYWxyZWFkeSByZWdpc3RlcmVkIFByaXNtIGxhbmd1YWdlLCBmb3IgbmVzdGluZyBpbnRvIHRoZSBidWlsdCBncmFtbWFyLlxuICAgKlxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgLSBUaGUgbGFuZ3VhZ2UgdG8gbG9vayB1cC5cbiAgICogQHJldHVybnMgVGhlIGdyYW1tYXIgb2YgdGhlIGxhbmd1YWdlLlxuICAgKiBAdGhyb3dzIEFuIHtAbGluayBFcnJvcn0gaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCByZWdpc3RlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZVByaXNtTGFuZ3VhZ2U6IChsYW5ndWFnZTogc3RyaW5nKSA9PiBHcmFtbWFyO1xufVxuXG4vKipcbiAqIEEgZ3JhbW1hciwgdGhlIG5hbWUgb2YgYW4gYWxyZWFkeSByZWdpc3RlcmVkIGxhbmd1YWdlIHRvIGFsaWFzLCBvciBhIGZhY3RvcnkgdGhhdCBidWlsZHMgdGhlIGdyYW1tYXIgZnJvbVxuICogdGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gKi9cbmV4cG9ydCB0eXBlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2UgPSAoKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMpID0+IEdyYW1tYXIpIHwgR3JhbW1hciB8IHN0cmluZztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50LnJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudFJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2VQYXJhbXMge1xuICAvKipcbiAgICogVGhlIENvZGVNaXJyb3IgNSBtb2RlIG5hbWUgb3IgTUlNRSB0eXBlIHRoZSBlZGl0b3IgaGlnaGxpZ2h0cyB0aGUgZmVuY2UgYXMsIGUuZy4gYHRleHQvdHlwZXNjcmlwdGAuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3JNb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmZW5jZSBsYW5ndWFnZSwgZS5nLiB0aGUgYGZvb2AgaW4gYSBgIGBgYGZvbyBgIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ3JhbW1hciBoaWdobGlnaHRpbmcgdGhlIGZlbmNlIGluIHJlYWRpbmcgdmlldy4gT21pdCB3aGVuIHRoZSBmZW5jZSBpcyByZXBsYWNlZCBpbiByZWFkaW5nIHZpZXcgXHUyMDE0XG4gICAqIGUuZy4gYSBmZW5jZSByZW5kZXJlZCBhcyBhIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHByaXNtR3JhbW1hcj86IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2UgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudC5yZWdpc3RlclByaXNtTGFuZ3VhZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudFJlZ2lzdGVyUHJpc21MYW5ndWFnZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZ3JhbW1hciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlYWRvbmx5IGdyYW1tYXI6IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZSB0byByZWdpc3RlciB0aGUgZ3JhbW1hciBhcy5cbiAgICovXG4gIHJlYWRvbmx5IGxhbmd1YWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCByZWdpc3RlcnMgYW5kIHVucmVnaXN0ZXJzIHN5bnRheCBoaWdobGlnaHRpbmcgbGFuZ3VhZ2VzLlxuICpcbiAqIEByZW1hcmtzXG4gKiBFdmVyeSByZWdpc3RyYXRpb24gaXMgdW5kb25lIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB1bmxvYWRlZDogdGhlIHByZXZpb3VzIGVudHJ5IGlzIHJlc3RvcmVkIGlmIHRoZVxuICogbGFuZ3VhZ2Ugd2FzIGFscmVhZHkgcmVnaXN0ZXJlZCwgb3RoZXJ3aXNlIHRoZSBlbnRyeSBpcyByZW1vdmVkLlxuICovXG5leHBvcnQgY2xhc3MgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50RXgge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UsIGhpZ2hsaWdodGluZyBpdCBpbiB0aGUgZWRpdG9yIGFuZCwgb3B0aW9uYWxseSwgaW4gcmVhZGluZyB2aWV3LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlZ2lzdGVyaW5nIHRoZSBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsYW5ndWFnZSBpcyByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBhd2FpdCBjb21wb25lbnQucmVnaXN0ZXJDb2RlQmxvY2tMYW5ndWFnZSh7XG4gICAqICAgZWRpdG9yTW9kZTogJ3RleHQvdHlwZXNjcmlwdCcsXG4gICAqICAgbGFuZ3VhZ2U6ICdteS1sYW5ndWFnZScsXG4gICAqICAgcHJpc21HcmFtbWFyOiAndHlwZXNjcmlwdCdcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2UocGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRSZWdpc3RlckNvZGVCbG9ja0xhbmd1YWdlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yTW9kZSxcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgcHJpc21HcmFtbWFyXG4gICAgfSA9IHBhcmFtcztcblxuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG5cbiAgICBpZiAocHJpc21HcmFtbWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVnaXN0ZXJQcmlzbUxhbmd1YWdlKHtcbiAgICAgICAgZ3JhbW1hcjogcHJpc21HcmFtbWFyLFxuICAgICAgICBsYW5ndWFnZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzTW9kZUZhY3RvcnkgPSB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV07XG4gICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShsYW5ndWFnZSwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIGVkaXRvck1vZGUpKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgaWYgKHByZXZpb3VzTW9kZUZhY3RvcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV0gPSBwcmV2aW91c01vZGVGYWN0b3J5O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gVGhlIGxhbmd1YWdlIGlzIG9ubHkga25vd24gYXQgcnVudGltZS5cbiAgICAgIGRlbGV0ZSB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgUHJpc20gbGFuZ3VhZ2UsIGhpZ2hsaWdodGluZyBpdCBldmVyeXdoZXJlIFByaXNtIHJlbmRlcnMgY29kZSBcdTIwMTQgcmVhZGluZyB2aWV3IGFuZCB0aGVcbiAgICoge0BsaW5rIENvZGVIaWdobGlnaHRlckNvbXBvbmVudH0gc2V0dGluZ3MgZmllbGQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgdGhlIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxhbmd1YWdlIGlzIHJlZ2lzdGVyZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF3YWl0IGNvbXBvbmVudC5yZWdpc3RlclByaXNtTGFuZ3VhZ2Uoe1xuICAgKiAgIGdyYW1tYXI6IHtcbiAgICogICAgIGtleXdvcmQ6IC9cXGJmb29cXGIvXG4gICAqICAgfSxcbiAgICogICBsYW5ndWFnZTogJ215LWxhbmd1YWdlJ1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJQcmlzbUxhbmd1YWdlKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50UmVnaXN0ZXJQcmlzbUxhbmd1YWdlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge1xuICAgICAgZ3JhbW1hcixcbiAgICAgIGxhbmd1YWdlXG4gICAgfSA9IHBhcmFtcztcblxuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG5cbiAgICBjb25zdCBwcmlzbSA9IGF3YWl0IGxvYWRQcmlzbSgpO1xuXG4gICAgLy8gVGhlIGNvbXBvbmVudCBtaWdodCBoYXZlIGJlZW4gdW5sb2FkZWQgd2hpbGUgUHJpc20gd2FzIGxvYWRpbmcuXG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzR3JhbW1hciA9IHByaXNtLmxhbmd1YWdlc1tsYW5ndWFnZV07XG4gICAgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXSA9IHRoaXMucmVzb2x2ZUdyYW1tYXIocHJpc20sIGdyYW1tYXIpO1xuXG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBpZiAocHJldmlvdXNHcmFtbWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXSA9IHByZXZpb3VzR3JhbW1hcjtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlIC0tIFRoZSBsYW5ndWFnZSBpcyBvbmx5IGtub3duIGF0IHJ1bnRpbWUuXG4gICAgICBkZWxldGUgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBncmFtbWFyIG9mIGFuIGFscmVhZHkgcmVnaXN0ZXJlZCBQcmlzbSBsYW5ndWFnZS5cbiAgICpcbiAgICogQHBhcmFtIHByaXNtIC0gVGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gICAqIEBwYXJhbSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSB0byBsb29rIHVwLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JhbW1hciBvZiB0aGUgbGFuZ3VhZ2UuXG4gICAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwcml2YXRlIHJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtOiBQcmlzbU1vZHVsZSwgbGFuZ3VhZ2U6IHN0cmluZyk6IEdyYW1tYXIge1xuICAgIHJldHVybiBwcmlzbS5sYW5ndWFnZXNbbGFuZ3VhZ2VdID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoYFByaXNtIGxhbmd1YWdlIFwiJHtsYW5ndWFnZX1cIiBpcyBub3QgcmVnaXN0ZXJlZC5gKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYSBncmFtbWFyIHNvdXJjZSBpbnRvIHRoZSBncmFtbWFyIHRvIHJlZ2lzdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcHJpc20gLSBUaGUgbG9hZGVkIFByaXNtIG1vZHVsZS5cbiAgICogQHBhcmFtIGdyYW1tYXJTb3VyY2UgLSBUaGUgZ3JhbW1hciBzb3VyY2UgdG8gcmVzb2x2ZS5cbiAgICogQHJldHVybnMgVGhlIHJlc29sdmVkIGdyYW1tYXIuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHcmFtbWFyKHByaXNtOiBQcmlzbU1vZHVsZSwgZ3JhbW1hclNvdXJjZTogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hclNvdXJjZSk6IEdyYW1tYXIge1xuICAgIGlmICh0eXBlb2YgZ3JhbW1hclNvdXJjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtLCBncmFtbWFyU291cmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIGdyYW1tYXJTb3VyY2UgPT09ICdmdW5jdGlvbidcbiAgICAgID8gZ3JhbW1hclNvdXJjZSh7XG4gICAgICAgIHByaXNtLFxuICAgICAgICByZXF1aXJlUHJpc21MYW5ndWFnZTogKGxhbmd1YWdlKSA9PiB0aGlzLnJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtLCBsYW5ndWFnZSlcbiAgICAgIH0pXG4gICAgICA6IGdyYW1tYXJTb3VyY2U7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF1Q0EsbUJBQWdDO0FBQ2hDLDZCQUEwQjtBQUsxQiwwQkFBNEI7QUFzRXJCLE1BQU0sb0NBQW9DLGdDQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFnQjNELE1BQWEsMEJBQTBCLFFBQW1GO0FBQ3hILFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFFSixTQUFLLGFBQWE7QUFFbEIsUUFBSSxpQkFBaUIsUUFBVztBQUM5QixZQUFNLEtBQUssc0JBQXNCO0FBQUEsUUFDL0IsU0FBUztBQUFBLFFBQ1Q7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsU0FBSyxhQUFhO0FBRWxCLFVBQU0sc0JBQXNCLE9BQU8sV0FBVyxNQUFNLFFBQVE7QUFDNUQsV0FBTyxXQUFXLFdBQVcsVUFBVSxDQUFDLFdBQVcsT0FBTyxXQUFXLFFBQVEsUUFBUSxVQUFVLENBQUM7QUFFaEcsU0FBSyxTQUFTLE1BQU07QUFDbEIsVUFBSSx3QkFBd0IsUUFBVztBQUNyQyxlQUFPLFdBQVcsTUFBTSxRQUFRLElBQUk7QUFDcEM7QUFBQSxNQUNGO0FBR0EsYUFBTyxPQUFPLFdBQVcsTUFBTSxRQUFRO0FBQUEsSUFDekMsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtQkEsTUFBYSxzQkFBc0IsUUFBK0U7QUFDaEgsVUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBRUosU0FBSyxhQUFhO0FBRWxCLFVBQU0sUUFBUSxVQUFNLGtDQUFVO0FBRzlCLFNBQUssYUFBYTtBQUVsQixVQUFNLGtCQUFrQixNQUFNLFVBQVUsUUFBUTtBQUNoRCxVQUFNLFVBQVUsUUFBUSxJQUFJLEtBQUssZUFBZSxPQUFPLE9BQU87QUFFOUQsU0FBSyxTQUFTLE1BQU07QUFDbEIsVUFBSSxvQkFBb0IsUUFBVztBQUNqQyxjQUFNLFVBQVUsUUFBUSxJQUFJO0FBQzVCO0FBQUEsTUFDRjtBQUdBLGFBQU8sTUFBTSxVQUFVLFFBQVE7QUFBQSxJQUNqQyxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVRLHFCQUFxQixPQUFvQixVQUEyQjtBQUMxRSxXQUFPLE1BQU0sVUFBVSxRQUFRLFNBQUssOEJBQWdCLElBQUksTUFBTSxtQkFBbUIsUUFBUSxzQkFBc0IsQ0FBQztBQUFBLEVBQ2xIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNRLGVBQWUsT0FBb0IsZUFBa0U7QUFDM0csUUFBSSxPQUFPLGtCQUFrQixVQUFVO0FBQ3JDLGFBQU8sS0FBSyxxQkFBcUIsT0FBTyxhQUFhO0FBQUEsSUFDdkQ7QUFFQSxXQUFPLE9BQU8sa0JBQWtCLGFBQzVCLGNBQWM7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBc0IsQ0FBQyxhQUFhLEtBQUsscUJBQXFCLE9BQU8sUUFBUTtBQUFBLElBQy9FLENBQUMsSUFDQztBQUFBLEVBQ047QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBjbGFzcyB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50fSB0aGF0IHJlZ2lzdGVycyBzeW50YXggaGlnaGxpZ2h0aW5nIGxhbmd1YWdlcy5cbiAqXG4gKiBPYnNpZGlhbiBoaWdobGlnaHRzIGNvZGUgaW4gdHdvIGluZGVwZW5kZW50IHBsYWNlcywgdGhyb3VnaCB0d28gc2VwYXJhdGUgcmVnaXN0cmllcywgYW5kIGEgcGx1Z2luIGFkZGluZ1xuICogaXRzIG93biBsYW5ndWFnZSB1c3VhbGx5IGhhcyB0byB0b3VjaCBib3RoOlxuICpcbiAqIC0gKipQcmlzbSoqIChgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXWApIGhpZ2hsaWdodHMgY29kZSBpbiByZWFkaW5nIHZpZXcgYW5kIGluIGV2ZXJ5IGA8cHJlPjxjb2RlPmAgdGhlXG4gKiAgIGxpYnJhcnkgcmVuZGVycyBcdTIwMTQgaW5jbHVkaW5nIHRoZSB7QGxpbmsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50fSBzZXR0aW5ncyBmaWVsZC5cbiAqIC0gKipUaGUgQ29kZU1pcnJvciA1IG1vZGUgcmVnaXN0cnkqKiAoYHdpbmRvdy5Db2RlTWlycm9yLm1vZGVzW2xhbmd1YWdlXWApIGhpZ2hsaWdodHMgYSBmZW5jZWQgY29kZSBibG9ja1xuICogICBpbnNpZGUgdGhlIGVkaXRvci5cbiAqXG4gKiBUaGUgQ29kZU1pcnJvciA1IGhhbGYgbG9va3MgbGlrZSBsZWdhY3kgdGhhdCBzaG91bGQgYmUgbWlncmF0ZWQgdG8gQ29kZU1pcnJvciA2LiAqKkl0IGlzIG5vdCoqIFx1MjAxNCB2ZXJpZmllZFxuICogYWdhaW5zdCB0aGUgT2JzaWRpYW4gMS4xMy40IHJ1bnRpbWU6XG4gKlxuICogLSBPYnNpZGlhbidzIG93biBDb2RlTWlycm9yIDYgZWRpdG9yIGxhbmd1YWdlIGlzIGEgYnJpZGdlZCBDb2RlTWlycm9yIDUgbW9kZTpcbiAqICAgYFN0cmVhbUxhbmd1YWdlLmRlZmluZShDb2RlTWlycm9yLmdldE1vZGUoe30sIHsgbmFtZTogJ2h5cGVybWQnIH0pKWAuXG4gKiAtIE9ic2lkaWFuIHJlZ2lzdGVycyB0aGF0IGBoeXBlcm1kYCBtb2RlIHRocm91Z2ggYHdpbmRvdy5Db2RlTWlycm9yLmRlZmluZU1vZGVgIHdpdGhcbiAqICAgYGZlbmNlZENvZGVCbG9ja0hpZ2hsaWdodGluZzogdHJ1ZWAsIGFuZCB0aGF0IG9wdGlvbiByZXNvbHZlcyBlYWNoIGZlbmNlJ3MgbGFuZ3VhZ2UgdGhyb3VnaCB0aGVcbiAqICAgKipDb2RlTWlycm9yIDUgbW9kZSByZWdpc3RyeSoqLlxuICogLSBUaGVyZSBpcyBubyBwdWJsaWMgb3IgaW50ZXJuYWwgQ29kZU1pcnJvciA2IGxhbmd1YWdlLXJlZ2lzdHJhdGlvbiBBUEkgZm9yIGZlbmNlcy5cbiAqXG4gKiBTbyBgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZWAgaXMgdGhlIHNhbmN0aW9uZWQgZXh0ZW5zaW9uIHBvaW50LCBub3QgbGVnYWN5IGRlYnQuIERvIG5vdCByZW9wZW4gdGhpc1xuICogYXMgYSBtaWdyYXRpb24uXG4gKlxuICogVGVhcmRvd24gUkVNT1ZFUyB0aGUgbW9kZSByYXRoZXIgdGhhbiByZWRlZmluaW5nIGl0IHRvIGBudWxsYC4gUGx1Z2lucyBwcmVkYXRpbmcgdGhpcyBjb21wb25lbnQgcmVkZWZpbmVkXG4gKiB0aGUgbW9kZSB0byBgbnVsbGAgb24gdW5sb2FkLCBiZWNhdXNlIGl0IHdhcyB1bmNsZWFyIHdoZXRoZXIgQ29kZU1pcnJvcidzIGBnZXRNb2RlYCBuZWVkcyB0aGUgZW50cnkgdG9cbiAqIHN0YXkgcHJlc2VudC4gSXQgZG9lcyBub3QgXHUyMDE0IHZlcmlmaWVkIGFnYWluc3QgYSBsaXZlIE9ic2lkaWFuIDEuMTMuNCBieVxuICogYHN5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50Lm9ic2lkaWFuLmludGVncmF0aW9uLnRlc3QudHNgOiBhZnRlciB0aGUgZW50cnkgaXMgZGVsZXRlZCwgdGhlIGZlbmNlXG4gKiByZW5kZXJzIGl0cyB0ZXh0IHdpdGggbm8gZXJyb3IgYW5kIGRyb3BzIGJhY2sgdG8gdGhlIGV4YWN0IHRva2VuIGNvdW50IGl0IGhhZCBiZWZvcmUgdGhlIGxhbmd1YWdlIHdhc1xuICogZXZlciByZWdpc3RlcmVkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgR3JhbW1hcixcbiAgUHJpc21Nb2R1bGVcbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9lcnJvcic7XG5pbXBvcnQgeyBsb2FkUHJpc20gfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYENvZGVIaWdobGlnaHRlckNvbXBvbmVudGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NldHRpbmctY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IENvbXBvbmVudEV4IH0gZnJvbSAnLi9jb21wb25lbnQtZXgudHMnO1xuXG4vKipcbiAqIFRoZSBsb2FkZWQgUHJpc20gbW9kdWxlLCBoYW5kZWQgdG8gYSBncmFtbWFyIGZhY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gICAqL1xuICByZWFkb25seSBwcmlzbTogUHJpc21Nb2R1bGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdyYW1tYXIgb2YgYW4gYWxyZWFkeSByZWdpc3RlcmVkIFByaXNtIGxhbmd1YWdlLCBmb3IgbmVzdGluZyBpbnRvIHRoZSBidWlsdCBncmFtbWFyLlxuICAgKlxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgLSBUaGUgbGFuZ3VhZ2UgdG8gbG9vayB1cC5cbiAgICogQHJldHVybnMgVGhlIGdyYW1tYXIgb2YgdGhlIGxhbmd1YWdlLlxuICAgKiBAdGhyb3dzIEFuIHtAbGluayBFcnJvcn0gaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCByZWdpc3RlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZVByaXNtTGFuZ3VhZ2U6IChsYW5ndWFnZTogc3RyaW5nKSA9PiBHcmFtbWFyO1xufVxuXG4vKipcbiAqIEEgZ3JhbW1hciwgdGhlIG5hbWUgb2YgYW4gYWxyZWFkeSByZWdpc3RlcmVkIGxhbmd1YWdlIHRvIGFsaWFzLCBvciBhIGZhY3RvcnkgdGhhdCBidWlsZHMgdGhlIGdyYW1tYXIgZnJvbVxuICogdGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gKi9cbmV4cG9ydCB0eXBlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2UgPSAoKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMpID0+IEdyYW1tYXIpIHwgR3JhbW1hciB8IHN0cmluZztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50LnJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudFJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2VQYXJhbXMge1xuICAvKipcbiAgICogVGhlIENvZGVNaXJyb3IgNSBtb2RlIG5hbWUgb3IgTUlNRSB0eXBlIHRoZSBlZGl0b3IgaGlnaGxpZ2h0cyB0aGUgZmVuY2UgYXMsIGUuZy4gYHRleHQvdHlwZXNjcmlwdGAuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3JNb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmZW5jZSBsYW5ndWFnZSwgZS5nLiB0aGUgYGZvb2AgaW4gYSBgIGBgYGZvbyBgIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ3JhbW1hciBoaWdobGlnaHRpbmcgdGhlIGZlbmNlIGluIHJlYWRpbmcgdmlldy4gT21pdCB3aGVuIHRoZSBmZW5jZSBpcyByZXBsYWNlZCBpbiByZWFkaW5nIHZpZXcgXHUyMDE0XG4gICAqIGUuZy4gYSBmZW5jZSByZW5kZXJlZCBhcyBhIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IHByaXNtR3JhbW1hcj86IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2UgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudC5yZWdpc3RlclByaXNtTGFuZ3VhZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudFJlZ2lzdGVyUHJpc21MYW5ndWFnZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZ3JhbW1hciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlYWRvbmx5IGdyYW1tYXI6IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudEdyYW1tYXJTb3VyY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZSB0byByZWdpc3RlciB0aGUgZ3JhbW1hciBhcy5cbiAgICovXG4gIHJlYWRvbmx5IGxhbmd1YWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCByZWdpc3RlcnMgYW5kIHVucmVnaXN0ZXJzIHN5bnRheCBoaWdobGlnaHRpbmcgbGFuZ3VhZ2VzLlxuICpcbiAqIEByZW1hcmtzXG4gKiBFdmVyeSByZWdpc3RyYXRpb24gaXMgdW5kb25lIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB1bmxvYWRlZDogdGhlIHByZXZpb3VzIGVudHJ5IGlzIHJlc3RvcmVkIGlmIHRoZVxuICogbGFuZ3VhZ2Ugd2FzIGFscmVhZHkgcmVnaXN0ZXJlZCwgb3RoZXJ3aXNlIHRoZSBlbnRyeSBpcyByZW1vdmVkLlxuICovXG5leHBvcnQgY2xhc3MgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50RXgge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UsIGhpZ2hsaWdodGluZyBpdCBpbiB0aGUgZWRpdG9yIGFuZCwgb3B0aW9uYWxseSwgaW4gcmVhZGluZyB2aWV3LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlZ2lzdGVyaW5nIHRoZSBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsYW5ndWFnZSBpcyByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBhd2FpdCBjb21wb25lbnQucmVnaXN0ZXJDb2RlQmxvY2tMYW5ndWFnZSh7XG4gICAqICAgZWRpdG9yTW9kZTogJ3RleHQvdHlwZXNjcmlwdCcsXG4gICAqICAgbGFuZ3VhZ2U6ICdteS1sYW5ndWFnZScsXG4gICAqICAgcHJpc21HcmFtbWFyOiAndHlwZXNjcmlwdCdcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ29kZUJsb2NrTGFuZ3VhZ2UocGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRSZWdpc3RlckNvZGVCbG9ja0xhbmd1YWdlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yTW9kZSxcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgcHJpc21HcmFtbWFyXG4gICAgfSA9IHBhcmFtcztcblxuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG5cbiAgICBpZiAocHJpc21HcmFtbWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVnaXN0ZXJQcmlzbUxhbmd1YWdlKHtcbiAgICAgICAgZ3JhbW1hcjogcHJpc21HcmFtbWFyLFxuICAgICAgICBsYW5ndWFnZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzTW9kZUZhY3RvcnkgPSB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV07XG4gICAgd2luZG93LkNvZGVNaXJyb3IuZGVmaW5lTW9kZShsYW5ndWFnZSwgKGNvbmZpZykgPT4gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIGVkaXRvck1vZGUpKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgaWYgKHByZXZpb3VzTW9kZUZhY3RvcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV0gPSBwcmV2aW91c01vZGVGYWN0b3J5O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gVGhlIGxhbmd1YWdlIGlzIG9ubHkga25vd24gYXQgcnVudGltZS5cbiAgICAgIGRlbGV0ZSB3aW5kb3cuQ29kZU1pcnJvci5tb2Rlc1tsYW5ndWFnZV07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgUHJpc20gbGFuZ3VhZ2UsIGhpZ2hsaWdodGluZyBpdCBldmVyeXdoZXJlIFByaXNtIHJlbmRlcnMgY29kZSBcdTIwMTQgcmVhZGluZyB2aWV3IGFuZCB0aGVcbiAgICoge0BsaW5rIENvZGVIaWdobGlnaHRlckNvbXBvbmVudH0gc2V0dGluZ3MgZmllbGQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgdGhlIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxhbmd1YWdlIGlzIHJlZ2lzdGVyZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF3YWl0IGNvbXBvbmVudC5yZWdpc3RlclByaXNtTGFuZ3VhZ2Uoe1xuICAgKiAgIGdyYW1tYXI6IHtcbiAgICogICAgIGtleXdvcmQ6IC9cXGJmb29cXGIvXG4gICAqICAgfSxcbiAgICogICBsYW5ndWFnZTogJ215LWxhbmd1YWdlJ1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJQcmlzbUxhbmd1YWdlKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50UmVnaXN0ZXJQcmlzbUxhbmd1YWdlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge1xuICAgICAgZ3JhbW1hcixcbiAgICAgIGxhbmd1YWdlXG4gICAgfSA9IHBhcmFtcztcblxuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG5cbiAgICBjb25zdCBwcmlzbSA9IGF3YWl0IGxvYWRQcmlzbSgpO1xuXG4gICAgLy8gVGhlIGNvbXBvbmVudCBtaWdodCBoYXZlIGJlZW4gdW5sb2FkZWQgd2hpbGUgUHJpc20gd2FzIGxvYWRpbmcuXG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzR3JhbW1hciA9IHByaXNtLmxhbmd1YWdlc1tsYW5ndWFnZV07XG4gICAgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXSA9IHRoaXMucmVzb2x2ZUdyYW1tYXIocHJpc20sIGdyYW1tYXIpO1xuXG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBpZiAocHJldmlvdXNHcmFtbWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXSA9IHByZXZpb3VzR3JhbW1hcjtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlIC0tIFRoZSBsYW5ndWFnZSBpcyBvbmx5IGtub3duIGF0IHJ1bnRpbWUuXG4gICAgICBkZWxldGUgcHJpc20ubGFuZ3VhZ2VzW2xhbmd1YWdlXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBncmFtbWFyIG9mIGFuIGFscmVhZHkgcmVnaXN0ZXJlZCBQcmlzbSBsYW5ndWFnZS5cbiAgICpcbiAgICogQHBhcmFtIHByaXNtIC0gVGhlIGxvYWRlZCBQcmlzbSBtb2R1bGUuXG4gICAqIEBwYXJhbSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSB0byBsb29rIHVwLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JhbW1hciBvZiB0aGUgbGFuZ3VhZ2UuXG4gICAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwcml2YXRlIHJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtOiBQcmlzbU1vZHVsZSwgbGFuZ3VhZ2U6IHN0cmluZyk6IEdyYW1tYXIge1xuICAgIHJldHVybiBwcmlzbS5sYW5ndWFnZXNbbGFuZ3VhZ2VdID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoYFByaXNtIGxhbmd1YWdlIFwiJHtsYW5ndWFnZX1cIiBpcyBub3QgcmVnaXN0ZXJlZC5gKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYSBncmFtbWFyIHNvdXJjZSBpbnRvIHRoZSBncmFtbWFyIHRvIHJlZ2lzdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcHJpc20gLSBUaGUgbG9hZGVkIFByaXNtIG1vZHVsZS5cbiAgICogQHBhcmFtIGdyYW1tYXJTb3VyY2UgLSBUaGUgZ3JhbW1hciBzb3VyY2UgdG8gcmVzb2x2ZS5cbiAgICogQHJldHVybnMgVGhlIHJlc29sdmVkIGdyYW1tYXIuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHcmFtbWFyKHByaXNtOiBQcmlzbU1vZHVsZSwgZ3JhbW1hclNvdXJjZTogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hclNvdXJjZSk6IEdyYW1tYXIge1xuICAgIGlmICh0eXBlb2YgZ3JhbW1hclNvdXJjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtLCBncmFtbWFyU291cmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIGdyYW1tYXJTb3VyY2UgPT09ICdmdW5jdGlvbidcbiAgICAgID8gZ3JhbW1hclNvdXJjZSh7XG4gICAgICAgIHByaXNtLFxuICAgICAgICByZXF1aXJlUHJpc21MYW5ndWFnZTogKGxhbmd1YWdlKSA9PiB0aGlzLnJlcXVpcmVQcmlzbUxhbmd1YWdlKHByaXNtLCBsYW5ndWFnZSlcbiAgICAgIH0pXG4gICAgICA6IGdyYW1tYXJTb3VyY2U7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF1Q0EsbUJBQWdDO0FBQ2hDLDZCQUEwQjtBQUsxQiwwQkFBNEI7QUFzRXJCLE1BQU0sb0NBQW9DLGdDQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFnQjNELE1BQWEsMEJBQTBCLFFBQW1GO0FBQ3hILFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFFSixTQUFLLGFBQWE7QUFFbEIsUUFBSSxpQkFBaUIsUUFBVztBQUM5QixZQUFNLEtBQUssc0JBQXNCO0FBQUEsUUFDL0IsU0FBUztBQUFBLFFBQ1Q7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsU0FBSyxhQUFhO0FBRWxCLFVBQU0sc0JBQXNCLE9BQU8sV0FBVyxNQUFNLFFBQVE7QUFDNUQsV0FBTyxXQUFXLFdBQVcsVUFBVSxDQUFDLFdBQVcsT0FBTyxXQUFXLFFBQVEsUUFBUSxVQUFVLENBQUM7QUFFaEcsU0FBSyxTQUFTLE1BQU07QUFDbEIsVUFBSSx3QkFBd0IsUUFBVztBQUNyQyxlQUFPLFdBQVcsTUFBTSxRQUFRLElBQUk7QUFDcEM7QUFBQSxNQUNGO0FBR0EsYUFBTyxPQUFPLFdBQVcsTUFBTSxRQUFRO0FBQUEsSUFDekMsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtQkEsTUFBYSxzQkFBc0IsUUFBK0U7QUFDaEgsVUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBRUosU0FBSyxhQUFhO0FBRWxCLFVBQU0sUUFBUSxVQUFNLGtDQUFVO0FBRzlCLFNBQUssYUFBYTtBQUVsQixVQUFNLGtCQUFrQixNQUFNLFVBQVUsUUFBUTtBQUNoRCxVQUFNLFVBQVUsUUFBUSxJQUFJLEtBQUssZUFBZSxPQUFPLE9BQU87QUFFOUQsU0FBSyxTQUFTLE1BQU07QUFDbEIsVUFBSSxvQkFBb0IsUUFBVztBQUNqQyxjQUFNLFVBQVUsUUFBUSxJQUFJO0FBQzVCO0FBQUEsTUFDRjtBQUdBLGFBQU8sTUFBTSxVQUFVLFFBQVE7QUFBQSxJQUNqQyxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVRLHFCQUFxQixPQUFvQixVQUEyQjtBQUMxRSxXQUFPLE1BQU0sVUFBVSxRQUFRLFNBQUssOEJBQWdCLElBQUksTUFBTSxtQkFBbUIsUUFBUSxzQkFBc0IsQ0FBQztBQUFBLEVBQ2xIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNRLGVBQWUsT0FBb0IsZUFBa0U7QUFDM0csUUFBSSxPQUFPLGtCQUFrQixVQUFVO0FBQ3JDLGFBQU8sS0FBSyxxQkFBcUIsT0FBTyxhQUFhO0FBQUEsSUFDdkQ7QUFFQSxXQUFPLE9BQU8sa0JBQWtCLGFBQzVCLGNBQWM7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBc0IsQ0FBQyxhQUFhLEtBQUsscUJBQXFCLE9BQU8sUUFBUTtBQUFBLElBQy9FLENBQUMsSUFDQztBQUFBLEVBQ047QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -65,8 +53,6 @@ function keepName($unknown) {
|
|
|
65
53
|
if (!originalRequire || originalRequire.__isPatched) {
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
|
-
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
56
|
require = Object.assign(
|
|
71
57
|
(id) => requirePatched(id),
|
|
72
58
|
originalRequire,
|
|
@@ -74,53 +60,45 @@ function keepName($unknown) {
|
|
|
74
60
|
__isPatched: true
|
|
75
61
|
}
|
|
76
62
|
);
|
|
77
|
-
|
|
78
63
|
function extractDefault(module) {
|
|
79
|
-
return module && module.__esModule &&
|
|
64
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
80
65
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
'@codemirror/tooltip']
|
|
111
|
-
);
|
|
112
|
-
|
|
66
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
67
|
+
"@codemirror/autocomplete",
|
|
68
|
+
"@codemirror/collab",
|
|
69
|
+
"@codemirror/commands",
|
|
70
|
+
"@codemirror/language",
|
|
71
|
+
"@codemirror/lint",
|
|
72
|
+
"@codemirror/search",
|
|
73
|
+
"@codemirror/state",
|
|
74
|
+
"@codemirror/text",
|
|
75
|
+
"@codemirror/view",
|
|
76
|
+
"@lezer/common",
|
|
77
|
+
"@lezer/highlight",
|
|
78
|
+
"@lezer/lr",
|
|
79
|
+
"obsidian"
|
|
80
|
+
]);
|
|
81
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
82
|
+
"@codemirror/closebrackets",
|
|
83
|
+
"@codemirror/comment",
|
|
84
|
+
"@codemirror/fold",
|
|
85
|
+
"@codemirror/gutter",
|
|
86
|
+
"@codemirror/highlight",
|
|
87
|
+
"@codemirror/history",
|
|
88
|
+
"@codemirror/matchbrackets",
|
|
89
|
+
"@codemirror/panel",
|
|
90
|
+
"@codemirror/rangeset",
|
|
91
|
+
"@codemirror/rectangular-selection",
|
|
92
|
+
"@codemirror/stream-parser",
|
|
93
|
+
"@codemirror/tooltip"
|
|
94
|
+
]);
|
|
113
95
|
function requirePatched(id) {
|
|
114
96
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
115
97
|
return originalRequire?.(id);
|
|
116
98
|
}
|
|
117
|
-
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
119
99
|
if (globalThis.app.isMobile) {
|
|
120
|
-
if (id ===
|
|
121
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
100
|
+
if (id === "process" || id === "node:process") {
|
|
122
101
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
123
|
-
|
|
124
102
|
return process;
|
|
125
103
|
}
|
|
126
104
|
} else {
|
|
@@ -129,8 +107,6 @@ function keepName($unknown) {
|
|
|
129
107
|
return extractDefault(module);
|
|
130
108
|
}
|
|
131
109
|
}
|
|
132
|
-
|
|
133
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
134
110
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
135
111
|
return {};
|
|
136
112
|
}
|
|
@@ -297,4 +273,4 @@ function getUnanchoredSource(pattern) {
|
|
|
297
273
|
0 && (module.exports = {
|
|
298
274
|
TemplatesLanguageComponent
|
|
299
275
|
});
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGNsYXNzIHtAbGluayBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudH0gdGhhdCByZWdpc3RlcnMgYSBQcmlzbSBsYW5ndWFnZSBoaWdobGlnaHRpbmdcbiAqIGB7e3Rva2VufX1gIC8gYHt7dG9rZW46Zm9ybWF0fX1gIHBsYWNlaG9sZGVycy5cbiAqXG4gKiAqKlRoZSBsYW5ndWFnZSBpcyBPYnNpZGlhbiBjb3JlJ3Mgb3duLCBub3QgYW4gaW52ZW50aW9uIG9mIHRoaXMgbGlicmFyeS4qKiBge3t0b2tlbjpmb3JtYXR9fWAgaXMgdGhlIHN5bnRheCBjb3JlJ3NcbiAqICoqVGVtcGxhdGVzKiogcGx1Z2luIGRlZmluZXMsIHZlcmlmaWVkIGluIHRoZSBzaGlwcGVkIGFwcCByYXRoZXIgdGhhbiByZWNhbGxlZCBcdTIwMTQgYG9ic2lkaWFuLmFzYXIvaTE4bi5qc2AsXG4gKiB0aGUgYHRlbXBsYXRlczpgIGJsb2NrOlxuICpcbiAqIGBgYHRleHRcbiAqIG9wdGlvblRlbXBsYXRlRGF0ZUZvcm1hdERlc2NyaXB0aW9uOiAgJ3t7ZGF0ZX19IGluIHRoZSB0ZW1wbGF0ZSBmaWxlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGlzIHZhbHVlLidcbiAqIG9wdGlvblRlbXBsYXRlRGF0ZUZvcm1hdERlc2NyaXB0aW9uMjogJ1lvdSBjYW4gYWxzbyB1c2Uge3tkYXRlOllZWVktTU0tRER9fSB0byBvdmVycmlkZSB0aGUgZm9ybWF0IG9uY2UuJ1xuICogb3B0aW9uVGVtcGxhdGVUaW1lRm9ybWF0RGVzY3JpcHRpb246ICAne3t0aW1lfX0gaW4gdGhlIHRlbXBsYXRlIGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoaXMgdmFsdWUuJ1xuICogb3B0aW9uVGVtcGxhdGVUaW1lRm9ybWF0RGVzY3JpcHRpb24yOiAnWW91IGNhbiBhbHNvIHVzZSB7e3RpbWU6SEg6bW19fSB0byBvdmVycmlkZSB0aGUgZm9ybWF0IG9uY2UuJ1xuICogYGBgXG4gKlxuICogVGhhdCBtYXR0ZXJzIGZvciBhbnlvbmUgdGVtcHRlZCB0byBjaGFuZ2UgdGhlIGRlbGltaXRlcnM6IHRoZXkgYXJlIG5vdCBvdXJzIHRvIGNoYW5nZS4gQSBwbHVnaW4gZXh0ZW5kc1xuICogY29yZSdzIGxhbmd1YWdlIHdpdGggaXRzIG93biB0b2tlbiB2b2NhYnVsYXJ5LCBpdCBkb2VzIG5vdCBkZWZpbmUgYSBjb21wZXRpbmcgb25lLlxuICpcbiAqICoqQmV3YXJlIHRoZSBuZWFyLW1pc3Mgb24gdGhhdCBldmlkZW5jZS4qKiBBIGdyZXAgZm9yIGB7ey4uLn19YCBhY3Jvc3MgdGhlIGFwcCBidW5kbGUgcmV0dXJucyBtYW55IGhpdHNcbiAqIHRoYXQgcHJvdmUgbm90aGluZywgYmVjYXVzZSBPYnNpZGlhbidzIFVJIHN0cmluZ3MgYXJlIGkxOG5leHQgYW5kIGB7ey4uLn19YCBpcyBpMThuZXh0J3Mgb3duIGludGVycG9sYXRpb25cbiAqIHN5bnRheC4gVGhlIGxvYWQtYmVhcmluZyBoaXQgaXMgdGhlIGB0ZW1wbGF0ZXM6YCBibG9jayBxdW90ZWQgYWJvdmUgXHUyMDE0IHRoZSBjb3JlIHBsdWdpbidzIHVzZXItZmFjaW5nXG4gKiBzZXR0aW5ncyBkZXNjcmlwdGlvbi4gUmVhZCB0aGF0IGJsb2NrOyBkbyBub3QgY291bnQgYnJhY2VzLlxuICpcbiAqIFdoYXQgYSBjb25zdW1lciB2YXJpZXMgaXMgb25seSBpdHMgKip2b2NhYnVsYXJ5KiosIHdoaWNoIGlzIHdoeSB0aGlzIGNvbXBvbmVudCBpcyBwYXJhbWV0ZXJpemVkIHJhdGhlclxuICogdGhhbiBmaXhlZDogdGhlIGxhbmd1YWdlIGlkIGl0IHJlZ2lzdGVycyB1bmRlciwgdGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCB0aGUgc2hhcGUgb2YgdGhlXG4gKiBmb3JtYXQgaGFsZiwgYW5kIGFueSBleHRyYSB0b3AtbGV2ZWwgdG9rZW5zIGl0cyBvd24gdGVtcGxhdGUgZGlhbGVjdCBuZWVkcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEdyYW1tYXIsXG4gIFByaXNtVG9rZW5PYmplY3Rcbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5cbmltcG9ydCB0eXBlIHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMgfSBmcm9tICcuL3N5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudH0gY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBFeHRyYSB0b3AtbGV2ZWwgZW50cmllcyBtZXJnZWQgaW50byB0aGUgYnVpbHQgZ3JhbW1hciwgZm9yIGEgZGlhbGVjdCB3aG9zZSB0ZW1wbGF0ZXMgY2Fycnkgc3ludGF4XG4gICAqIGJleW9uZCB0aGUgcGxhY2Vob2xkZXJzIHRoZW1zZWx2ZXMgXHUyMDE0IGEgcGF0aCBzZXBhcmF0b3IsIHNheS4gT21pdCB3aGVuIHRoZXJlIGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBleHRyYUdyYW1tYXI/OiBHcmFtbWFyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGhhbGYgb2YgYSBge3t0b2tlbjpmb3JtYXR9fWAgcGxhY2Vob2xkZXIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGEgc2NhbGFyIHdvcmQsIHdoaWNoIGlzIGNvcmUncyBvd24gc2hhcGUuXG4gICAqL1xuICByZWFkb25seSBmb3JtYXRTb3VyY2U/OiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudEZvcm1hdFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIHJlZ2lzdGVyIHRoZSBncmFtbWFyIGFzLCBlLmcuIGBteS1wbHVnaW4tdGVtcGxhdGVgLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyIGJvZHkuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHdvcmQgY2hhcmFjdGVycy4gQSBkaWFsZWN0IHdob3NlIHRva2VuIG5hbWVzIGNhcnJ5IG1vcmUgXHUyMDE0IGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50IGxpc3QsXG4gICAqIHNheSBcdTIwMTQgd2lkZW5zIGl0IGhlcmUuXG4gICAqL1xuICByZWFkb25seSB0b2tlblBhdHRlcm4/OiBSZWdFeHAgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGZvcm1hdCBoYWxmIG9mIGEgYHt7dG9rZW46Zm9ybWF0fX1gIHBsYWNlaG9sZGVyLlxuICpcbiAqIC0gQSB7QGxpbmsgUmVnRXhwfSBkZXNjcmliZXMgYSAqKnNjYWxhcioqIGZvcm1hdCBcdTIwMTQgY29yZSdzIG93biBzaGFwZSwgZS5nLiB0aGUgYFlZWVktTU0tRERgIG9mXG4gKiAgIGB7e2RhdGU6WVlZWS1NTS1ERH19YCBcdTIwMTQgYW5kIGlzIHdyYXBwZWQgaW50byBhIGBzdHJpbmdgLWFsaWFzZWQgdG9rZW4uXG4gKiAtIEEge0BsaW5rIFByaXNtVG9rZW5PYmplY3R9IGRlc2NyaWJlcyBhICoqc3RydWN0dXJlZCoqIGZvcm1hdCwgdXNlZCB2ZXJiYXRpbSwgc28gYSBkaWFsZWN0IHdob3NlIGZvcm1hdFxuICogICBoYWxmIGlzIGFuIG9iamVjdCByYXRoZXIgdGhhbiBhIHdvcmQgY2FuIHN1cHBseSBpdHMgb3duIGBpbnNpZGVgIGdyYW1tYXIgYW5kIGV4dGVudCBgcGF0dGVybmAuXG4gKiAtIEEgKipmYWN0b3J5KiogaXMgdGhlIHN0cnVjdHVyZWQgZm9ybSBmb3IgYSBkaWFsZWN0IHRoYXQgbXVzdCBuZXN0IGFuIGFscmVhZHkgcmVnaXN0ZXJlZCBQcmlzbSBsYW5ndWFnZVxuICogICBpbnRvIHRoYXQgYGluc2lkZWAgXHUyMDE0IGl0IHJlY2VpdmVzIHRoZSBsb2FkZWQgUHJpc20gbW9kdWxlLCBzbyB0aGUgY29uc3VtZXIgbmV2ZXIgY2FsbHMgYGxvYWRQcmlzbWAuXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50Rm9ybWF0U291cmNlID1cbiAgfCAoKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMpID0+IFByaXNtVG9rZW5PYmplY3QpXG4gIHwgUHJpc21Ub2tlbk9iamVjdFxuICB8IFJlZ0V4cDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnQuYnVpbGRQbGFjZWhvbGRlclRva2VufS5cbiAqL1xuaW50ZXJmYWNlIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50QnVpbGRQbGFjZWhvbGRlclRva2VuUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBQcmlzbSB0b2tlbiBkZXNjcmliaW5nIHRoZSBmb3JtYXQgaGFsZiwgb3IgYG51bGxgIGZvciBhIHBsYWNlaG9sZGVyIHRoYXQgY2FycmllcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0VG9rZW46IG51bGwgfCBQcmlzbVRva2VuT2JqZWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgZXh0ZW50IG9mIHRoZSB3aG9sZSBwbGFjZWhvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm46IFJlZ0V4cDtcbn1cblxuLyoqXG4gKiBUaGUgc2NhbGFyIGZvcm1hdCBoYWxmLCBtYXRjaGluZyBjb3JlJ3Mgb3duIGB7e2RhdGU6WVlZWS1NTS1ERH19YCBzaGFwZS5cbiAqL1xuY29uc3QgREVGQVVMVF9GT1JNQVRfUEFUVEVSTiA9IC9bYS16QS1aMC05Xy1dKy87XG5cbi8qKlxuICogVGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyIGJvZHkuXG4gKi9cbmNvbnN0IERFRkFVTFRfVE9LRU5fUEFUVEVSTiA9IC9eW2EtekEtWjAtOV9dKy87XG5cbi8qKlxuICogVGhlIGA6YCBzZXBhcmF0aW5nIGEgdG9rZW4gZnJvbSBpdHMgZm9ybWF0LlxuICpcbiAqIFRoZSB0aHJlZSBkZWxpbWl0ZXIgcGF0dGVybnMgYXJlIGFuY2hvcmVkIGJlY2F1c2UgUHJpc20gdHJpZXMgZXZlcnkgYGluc2lkZWAgZW50cnkgYXQgZXZlcnkgcG9zaXRpb24gb2YgdGhlXG4gKiB0ZXh0IHN0aWxsIHVuY2xhaW1lZCwgbm90IG9ubHkgYXQgaXRzIGVkZ2VzLiBVbmFuY2hvcmVkLCBhIHN0cnVjdHVyZWQgZm9ybWF0J3Mgb3duIGA6YCByZWFkIGFzIGEgc2Vjb25kXG4gKiBkZWxpbWl0ZXIsIGFuZCBhIGB7e2AgLyBgfX1gIG5lc3RlZCBpbiBpdHMgc3RyaW5nIHJlYWQgYXMgYW5vdGhlciBwbGFjZWhvbGRlcidzLlxuICovXG5jb25zdCBGT1JNQVRfREVMSU1JVEVSX1BBVFRFUk4gPSAvXjovO1xuXG4vKipcbiAqIEEgd2hvbGUgcGxhY2Vob2xkZXIsIGxhemlseSBtYXRjaGVkIHNvIGFkamFjZW50IHBsYWNlaG9sZGVycyBkbyBub3QgbWVyZ2UgaW50byBvbmUuXG4gKi9cbmNvbnN0IFBMQUNFSE9MREVSX1BBVFRFUk4gPSAvXFx7XFx7Lis/XFx9XFx9LztcblxuLyoqXG4gKiBUaGUgb3BlbmluZyBge3tgLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyLlxuICovXG5jb25zdCBQUkVGSVhfUEFUVEVSTiA9IC9eXFx7XFx7LztcblxuLyoqXG4gKiBUaGUgY2xvc2luZyBgfX1gLCBhbmNob3JlZCBhdCB0aGUgZW5kIG9mIHRoZSBwbGFjZWhvbGRlci5cbiAqL1xuY29uc3QgU1VGRklYX1BBVFRFUk4gPSAvXFx9XFx9JC87XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgUHJpc20gbGFuZ3VhZ2UgaGlnaGxpZ2h0aW5nIHRoZSBge3t0b2tlbn19YCAvIGB7e3Rva2VuOmZvcm1hdH19YCBwbGFjZWhvbGRlcnMgb2YgYSBwbHVnaW4nc1xuICogdG9rZW5pemVkLXN0cmluZyB0ZW1wbGF0ZXMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBsYW5ndWFnZSBpcyBub3QgYSBjb2RlIGZlbmNlIFx1MjAxNCBpdCBpcyByZW5kZXJlZCBieSB0aGUgYENvZGVIaWdobGlnaHRlckNvbXBvbmVudGAgZmllbGRzIG9mIGEgc2V0dGluZ3NcbiAqIHRhYiwgc28gb25seSB0aGUgUHJpc20gaGFsZiBvZiB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50fSBpcyB1c2VkLiBSZWdpc3RyYXRpb24gaXMgdW5kb25lIHdoZW5cbiAqIHRoZSBjb21wb25lbnQgdW5sb2FkcywgYXMgaXQgaXMgZm9yIGV2ZXJ5IHJlZ2lzdHJhdGlvbiB0aGF0IGJhc2UgbWFrZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB0aGlzLmFkZENoaWxkKG5ldyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCh7IGxhbmd1YWdlOiAnbXktcGx1Z2luLXRlbXBsYXRlJyB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50IGV4dGVuZHMgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYUdyYW1tYXI6IEdyYW1tYXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U291cmNlOiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudEZvcm1hdFNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuUGF0dGVybjogUmVnRXhwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QGxpbmsgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnR9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV4dHJhR3JhbW1hciA9IHBhcmFtcy5leHRyYUdyYW1tYXI7XG4gICAgdGhpcy5mb3JtYXRTb3VyY2UgPSBwYXJhbXMuZm9ybWF0U291cmNlID8/IERFRkFVTFRfRk9STUFUX1BBVFRFUk47XG4gICAgdGhpcy5sYW5ndWFnZSA9IHBhcmFtcy5sYW5ndWFnZTtcbiAgICB0aGlzLnRva2VuUGF0dGVybiA9IHBhcmFtcy50b2tlblBhdHRlcm4gPz8gREVGQVVMVF9UT0tFTl9QQVRURVJOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGFuZ3VhZ2UgaXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWRBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlZ2lzdGVyUHJpc21MYW5ndWFnZSh7XG4gICAgICAvLyBUaGUgZmFjdG9yeSBmb3JtIGlzIHVzZWQgdW5jb25kaXRpb25hbGx5LlxuICAgICAgLy8gVGhlIGJhc2UgcmVzb2x2ZXMgZWl0aGVyIGZvcm0sIHNvIGJyYW5jaGluZyBvbiB3aGV0aGVyIHRoaXMgY29uc3VtZXIgbmVlZHMgUHJpc20gd291bGQgYnV5IG5vdGhpbmcuXG4gICAgICBncmFtbWFyOiAoZmFjdG9yeVBhcmFtcykgPT4gdGhpcy5idWlsZEdyYW1tYXIoZmFjdG9yeVBhcmFtcyksXG4gICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZ3JhbW1hciB0aGlzIGNvbXBvbmVudCByZWdpc3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBmYWN0b3J5UGFyYW1zIC0gVGhlIFByaXNtIG1vZHVsZSBhbmQgbGFuZ3VhZ2UgbG9va3VwIGhhbmRlZCB0byBhIGdyYW1tYXIgZmFjdG9yeS5cbiAgICogQHJldHVybnMgVGhlIGdyYW1tYXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gVGhpcyBpbXBsZW1lbnRzIHRoZSBleHBvcnRlZCBncmFtbWFyLWZhY3Rvcnkgc2lnbmF0dXJlIG9mIHRoZSBiYXNlIGNsYXNzLCBzbyBpdCB0YWtlcyB0aGF0IHNlYW0ncyBvd24gcGFyYW1ldGVyIHR5cGUgcmF0aGVyIHRoYW4gb25lIG5hbWVkIGFmdGVyIHRoaXMgbWV0aG9kLlxuICBwcml2YXRlIGJ1aWxkR3JhbW1hcihmYWN0b3J5UGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRHcmFtbWFyRmFjdG9yeVBhcmFtcyk6IEdyYW1tYXIge1xuICAgIGNvbnN0IGZvcm1hdFRva2VuID0gdGhpcy5yZXNvbHZlRm9ybWF0VG9rZW4oZmFjdG9yeVBhcmFtcyk7XG5cbiAgICAvLyBBIHNjYWxhciBmb3JtYXQgaGFsZiBmaXRzIGluc2lkZSBPTkUgbGF6aWx5LW1hdGNoZWQgcGxhY2Vob2xkZXIgdG9rZW4uXG4gICAgLy8gVGhhdCBpcyB0aGUgc2hhcGUgY29yZSdzIG93biBge3tkYXRlOllZWVktTU0tRER9fWAgaGFzLlxuICAgIC8vIEl0IGlzIGFsc28gdGhlIHNoYXBlIGV2ZXJ5IGNvbnN1bWVyIGhhZCBiZWZvcmUgdGhpcyBjb21wb25lbnQgZXhpc3RlZCwgc28gZW1pdHRpbmcgZXhhY3RseSBpdCBsZWF2ZXMgdGhlbSB1bmNoYW5nZWQuXG4gICAgLy9cbiAgICAvLyBBIHN0cnVjdHVyZWQgZm9ybWF0IGhhbGYgZG9lcyBub3QgZml0IHRoYXQgc2hhcGUsIHNpbmNlIGl0cyBleHRlbnQgaXMgZGVzY3JpYmVkIGJ5IGl0cyBvd24gcGF0dGVybi5cbiAgICAvLyBUaGUgd2l0aC1mb3JtYXQgY2FzZSB0aGVyZWZvcmUgbmVlZHMgYSBwYXR0ZXJuIGJ1aWx0IGZyb20gdGhhdCBleHRlbnQuXG4gICAgLy8gVGhlIHdpdGhvdXQtZm9ybWF0IGNhc2UgbmVlZHMgb25lIHRoYXQgc3RvcHMgYmVmb3JlIHRoZSBkZWxpbWl0ZXIsIHNvIHRoZSB0d28gY2Fubm90IGNsYWltIHRoZSBzYW1lIHRleHQuXG4gICAgY29uc3QgZ3JhbW1hcjogR3JhbW1hciA9IHRoaXMuZm9ybWF0U291cmNlIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICA/IHtcbiAgICAgICAgZXhwcmVzc2lvbjogdGhpcy5idWlsZFBsYWNlaG9sZGVyVG9rZW4oe1xuICAgICAgICAgIGZvcm1hdFRva2VuLFxuICAgICAgICAgIHBhdHRlcm46IFBMQUNFSE9MREVSX1BBVFRFUk5cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBleHByZXNzaW9uOiB0aGlzLmJ1aWxkUGxhY2Vob2xkZXJUb2tlbih7XG4gICAgICAgICAgZm9ybWF0VG9rZW46IG51bGwsXG4gICAgICAgICAgcGF0dGVybjogYnVpbGRQYXR0ZXJuKFt0aGlzLnRva2VuUGF0dGVybl0pXG4gICAgICAgIH0pLFxuICAgICAgICBleHByZXNzaW9uV2l0aEZvcm1hdDogdGhpcy5idWlsZFBsYWNlaG9sZGVyVG9rZW4oe1xuICAgICAgICAgIGZvcm1hdFRva2VuLFxuICAgICAgICAgIHBhdHRlcm46IGJ1aWxkUGF0dGVybihbdGhpcy50b2tlblBhdHRlcm4sIEZPUk1BVF9ERUxJTUlURVJfUEFUVEVSTiwgZm9ybWF0VG9rZW4ucGF0dGVybl0pXG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgLy8gTWVyZ2VkIHJhdGhlciB0aGFuIHNwcmVhZCwgYmVjYXVzZSBzcHJlYWRpbmcgYSBgR3JhbW1hcmAgd2lkZW5zIGV2ZXJ5IG9wdGlvbmFsIG1lbWJlciBvZlxuICAgIC8vIGBHcmFtbWFyUmVzdGAgdG8gYWRtaXQgYHVuZGVmaW5lZGAsIHdoaWNoIGBleGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlc2AgdGhlbiByZWZ1c2VzLlxuICAgIGlmICh0aGlzLmV4dHJhR3JhbW1hciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGdyYW1tYXIsIHRoaXMuZXh0cmFHcmFtbWFyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhbW1hcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHRva2VuIGRlc2NyaWJpbmcgYSB3aG9sZSBwbGFjZWhvbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZXNvbHZlZCBmb3JtYXQgdG9rZW4gYW5kIHRoZSBwbGFjZWhvbGRlcidzIGV4dGVudCBwYXR0ZXJuLlxuICAgKiBAcmV0dXJucyBUaGUgcGxhY2Vob2xkZXIgdG9rZW4uXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUGxhY2Vob2xkZXJUb2tlbihwYXJhbXM6IFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50QnVpbGRQbGFjZWhvbGRlclRva2VuUGFyYW1zKTogUHJpc21Ub2tlbk9iamVjdCB7XG4gICAgY29uc3QgcHJlZml4VG9rZW4gPSB7XG4gICAgICBhbGlhczogJ3JlZ2V4JyxcbiAgICAgIHBhdHRlcm46IFBSRUZJWF9QQVRURVJOXG4gICAgfTtcbiAgICBjb25zdCB0b2tlblRva2VuID0ge1xuICAgICAgYWxpYXM6ICdudW1iZXInLFxuICAgICAgcGF0dGVybjogdGhpcy50b2tlblBhdHRlcm5cbiAgICB9O1xuICAgIGNvbnN0IHN1ZmZpeFRva2VuID0ge1xuICAgICAgYWxpYXM6ICdyZWdleCcsXG4gICAgICBwYXR0ZXJuOiBTVUZGSVhfUEFUVEVSTlxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgaW5zaWRlOiB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIHBlcmZlY3Rpb25pc3Qvc29ydC1vYmplY3RzIC0tIFByaXNtIG1hdGNoZXMgdGhlIGVudHJpZXMgaW4gb3JkZXIsIHNvIHRoZSBvcmRlciBpcyBiZWhhdmlvci4gKi9cbiAgICAgICAgcHJlZml4OiBwcmVmaXhUb2tlbixcbiAgICAgICAgdG9rZW46IHRva2VuVG9rZW4sXG4gICAgICAgIC4uLihwYXJhbXMuZm9ybWF0VG9rZW4gIT09IG51bGwgJiYge1xuICAgICAgICAgIGZvcm1hdERlbGltaXRlcjoge1xuICAgICAgICAgICAgYWxpYXM6ICdyZWdleCcsXG4gICAgICAgICAgICBwYXR0ZXJuOiBGT1JNQVRfREVMSU1JVEVSX1BBVFRFUk5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGZvcm1hdDogcGFyYW1zLmZvcm1hdFRva2VuXG4gICAgICAgIH0pLFxuICAgICAgICBzdWZmaXg6IHN1ZmZpeFRva2VuXG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgcGVyZmVjdGlvbmlzdC9zb3J0LW9iamVjdHMgLS0gUHJpc20gbWF0Y2hlcyB0aGUgZW50cmllcyBpbiBvcmRlciwgc28gdGhlIG9yZGVyIGlzIGJlaGF2aW9yLiAqL1xuICAgICAgfSxcbiAgICAgIHBhdHRlcm46IHBhcmFtcy5wYXR0ZXJuXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgY29uZmlndXJlZCBmb3JtYXQgc291cmNlIGludG8gdGhlIFByaXNtIHRva2VuIGRlc2NyaWJpbmcgdGhlIGZvcm1hdCBoYWxmLlxuICAgKlxuICAgKiBAcGFyYW0gZmFjdG9yeVBhcmFtcyAtIFRoZSBQcmlzbSBtb2R1bGUgYW5kIGxhbmd1YWdlIGxvb2t1cCBoYW5kZWQgdG8gYSBncmFtbWFyIGZhY3RvcnkuXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXQgdG9rZW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gRm9yd2FyZHMgdGhlIGJhc2UgY2xhc3MncyBleHBvcnRlZCBncmFtbWFyLWZhY3RvcnkgcGFyYW1ldGVyIHR5cGUgdG8gYSBjYWxsZXItc3VwcGxpZWQgZmFjdG9yeSwgc28gaXQgY2Fubm90IHRha2UgYSB0eXBlIG5hbWVkIGFmdGVyIHRoaXMgbWV0aG9kLlxuICBwcml2YXRlIHJlc29sdmVGb3JtYXRUb2tlbihmYWN0b3J5UGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRHcmFtbWFyRmFjdG9yeVBhcmFtcyk6IFByaXNtVG9rZW5PYmplY3Qge1xuICAgIGlmICh0aGlzLmZvcm1hdFNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxpYXM6ICdzdHJpbmcnLFxuICAgICAgICBwYXR0ZXJuOiB0aGlzLmZvcm1hdFNvdXJjZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZm9ybWF0U291cmNlID09PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtYXRTb3VyY2UoZmFjdG9yeVBhcmFtcykgOiB0aGlzLmZvcm1hdFNvdXJjZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIHBsYWNlaG9sZGVyIGV4dGVudCBwYXR0ZXJuIGZyb20gdGhlIHBhcnRzIHRoYXQgc2l0IGJldHdlZW4gdGhlIGRlbGltaXRlcnMuXG4gKlxuICogQSBwYXJ0IGFuY2hvcmVkIHdpdGggYSBsZWFkaW5nIGBeYCBvciBhIHRyYWlsaW5nIGAkYCBcdTIwMTQgYXMgYSBwYXR0ZXJuIG1lYW50IGZvciBhIG5lc3RlZCBgaW5zaWRlYCBlbnRyeSBpcyBcdTIwMTQgaXNcbiAqIHNwbGljZWQgaW4gd2l0aG91dCB0aGF0IGFuY2hvciwgc2luY2UgaXQgbGFuZHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYnVpbHQgcGF0dGVybiByYXRoZXIgdGhhbiBhdCBpdHMgZWRnZS5cbiAqIFRoZSBkZWxpbWl0ZXJzIHRoZW1zZWx2ZXMgYXJlIHN1Y2ggcGFydHMuXG4gKlxuICogQHBhcmFtIHBhcnRzIC0gVGhlIHBhdHRlcm5zIGJldHdlZW4gdGhlIG9wZW5pbmcgYHt7YCBhbmQgdGhlIGNsb3NpbmcgYH19YC5cbiAqIEByZXR1cm5zIFRoZSBwYXR0ZXJuLlxuICovXG5mdW5jdGlvbiBidWlsZFBhdHRlcm4ocGFydHM6IHJlYWRvbmx5IFJlZ0V4cFtdKTogUmVnRXhwIHtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoW1BSRUZJWF9QQVRURVJOLCAuLi5wYXJ0cywgU1VGRklYX1BBVFRFUk5dLm1hcCgocGFydCkgPT4gZ2V0VW5hbmNob3JlZFNvdXJjZShwYXJ0KSkuam9pbignJykpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHNvdXJjZSBvZiBhIHBhdHRlcm4gd2l0aG91dCBpdHMgbGVhZGluZyBgXmAgb3IgaXRzIHRyYWlsaW5nIHVuZXNjYXBlZCBgJGAuXG4gKlxuICogQHBhcmFtIHBhdHRlcm4gLSBUaGUgcGF0dGVybi5cbiAqIEByZXR1cm5zIFRoZSB1bmFuY2hvcmVkIHNvdXJjZS5cbiAqL1xuZnVuY3Rpb24gZ2V0VW5hbmNob3JlZFNvdXJjZShwYXR0ZXJuOiBSZWdFeHApOiBzdHJpbmcge1xuICBsZXQgc291cmNlID0gcGF0dGVybi5zb3VyY2U7XG4gIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgnXicpKSB7XG4gICAgc291cmNlID0gc291cmNlLnNsaWNlKDEpO1xuICB9XG4gIGlmIChzb3VyY2UuZW5kc1dpdGgoJyQnKSAmJiAhc291cmNlLmVuZHNXaXRoKFN0cmluZy5yYXdgXFwkYCkpIHtcbiAgICBzb3VyY2UgPSBzb3VyY2Uuc2xpY2UoMCwgLTEpO1xuICB9XG4gIHJldHVybiBzb3VyY2U7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUNBLDJDQUE0QztBQWtFNUMsTUFBTSx5QkFBeUI7QUFLL0IsTUFBTSx3QkFBd0I7QUFTOUIsTUFBTSwyQkFBMkI7QUFLakMsTUFBTSxzQkFBc0I7QUFLNUIsTUFBTSxpQkFBaUI7QUFLdkIsTUFBTSxpQkFBaUI7QUFnQmhCLE1BQU0sbUNBQW1DLGlFQUE0QjtBQUFBLEVBQ3pEO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxRQUFxRDtBQUN0RSxVQUFNO0FBQ04sU0FBSyxlQUFlLE9BQU87QUFDM0IsU0FBSyxlQUFlLE9BQU8sZ0JBQWdCO0FBQzNDLFNBQUssV0FBVyxPQUFPO0FBQ3ZCLFNBQUssZUFBZSxPQUFPLGdCQUFnQjtBQUFBLEVBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBc0IsY0FBNkI7QUFDakQsVUFBTSxLQUFLLHNCQUFzQjtBQUFBO0FBQUE7QUFBQSxNQUcvQixTQUFTLENBQUMsa0JBQWtCLEtBQUssYUFBYSxhQUFhO0FBQUEsTUFDM0QsVUFBVSxLQUFLO0FBQUEsSUFDakIsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGNsYXNzIHtAbGluayBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudH0gdGhhdCByZWdpc3RlcnMgYSBQcmlzbSBsYW5ndWFnZSBoaWdobGlnaHRpbmdcbiAqIGB7e3Rva2VufX1gIC8gYHt7dG9rZW46Zm9ybWF0fX1gIHBsYWNlaG9sZGVycy5cbiAqXG4gKiAqKlRoZSBsYW5ndWFnZSBpcyBPYnNpZGlhbiBjb3JlJ3Mgb3duLCBub3QgYW4gaW52ZW50aW9uIG9mIHRoaXMgbGlicmFyeS4qKiBge3t0b2tlbjpmb3JtYXR9fWAgaXMgdGhlIHN5bnRheCBjb3JlJ3NcbiAqICoqVGVtcGxhdGVzKiogcGx1Z2luIGRlZmluZXMsIHZlcmlmaWVkIGluIHRoZSBzaGlwcGVkIGFwcCByYXRoZXIgdGhhbiByZWNhbGxlZCBcdTIwMTQgYG9ic2lkaWFuLmFzYXIvaTE4bi5qc2AsXG4gKiB0aGUgYHRlbXBsYXRlczpgIGJsb2NrOlxuICpcbiAqIGBgYHRleHRcbiAqIG9wdGlvblRlbXBsYXRlRGF0ZUZvcm1hdERlc2NyaXB0aW9uOiAgJ3t7ZGF0ZX19IGluIHRoZSB0ZW1wbGF0ZSBmaWxlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGlzIHZhbHVlLidcbiAqIG9wdGlvblRlbXBsYXRlRGF0ZUZvcm1hdERlc2NyaXB0aW9uMjogJ1lvdSBjYW4gYWxzbyB1c2Uge3tkYXRlOllZWVktTU0tRER9fSB0byBvdmVycmlkZSB0aGUgZm9ybWF0IG9uY2UuJ1xuICogb3B0aW9uVGVtcGxhdGVUaW1lRm9ybWF0RGVzY3JpcHRpb246ICAne3t0aW1lfX0gaW4gdGhlIHRlbXBsYXRlIGZpbGUgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoaXMgdmFsdWUuJ1xuICogb3B0aW9uVGVtcGxhdGVUaW1lRm9ybWF0RGVzY3JpcHRpb24yOiAnWW91IGNhbiBhbHNvIHVzZSB7e3RpbWU6SEg6bW19fSB0byBvdmVycmlkZSB0aGUgZm9ybWF0IG9uY2UuJ1xuICogYGBgXG4gKlxuICogVGhhdCBtYXR0ZXJzIGZvciBhbnlvbmUgdGVtcHRlZCB0byBjaGFuZ2UgdGhlIGRlbGltaXRlcnM6IHRoZXkgYXJlIG5vdCBvdXJzIHRvIGNoYW5nZS4gQSBwbHVnaW4gZXh0ZW5kc1xuICogY29yZSdzIGxhbmd1YWdlIHdpdGggaXRzIG93biB0b2tlbiB2b2NhYnVsYXJ5LCBpdCBkb2VzIG5vdCBkZWZpbmUgYSBjb21wZXRpbmcgb25lLlxuICpcbiAqICoqQmV3YXJlIHRoZSBuZWFyLW1pc3Mgb24gdGhhdCBldmlkZW5jZS4qKiBBIGdyZXAgZm9yIGB7ey4uLn19YCBhY3Jvc3MgdGhlIGFwcCBidW5kbGUgcmV0dXJucyBtYW55IGhpdHNcbiAqIHRoYXQgcHJvdmUgbm90aGluZywgYmVjYXVzZSBPYnNpZGlhbidzIFVJIHN0cmluZ3MgYXJlIGkxOG5leHQgYW5kIGB7ey4uLn19YCBpcyBpMThuZXh0J3Mgb3duIGludGVycG9sYXRpb25cbiAqIHN5bnRheC4gVGhlIGxvYWQtYmVhcmluZyBoaXQgaXMgdGhlIGB0ZW1wbGF0ZXM6YCBibG9jayBxdW90ZWQgYWJvdmUgXHUyMDE0IHRoZSBjb3JlIHBsdWdpbidzIHVzZXItZmFjaW5nXG4gKiBzZXR0aW5ncyBkZXNjcmlwdGlvbi4gUmVhZCB0aGF0IGJsb2NrOyBkbyBub3QgY291bnQgYnJhY2VzLlxuICpcbiAqIFdoYXQgYSBjb25zdW1lciB2YXJpZXMgaXMgb25seSBpdHMgKip2b2NhYnVsYXJ5KiosIHdoaWNoIGlzIHdoeSB0aGlzIGNvbXBvbmVudCBpcyBwYXJhbWV0ZXJpemVkIHJhdGhlclxuICogdGhhbiBmaXhlZDogdGhlIGxhbmd1YWdlIGlkIGl0IHJlZ2lzdGVycyB1bmRlciwgdGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCB0aGUgc2hhcGUgb2YgdGhlXG4gKiBmb3JtYXQgaGFsZiwgYW5kIGFueSBleHRyYSB0b3AtbGV2ZWwgdG9rZW5zIGl0cyBvd24gdGVtcGxhdGUgZGlhbGVjdCBuZWVkcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEdyYW1tYXIsXG4gIFByaXNtVG9rZW5PYmplY3Rcbn0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5cbmltcG9ydCB0eXBlIHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMgfSBmcm9tICcuL3N5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudH0gY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBFeHRyYSB0b3AtbGV2ZWwgZW50cmllcyBtZXJnZWQgaW50byB0aGUgYnVpbHQgZ3JhbW1hciwgZm9yIGEgZGlhbGVjdCB3aG9zZSB0ZW1wbGF0ZXMgY2Fycnkgc3ludGF4XG4gICAqIGJleW9uZCB0aGUgcGxhY2Vob2xkZXJzIHRoZW1zZWx2ZXMgXHUyMDE0IGEgcGF0aCBzZXBhcmF0b3IsIHNheS4gT21pdCB3aGVuIHRoZXJlIGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBleHRyYUdyYW1tYXI/OiBHcmFtbWFyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGhhbGYgb2YgYSBge3t0b2tlbjpmb3JtYXR9fWAgcGxhY2Vob2xkZXIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGEgc2NhbGFyIHdvcmQsIHdoaWNoIGlzIGNvcmUncyBvd24gc2hhcGUuXG4gICAqL1xuICByZWFkb25seSBmb3JtYXRTb3VyY2U/OiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudEZvcm1hdFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIHJlZ2lzdGVyIHRoZSBncmFtbWFyIGFzLCBlLmcuIGBteS1wbHVnaW4tdGVtcGxhdGVgLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyIGJvZHkuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHdvcmQgY2hhcmFjdGVycy4gQSBkaWFsZWN0IHdob3NlIHRva2VuIG5hbWVzIGNhcnJ5IG1vcmUgXHUyMDE0IGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50IGxpc3QsXG4gICAqIHNheSBcdTIwMTQgd2lkZW5zIGl0IGhlcmUuXG4gICAqL1xuICByZWFkb25seSB0b2tlblBhdHRlcm4/OiBSZWdFeHAgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGZvcm1hdCBoYWxmIG9mIGEgYHt7dG9rZW46Zm9ybWF0fX1gIHBsYWNlaG9sZGVyLlxuICpcbiAqIC0gQSB7QGxpbmsgUmVnRXhwfSBkZXNjcmliZXMgYSAqKnNjYWxhcioqIGZvcm1hdCBcdTIwMTQgY29yZSdzIG93biBzaGFwZSwgZS5nLiB0aGUgYFlZWVktTU0tRERgIG9mXG4gKiAgIGB7e2RhdGU6WVlZWS1NTS1ERH19YCBcdTIwMTQgYW5kIGlzIHdyYXBwZWQgaW50byBhIGBzdHJpbmdgLWFsaWFzZWQgdG9rZW4uXG4gKiAtIEEge0BsaW5rIFByaXNtVG9rZW5PYmplY3R9IGRlc2NyaWJlcyBhICoqc3RydWN0dXJlZCoqIGZvcm1hdCwgdXNlZCB2ZXJiYXRpbSwgc28gYSBkaWFsZWN0IHdob3NlIGZvcm1hdFxuICogICBoYWxmIGlzIGFuIG9iamVjdCByYXRoZXIgdGhhbiBhIHdvcmQgY2FuIHN1cHBseSBpdHMgb3duIGBpbnNpZGVgIGdyYW1tYXIgYW5kIGV4dGVudCBgcGF0dGVybmAuXG4gKiAtIEEgKipmYWN0b3J5KiogaXMgdGhlIHN0cnVjdHVyZWQgZm9ybSBmb3IgYSBkaWFsZWN0IHRoYXQgbXVzdCBuZXN0IGFuIGFscmVhZHkgcmVnaXN0ZXJlZCBQcmlzbSBsYW5ndWFnZVxuICogICBpbnRvIHRoYXQgYGluc2lkZWAgXHUyMDE0IGl0IHJlY2VpdmVzIHRoZSBsb2FkZWQgUHJpc20gbW9kdWxlLCBzbyB0aGUgY29uc3VtZXIgbmV2ZXIgY2FsbHMgYGxvYWRQcmlzbWAuXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50Rm9ybWF0U291cmNlID1cbiAgfCAoKHBhcmFtczogU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50R3JhbW1hckZhY3RvcnlQYXJhbXMpID0+IFByaXNtVG9rZW5PYmplY3QpXG4gIHwgUHJpc21Ub2tlbk9iamVjdFxuICB8IFJlZ0V4cDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnQuYnVpbGRQbGFjZWhvbGRlclRva2VufS5cbiAqL1xuaW50ZXJmYWNlIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50QnVpbGRQbGFjZWhvbGRlclRva2VuUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBQcmlzbSB0b2tlbiBkZXNjcmliaW5nIHRoZSBmb3JtYXQgaGFsZiwgb3IgYG51bGxgIGZvciBhIHBsYWNlaG9sZGVyIHRoYXQgY2FycmllcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0VG9rZW46IG51bGwgfCBQcmlzbVRva2VuT2JqZWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgZXh0ZW50IG9mIHRoZSB3aG9sZSBwbGFjZWhvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm46IFJlZ0V4cDtcbn1cblxuLyoqXG4gKiBUaGUgc2NhbGFyIGZvcm1hdCBoYWxmLCBtYXRjaGluZyBjb3JlJ3Mgb3duIGB7e2RhdGU6WVlZWS1NTS1ERH19YCBzaGFwZS5cbiAqL1xuY29uc3QgREVGQVVMVF9GT1JNQVRfUEFUVEVSTiA9IC9bYS16QS1aMC05Xy1dKy87XG5cbi8qKlxuICogVGhlIGNoYXJhY3RlcnMgYSB0b2tlbiBuYW1lIG1heSBjb250YWluLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyIGJvZHkuXG4gKi9cbmNvbnN0IERFRkFVTFRfVE9LRU5fUEFUVEVSTiA9IC9eW2EtekEtWjAtOV9dKy87XG5cbi8qKlxuICogVGhlIGA6YCBzZXBhcmF0aW5nIGEgdG9rZW4gZnJvbSBpdHMgZm9ybWF0LlxuICpcbiAqIFRoZSB0aHJlZSBkZWxpbWl0ZXIgcGF0dGVybnMgYXJlIGFuY2hvcmVkIGJlY2F1c2UgUHJpc20gdHJpZXMgZXZlcnkgYGluc2lkZWAgZW50cnkgYXQgZXZlcnkgcG9zaXRpb24gb2YgdGhlXG4gKiB0ZXh0IHN0aWxsIHVuY2xhaW1lZCwgbm90IG9ubHkgYXQgaXRzIGVkZ2VzLiBVbmFuY2hvcmVkLCBhIHN0cnVjdHVyZWQgZm9ybWF0J3Mgb3duIGA6YCByZWFkIGFzIGEgc2Vjb25kXG4gKiBkZWxpbWl0ZXIsIGFuZCBhIGB7e2AgLyBgfX1gIG5lc3RlZCBpbiBpdHMgc3RyaW5nIHJlYWQgYXMgYW5vdGhlciBwbGFjZWhvbGRlcidzLlxuICovXG5jb25zdCBGT1JNQVRfREVMSU1JVEVSX1BBVFRFUk4gPSAvXjovO1xuXG4vKipcbiAqIEEgd2hvbGUgcGxhY2Vob2xkZXIsIGxhemlseSBtYXRjaGVkIHNvIGFkamFjZW50IHBsYWNlaG9sZGVycyBkbyBub3QgbWVyZ2UgaW50byBvbmUuXG4gKi9cbmNvbnN0IFBMQUNFSE9MREVSX1BBVFRFUk4gPSAvXFx7XFx7Lis/XFx9XFx9LztcblxuLyoqXG4gKiBUaGUgb3BlbmluZyBge3tgLCBhbmNob3JlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBsYWNlaG9sZGVyLlxuICovXG5jb25zdCBQUkVGSVhfUEFUVEVSTiA9IC9eXFx7XFx7LztcblxuLyoqXG4gKiBUaGUgY2xvc2luZyBgfX1gLCBhbmNob3JlZCBhdCB0aGUgZW5kIG9mIHRoZSBwbGFjZWhvbGRlci5cbiAqL1xuY29uc3QgU1VGRklYX1BBVFRFUk4gPSAvXFx9XFx9JC87XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgUHJpc20gbGFuZ3VhZ2UgaGlnaGxpZ2h0aW5nIHRoZSBge3t0b2tlbn19YCAvIGB7e3Rva2VuOmZvcm1hdH19YCBwbGFjZWhvbGRlcnMgb2YgYSBwbHVnaW4nc1xuICogdG9rZW5pemVkLXN0cmluZyB0ZW1wbGF0ZXMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBsYW5ndWFnZSBpcyBub3QgYSBjb2RlIGZlbmNlIFx1MjAxNCBpdCBpcyByZW5kZXJlZCBieSB0aGUgYENvZGVIaWdobGlnaHRlckNvbXBvbmVudGAgZmllbGRzIG9mIGEgc2V0dGluZ3NcbiAqIHRhYiwgc28gb25seSB0aGUgUHJpc20gaGFsZiBvZiB7QGxpbmsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50fSBpcyB1c2VkLiBSZWdpc3RyYXRpb24gaXMgdW5kb25lIHdoZW5cbiAqIHRoZSBjb21wb25lbnQgdW5sb2FkcywgYXMgaXQgaXMgZm9yIGV2ZXJ5IHJlZ2lzdHJhdGlvbiB0aGF0IGJhc2UgbWFrZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB0aGlzLmFkZENoaWxkKG5ldyBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudCh7IGxhbmd1YWdlOiAnbXktcGx1Z2luLXRlbXBsYXRlJyB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50IGV4dGVuZHMgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYUdyYW1tYXI6IEdyYW1tYXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U291cmNlOiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudEZvcm1hdFNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuUGF0dGVybjogUmVnRXhwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QGxpbmsgVGVtcGxhdGVzTGFuZ3VhZ2VDb21wb25lbnR9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBUZW1wbGF0ZXNMYW5ndWFnZUNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV4dHJhR3JhbW1hciA9IHBhcmFtcy5leHRyYUdyYW1tYXI7XG4gICAgdGhpcy5mb3JtYXRTb3VyY2UgPSBwYXJhbXMuZm9ybWF0U291cmNlID8/IERFRkFVTFRfRk9STUFUX1BBVFRFUk47XG4gICAgdGhpcy5sYW5ndWFnZSA9IHBhcmFtcy5sYW5ndWFnZTtcbiAgICB0aGlzLnRva2VuUGF0dGVybiA9IHBhcmFtcy50b2tlblBhdHRlcm4gPz8gREVGQVVMVF9UT0tFTl9QQVRURVJOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGFuZ3VhZ2UgaXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWRBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlZ2lzdGVyUHJpc21MYW5ndWFnZSh7XG4gICAgICAvLyBUaGUgZmFjdG9yeSBmb3JtIGlzIHVzZWQgdW5jb25kaXRpb25hbGx5LlxuICAgICAgLy8gVGhlIGJhc2UgcmVzb2x2ZXMgZWl0aGVyIGZvcm0sIHNvIGJyYW5jaGluZyBvbiB3aGV0aGVyIHRoaXMgY29uc3VtZXIgbmVlZHMgUHJpc20gd291bGQgYnV5IG5vdGhpbmcuXG4gICAgICBncmFtbWFyOiAoZmFjdG9yeVBhcmFtcykgPT4gdGhpcy5idWlsZEdyYW1tYXIoZmFjdG9yeVBhcmFtcyksXG4gICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZ3JhbW1hciB0aGlzIGNvbXBvbmVudCByZWdpc3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBmYWN0b3J5UGFyYW1zIC0gVGhlIFByaXNtIG1vZHVsZSBhbmQgbGFuZ3VhZ2UgbG9va3VwIGhhbmRlZCB0byBhIGdyYW1tYXIgZmFjdG9yeS5cbiAgICogQHJldHVybnMgVGhlIGdyYW1tYXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gVGhpcyBpbXBsZW1lbnRzIHRoZSBleHBvcnRlZCBncmFtbWFyLWZhY3Rvcnkgc2lnbmF0dXJlIG9mIHRoZSBiYXNlIGNsYXNzLCBzbyBpdCB0YWtlcyB0aGF0IHNlYW0ncyBvd24gcGFyYW1ldGVyIHR5cGUgcmF0aGVyIHRoYW4gb25lIG5hbWVkIGFmdGVyIHRoaXMgbWV0aG9kLlxuICBwcml2YXRlIGJ1aWxkR3JhbW1hcihmYWN0b3J5UGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRHcmFtbWFyRmFjdG9yeVBhcmFtcyk6IEdyYW1tYXIge1xuICAgIGNvbnN0IGZvcm1hdFRva2VuID0gdGhpcy5yZXNvbHZlRm9ybWF0VG9rZW4oZmFjdG9yeVBhcmFtcyk7XG5cbiAgICAvLyBBIHNjYWxhciBmb3JtYXQgaGFsZiBmaXRzIGluc2lkZSBPTkUgbGF6aWx5LW1hdGNoZWQgcGxhY2Vob2xkZXIgdG9rZW4uXG4gICAgLy8gVGhhdCBpcyB0aGUgc2hhcGUgY29yZSdzIG93biBge3tkYXRlOllZWVktTU0tRER9fWAgaGFzLlxuICAgIC8vIEl0IGlzIGFsc28gdGhlIHNoYXBlIGV2ZXJ5IGNvbnN1bWVyIGhhZCBiZWZvcmUgdGhpcyBjb21wb25lbnQgZXhpc3RlZCwgc28gZW1pdHRpbmcgZXhhY3RseSBpdCBsZWF2ZXMgdGhlbSB1bmNoYW5nZWQuXG4gICAgLy9cbiAgICAvLyBBIHN0cnVjdHVyZWQgZm9ybWF0IGhhbGYgZG9lcyBub3QgZml0IHRoYXQgc2hhcGUsIHNpbmNlIGl0cyBleHRlbnQgaXMgZGVzY3JpYmVkIGJ5IGl0cyBvd24gcGF0dGVybi5cbiAgICAvLyBUaGUgd2l0aC1mb3JtYXQgY2FzZSB0aGVyZWZvcmUgbmVlZHMgYSBwYXR0ZXJuIGJ1aWx0IGZyb20gdGhhdCBleHRlbnQuXG4gICAgLy8gVGhlIHdpdGhvdXQtZm9ybWF0IGNhc2UgbmVlZHMgb25lIHRoYXQgc3RvcHMgYmVmb3JlIHRoZSBkZWxpbWl0ZXIsIHNvIHRoZSB0d28gY2Fubm90IGNsYWltIHRoZSBzYW1lIHRleHQuXG4gICAgY29uc3QgZ3JhbW1hcjogR3JhbW1hciA9IHRoaXMuZm9ybWF0U291cmNlIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICA/IHtcbiAgICAgICAgZXhwcmVzc2lvbjogdGhpcy5idWlsZFBsYWNlaG9sZGVyVG9rZW4oe1xuICAgICAgICAgIGZvcm1hdFRva2VuLFxuICAgICAgICAgIHBhdHRlcm46IFBMQUNFSE9MREVSX1BBVFRFUk5cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBleHByZXNzaW9uOiB0aGlzLmJ1aWxkUGxhY2Vob2xkZXJUb2tlbih7XG4gICAgICAgICAgZm9ybWF0VG9rZW46IG51bGwsXG4gICAgICAgICAgcGF0dGVybjogYnVpbGRQYXR0ZXJuKFt0aGlzLnRva2VuUGF0dGVybl0pXG4gICAgICAgIH0pLFxuICAgICAgICBleHByZXNzaW9uV2l0aEZvcm1hdDogdGhpcy5idWlsZFBsYWNlaG9sZGVyVG9rZW4oe1xuICAgICAgICAgIGZvcm1hdFRva2VuLFxuICAgICAgICAgIHBhdHRlcm46IGJ1aWxkUGF0dGVybihbdGhpcy50b2tlblBhdHRlcm4sIEZPUk1BVF9ERUxJTUlURVJfUEFUVEVSTiwgZm9ybWF0VG9rZW4ucGF0dGVybl0pXG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgLy8gTWVyZ2VkIHJhdGhlciB0aGFuIHNwcmVhZCwgYmVjYXVzZSBzcHJlYWRpbmcgYSBgR3JhbW1hcmAgd2lkZW5zIGV2ZXJ5IG9wdGlvbmFsIG1lbWJlciBvZlxuICAgIC8vIGBHcmFtbWFyUmVzdGAgdG8gYWRtaXQgYHVuZGVmaW5lZGAsIHdoaWNoIGBleGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlc2AgdGhlbiByZWZ1c2VzLlxuICAgIGlmICh0aGlzLmV4dHJhR3JhbW1hciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGdyYW1tYXIsIHRoaXMuZXh0cmFHcmFtbWFyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhbW1hcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHRva2VuIGRlc2NyaWJpbmcgYSB3aG9sZSBwbGFjZWhvbGRlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZXNvbHZlZCBmb3JtYXQgdG9rZW4gYW5kIHRoZSBwbGFjZWhvbGRlcidzIGV4dGVudCBwYXR0ZXJuLlxuICAgKiBAcmV0dXJucyBUaGUgcGxhY2Vob2xkZXIgdG9rZW4uXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUGxhY2Vob2xkZXJUb2tlbihwYXJhbXM6IFRlbXBsYXRlc0xhbmd1YWdlQ29tcG9uZW50QnVpbGRQbGFjZWhvbGRlclRva2VuUGFyYW1zKTogUHJpc21Ub2tlbk9iamVjdCB7XG4gICAgY29uc3QgcHJlZml4VG9rZW4gPSB7XG4gICAgICBhbGlhczogJ3JlZ2V4JyxcbiAgICAgIHBhdHRlcm46IFBSRUZJWF9QQVRURVJOXG4gICAgfTtcbiAgICBjb25zdCB0b2tlblRva2VuID0ge1xuICAgICAgYWxpYXM6ICdudW1iZXInLFxuICAgICAgcGF0dGVybjogdGhpcy50b2tlblBhdHRlcm5cbiAgICB9O1xuICAgIGNvbnN0IHN1ZmZpeFRva2VuID0ge1xuICAgICAgYWxpYXM6ICdyZWdleCcsXG4gICAgICBwYXR0ZXJuOiBTVUZGSVhfUEFUVEVSTlxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgaW5zaWRlOiB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIHBlcmZlY3Rpb25pc3Qvc29ydC1vYmplY3RzIC0tIFByaXNtIG1hdGNoZXMgdGhlIGVudHJpZXMgaW4gb3JkZXIsIHNvIHRoZSBvcmRlciBpcyBiZWhhdmlvci4gKi9cbiAgICAgICAgcHJlZml4OiBwcmVmaXhUb2tlbixcbiAgICAgICAgdG9rZW46IHRva2VuVG9rZW4sXG4gICAgICAgIC4uLihwYXJhbXMuZm9ybWF0VG9rZW4gIT09IG51bGwgJiYge1xuICAgICAgICAgIGZvcm1hdERlbGltaXRlcjoge1xuICAgICAgICAgICAgYWxpYXM6ICdyZWdleCcsXG4gICAgICAgICAgICBwYXR0ZXJuOiBGT1JNQVRfREVMSU1JVEVSX1BBVFRFUk5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGZvcm1hdDogcGFyYW1zLmZvcm1hdFRva2VuXG4gICAgICAgIH0pLFxuICAgICAgICBzdWZmaXg6IHN1ZmZpeFRva2VuXG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgcGVyZmVjdGlvbmlzdC9zb3J0LW9iamVjdHMgLS0gUHJpc20gbWF0Y2hlcyB0aGUgZW50cmllcyBpbiBvcmRlciwgc28gdGhlIG9yZGVyIGlzIGJlaGF2aW9yLiAqL1xuICAgICAgfSxcbiAgICAgIHBhdHRlcm46IHBhcmFtcy5wYXR0ZXJuXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgY29uZmlndXJlZCBmb3JtYXQgc291cmNlIGludG8gdGhlIFByaXNtIHRva2VuIGRlc2NyaWJpbmcgdGhlIGZvcm1hdCBoYWxmLlxuICAgKlxuICAgKiBAcGFyYW0gZmFjdG9yeVBhcmFtcyAtIFRoZSBQcmlzbSBtb2R1bGUgYW5kIGxhbmd1YWdlIGxvb2t1cCBoYW5kZWQgdG8gYSBncmFtbWFyIGZhY3RvcnkuXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXQgdG9rZW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gRm9yd2FyZHMgdGhlIGJhc2UgY2xhc3MncyBleHBvcnRlZCBncmFtbWFyLWZhY3RvcnkgcGFyYW1ldGVyIHR5cGUgdG8gYSBjYWxsZXItc3VwcGxpZWQgZmFjdG9yeSwgc28gaXQgY2Fubm90IHRha2UgYSB0eXBlIG5hbWVkIGFmdGVyIHRoaXMgbWV0aG9kLlxuICBwcml2YXRlIHJlc29sdmVGb3JtYXRUb2tlbihmYWN0b3J5UGFyYW1zOiBTeW50YXhIaWdobGlnaHRpbmdDb21wb25lbnRHcmFtbWFyRmFjdG9yeVBhcmFtcyk6IFByaXNtVG9rZW5PYmplY3Qge1xuICAgIGlmICh0aGlzLmZvcm1hdFNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxpYXM6ICdzdHJpbmcnLFxuICAgICAgICBwYXR0ZXJuOiB0aGlzLmZvcm1hdFNvdXJjZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZm9ybWF0U291cmNlID09PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtYXRTb3VyY2UoZmFjdG9yeVBhcmFtcykgOiB0aGlzLmZvcm1hdFNvdXJjZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIHBsYWNlaG9sZGVyIGV4dGVudCBwYXR0ZXJuIGZyb20gdGhlIHBhcnRzIHRoYXQgc2l0IGJldHdlZW4gdGhlIGRlbGltaXRlcnMuXG4gKlxuICogQSBwYXJ0IGFuY2hvcmVkIHdpdGggYSBsZWFkaW5nIGBeYCBvciBhIHRyYWlsaW5nIGAkYCBcdTIwMTQgYXMgYSBwYXR0ZXJuIG1lYW50IGZvciBhIG5lc3RlZCBgaW5zaWRlYCBlbnRyeSBpcyBcdTIwMTQgaXNcbiAqIHNwbGljZWQgaW4gd2l0aG91dCB0aGF0IGFuY2hvciwgc2luY2UgaXQgbGFuZHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYnVpbHQgcGF0dGVybiByYXRoZXIgdGhhbiBhdCBpdHMgZWRnZS5cbiAqIFRoZSBkZWxpbWl0ZXJzIHRoZW1zZWx2ZXMgYXJlIHN1Y2ggcGFydHMuXG4gKlxuICogQHBhcmFtIHBhcnRzIC0gVGhlIHBhdHRlcm5zIGJldHdlZW4gdGhlIG9wZW5pbmcgYHt7YCBhbmQgdGhlIGNsb3NpbmcgYH19YC5cbiAqIEByZXR1cm5zIFRoZSBwYXR0ZXJuLlxuICovXG5mdW5jdGlvbiBidWlsZFBhdHRlcm4ocGFydHM6IHJlYWRvbmx5IFJlZ0V4cFtdKTogUmVnRXhwIHtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoW1BSRUZJWF9QQVRURVJOLCAuLi5wYXJ0cywgU1VGRklYX1BBVFRFUk5dLm1hcCgocGFydCkgPT4gZ2V0VW5hbmNob3JlZFNvdXJjZShwYXJ0KSkuam9pbignJykpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHNvdXJjZSBvZiBhIHBhdHRlcm4gd2l0aG91dCBpdHMgbGVhZGluZyBgXmAgb3IgaXRzIHRyYWlsaW5nIHVuZXNjYXBlZCBgJGAuXG4gKlxuICogQHBhcmFtIHBhdHRlcm4gLSBUaGUgcGF0dGVybi5cbiAqIEByZXR1cm5zIFRoZSB1bmFuY2hvcmVkIHNvdXJjZS5cbiAqL1xuZnVuY3Rpb24gZ2V0VW5hbmNob3JlZFNvdXJjZShwYXR0ZXJuOiBSZWdFeHApOiBzdHJpbmcge1xuICBsZXQgc291cmNlID0gcGF0dGVybi5zb3VyY2U7XG4gIGlmIChzb3VyY2Uuc3RhcnRzV2l0aCgnXicpKSB7XG4gICAgc291cmNlID0gc291cmNlLnNsaWNlKDEpO1xuICB9XG4gIGlmIChzb3VyY2UuZW5kc1dpdGgoJyQnKSAmJiAhc291cmNlLmVuZHNXaXRoKFN0cmluZy5yYXdgXFwkYCkpIHtcbiAgICBzb3VyY2UgPSBzb3VyY2Uuc2xpY2UoMCwgLTEpO1xuICB9XG4gIHJldHVybiBzb3VyY2U7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUNBLDJDQUE0QztBQWtFNUMsTUFBTSx5QkFBeUI7QUFLL0IsTUFBTSx3QkFBd0I7QUFTOUIsTUFBTSwyQkFBMkI7QUFLakMsTUFBTSxzQkFBc0I7QUFLNUIsTUFBTSxpQkFBaUI7QUFLdkIsTUFBTSxpQkFBaUI7QUFnQmhCLE1BQU0sbUNBQW1DLGlFQUE0QjtBQUFBLEVBQ3pEO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxRQUFxRDtBQUN0RSxVQUFNO0FBQ04sU0FBSyxlQUFlLE9BQU87QUFDM0IsU0FBSyxlQUFlLE9BQU8sZ0JBQWdCO0FBQzNDLFNBQUssV0FBVyxPQUFPO0FBQ3ZCLFNBQUssZUFBZSxPQUFPLGdCQUFnQjtBQUFBLEVBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBc0IsY0FBNkI7QUFDakQsVUFBTSxLQUFLLHNCQUFzQjtBQUFBO0FBQUE7QUFBQSxNQUcvQixTQUFTLENBQUMsa0JBQWtCLEtBQUssYUFBYSxhQUFhO0FBQUEsTUFDM0QsVUFBVSxLQUFLO0FBQUEsSUFDakIsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU1Es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
|