@mnaoumov/obsidian-lib 4.1.0 → 4.2.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/dist/lib/cjs/__merged.cjs +9 -2
- package/dist/lib/cjs/__merged.d.cts +2 -2
- package/dist/lib/cjs/active-file-provider.cjs +3 -2
- package/dist/lib/cjs/app.cjs +3 -2
- package/dist/lib/cjs/async-with-notice.cjs +3 -2
- package/dist/lib/cjs/attachment-path.cjs +3 -2
- package/dist/lib/cjs/attachment-unit-folder.cjs +3 -2
- package/dist/lib/cjs/backlink-index.cjs +3 -2
- package/dist/lib/cjs/backlink.cjs +3 -2
- package/dist/lib/cjs/bases-view-registrar.cjs +3 -2
- package/dist/lib/cjs/callout.cjs +3 -2
- package/dist/lib/cjs/canvas.cjs +3 -2
- package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -2
- package/dist/lib/cjs/code-block-markdown-information.cjs +3 -2
- package/dist/lib/cjs/code-block-reg-exp.cjs +3 -2
- package/dist/lib/cjs/codemirror/index.cjs +3 -2
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +3 -2
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/command-handler-component.cjs +3 -2
- package/dist/lib/cjs/command-handlers/command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/global-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/index.cjs +3 -2
- package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +3 -2
- package/dist/lib/cjs/command-registrar.cjs +3 -2
- package/dist/lib/cjs/community-plugins.cjs +47 -4
- package/dist/lib/cjs/community-plugins.d.cts +36 -1
- package/dist/lib/cjs/components/abort-signal-component.cjs +3 -2
- package/dist/lib/cjs/components/all-windows-event-component.cjs +3 -2
- package/dist/lib/cjs/components/async-error-handler-component.cjs +3 -2
- package/dist/lib/cjs/components/async-events-component.cjs +3 -2
- package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +3 -2
- package/dist/lib/cjs/components/component-ex.cjs +3 -2
- package/dist/lib/cjs/components/console-debug-component.cjs +3 -2
- package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +3 -2
- package/dist/lib/cjs/components/disposable-component.cjs +3 -2
- package/dist/lib/cjs/components/embed-extensions-component.cjs +3 -2
- package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +3 -2
- package/dist/lib/cjs/components/index.cjs +3 -2
- package/dist/lib/cjs/components/layout-ready-component.cjs +3 -2
- package/dist/lib/cjs/components/menu-event-registrar-component.cjs +3 -2
- package/dist/lib/cjs/components/monkey-around-component.cjs +3 -2
- package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +3 -2
- package/dist/lib/cjs/components/plugin-context-component.cjs +3 -2
- package/dist/lib/cjs/components/plugin-gate-component.cjs +26 -4
- package/dist/lib/cjs/components/plugin-gate-component.d.cts +10 -0
- package/dist/lib/cjs/components/plugin-notice-component.cjs +3 -2
- package/dist/lib/cjs/components/plugin-settings-component.cjs +3 -2
- package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +3 -2
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +3 -2
- package/dist/lib/cjs/components/pointer-position-component.cjs +3 -2
- package/dist/lib/cjs/components/registry-component.cjs +3 -2
- package/dist/lib/cjs/components/release-notes-component.cjs +3 -2
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +3 -2
- package/dist/lib/cjs/components/rmdir-guard-component.cjs +3 -2
- package/dist/lib/cjs/components/settings-migration-component.cjs +3 -2
- package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -2
- package/dist/lib/cjs/components/templates-language-component.cjs +3 -2
- package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +3 -2
- package/dist/lib/cjs/constructors/index.cjs +3 -2
- package/dist/lib/cjs/css-class.cjs +3 -2
- package/dist/lib/cjs/data-handler.cjs +3 -2
- package/dist/lib/cjs/dataview-link.cjs +3 -2
- package/dist/lib/cjs/dataview.cjs +3 -2
- package/dist/lib/cjs/debug.cjs +3 -2
- package/dist/lib/cjs/demo-vault-helper-settings.cjs +3 -2
- package/dist/lib/cjs/demo-vault-helper.cjs +3 -2
- package/dist/lib/cjs/demo-vault-naming.cjs +3 -2
- package/dist/lib/cjs/desktop-demo-vault-opener.cjs +3 -2
- package/dist/lib/cjs/desktop-trusted-input.cjs +3 -2
- package/dist/lib/cjs/editor-extension-registrar.cjs +3 -2
- package/dist/lib/cjs/editor-suggest-registrar.cjs +3 -2
- package/dist/lib/cjs/editor.cjs +3 -2
- package/dist/lib/cjs/events.cjs +3 -2
- package/dist/lib/cjs/extensions-registrar.cjs +3 -2
- package/dist/lib/cjs/file-change.cjs +3 -2
- package/dist/lib/cjs/file-explorer.cjs +3 -2
- package/dist/lib/cjs/file-manager.cjs +3 -2
- package/dist/lib/cjs/file-system.cjs +3 -2
- package/dist/lib/cjs/folder-note.cjs +3 -2
- package/dist/lib/cjs/frontmatter-formatting.cjs +3 -2
- package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +3 -2
- package/dist/lib/cjs/frontmatter.cjs +3 -2
- package/dist/lib/cjs/generated-during-build.cjs +4 -3
- package/dist/lib/cjs/hover-link-source-registrar.cjs +3 -2
- package/dist/lib/cjs/html-element.cjs +3 -2
- package/dist/lib/cjs/i18n/custom-type-options.cjs +3 -2
- package/dist/lib/cjs/i18n/default-translations.cjs +3 -2
- package/dist/lib/cjs/i18n/i18n.cjs +3 -2
- package/dist/lib/cjs/i18n/index.cjs +3 -2
- package/dist/lib/cjs/i18n/locales/en.cjs +7 -2
- package/dist/lib/cjs/i18n/locales/en.d.cts +4 -0
- package/dist/lib/cjs/i18n/locales/index.cjs +3 -2
- package/dist/lib/cjs/i18n/locales/translations-map.cjs +3 -2
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +4 -0
- package/dist/lib/cjs/index.cjs +3 -2
- package/dist/lib/cjs/is-in-obsidian.cjs +3 -2
- package/dist/lib/cjs/library-styles.cjs +3 -2
- package/dist/lib/cjs/library.cjs +3 -2
- package/dist/lib/cjs/link-name.cjs +3 -2
- package/dist/lib/cjs/link-update-progress.cjs +3 -2
- package/dist/lib/cjs/link.cjs +3 -2
- package/dist/lib/cjs/logger.cjs +3 -2
- package/dist/lib/cjs/loop.cjs +3 -2
- package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +3 -2
- package/dist/lib/cjs/markdown-code-block-processor.cjs +3 -2
- package/dist/lib/cjs/markdown-post-processor-registrar.cjs +3 -2
- package/dist/lib/cjs/markdown-view.cjs +3 -2
- package/dist/lib/cjs/markdown.cjs +3 -2
- package/dist/lib/cjs/menu-event-registrar.cjs +3 -2
- package/dist/lib/cjs/metadata-cache.cjs +19 -3
- package/dist/lib/cjs/mobile-trusted-input.cjs +3 -2
- package/dist/lib/cjs/modals/alert.cjs +3 -2
- package/dist/lib/cjs/modals/confirm.cjs +3 -2
- package/dist/lib/cjs/modals/index.cjs +3 -2
- package/dist/lib/cjs/modals/minimizable-modal.cjs +3 -2
- package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -2
- package/dist/lib/cjs/modals/modal.cjs +3 -2
- package/dist/lib/cjs/modals/prompt.cjs +3 -2
- package/dist/lib/cjs/modals/select-item.cjs +3 -2
- package/dist/lib/cjs/modals/select-option.cjs +3 -2
- package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +3 -2
- package/dist/lib/cjs/note-priority.cjs +3 -2
- package/dist/lib/cjs/notebook-navigator.cjs +3 -2
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +3 -2
- package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +3 -2
- package/dist/lib/cjs/obsidian-settings.cjs +3 -2
- package/dist/lib/cjs/parse-link.cjs +3 -2
- package/dist/lib/cjs/path-settings.cjs +3 -2
- package/dist/lib/cjs/pdf.cjs +3 -2
- package/dist/lib/cjs/plugin/index.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin-api-schema.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin-api.cjs +6 -2
- package/dist/lib/cjs/plugin/plugin-api.d.cts +10 -0
- package/dist/lib/cjs/plugin/plugin-context.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin-event-source.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +31 -4
- package/dist/lib/cjs/plugin/plugin-install-state.d.cts +38 -0
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +3 -2
- package/dist/lib/cjs/plugin/plugin.cjs +3 -2
- package/dist/lib/cjs/plugin/settings-migration-api.cjs +3 -2
- package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +3 -2
- package/dist/lib/cjs/popovers/field-popover.cjs +3 -2
- package/dist/lib/cjs/popovers/index.cjs +3 -2
- package/dist/lib/cjs/popovers/popover-anchor.cjs +3 -2
- package/dist/lib/cjs/popovers/popover.cjs +3 -2
- package/dist/lib/cjs/property-entry.cjs +3 -2
- package/dist/lib/cjs/queue.cjs +3 -2
- package/dist/lib/cjs/react/app-context.cjs +3 -2
- package/dist/lib/cjs/react/index.cjs +3 -2
- package/dist/lib/cjs/reference.cjs +3 -2
- package/dist/lib/cjs/resource-lock.cjs +3 -2
- package/dist/lib/cjs/resource-url.cjs +3 -2
- package/dist/lib/cjs/ribbon-icon-registrar.cjs +3 -2
- package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/date-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/date-time-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/email-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/file-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/index.cjs +3 -2
- package/dist/lib/cjs/setting-components/month-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/multiple-email-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/multiple-text-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/number-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/password-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -2
- package/dist/lib/cjs/setting-components/telephone-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/text-based-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/time-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/url-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/validator-component.cjs +3 -2
- package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +3 -2
- package/dist/lib/cjs/setting-components/week-component.cjs +3 -2
- package/dist/lib/cjs/setting-ex.cjs +3 -2
- package/dist/lib/cjs/setting-group-ex.cjs +3 -2
- package/dist/lib/cjs/status-bar-item-registrar.cjs +3 -2
- package/dist/lib/cjs/templater.cjs +3 -2
- package/dist/lib/cjs/transformers/duration-transformer.cjs +3 -2
- package/dist/lib/cjs/transformers/index.cjs +3 -2
- package/dist/lib/cjs/trusted-input.cjs +3 -2
- package/dist/lib/cjs/validation.cjs +3 -2
- package/dist/lib/cjs/vault-delete.cjs +3 -2
- package/dist/lib/cjs/vault-transaction.cjs +3 -2
- package/dist/lib/cjs/vault.cjs +3 -2
- package/dist/lib/cjs/view-registrar.cjs +3 -2
- package/dist/lib/cjs/workspace.cjs +3 -2
- package/dist/lib/esm/__merged.d.mts +2 -2
- package/dist/lib/esm/__merged.mjs +9 -3
- package/dist/lib/esm/community-plugins.d.mts +36 -1
- package/dist/lib/esm/community-plugins.mjs +42 -2
- package/dist/lib/esm/components/plugin-gate-component.d.mts +10 -0
- package/dist/lib/esm/components/plugin-gate-component.mjs +30 -5
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +4 -0
- package/dist/lib/esm/i18n/locales/en.mjs +5 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +4 -0
- package/dist/lib/esm/metadata-cache.mjs +17 -2
- package/dist/lib/esm/plugin/plugin-api.d.mts +10 -0
- package/dist/lib/esm/plugin/plugin-api.mjs +4 -1
- package/dist/lib/esm/plugin/plugin-install-state.d.mts +38 -0
- package/dist/lib/esm/plugin/plugin-install-state.mjs +30 -3
- package/package.json +11 -4
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -684,4 +685,4 @@ async function showErrorAndDisablePlugin(plugin, message) {
|
|
|
684
685
|
reloadPlugin,
|
|
685
686
|
showErrorAndDisablePlugin
|
|
686
687
|
});
|
|
687
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50LFxuICBJY29uTmFtZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luQ29uZmxpY3QsXG4gIFBsdWdpbkRlcGVuZGVuY3lcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5BcGlEZWNsYXJhdGlvbiB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgfSBmcm9tICcuL3BsdWdpbi1saWZlY3ljbGUtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi4vYWN0aXZlLWZpbGUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5HYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHsgaW5pdEkxOE4gfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmltcG9ydCB7IFJlc291cmNlTG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3Jlc291cmNlLWxvY2sudHMnO1xuaW1wb3J0IHsgcHVibGlzaFBsdWdpbkFwaSB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50XG59IGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuXG4vKipcbiAqIFRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBvd25lZCBieSB7QGxpbmsgUGx1Z2luQmFzZX0sIGtleWVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBhY2Nlc3NvciBleHBvc2luZ1xuICogZWFjaCBvbmUuIEV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbCBiZWNhdXNlIGEgY29tcG9uZW50IG9ubHkgZXhpc3RzIG9uY2Uge0BsaW5rIFBsdWdpbkJhc2Uub25sb2FkfVxuICogaGFzIGNyZWF0ZWQgaXQuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5CYXNlQ29tcG9uZW50cyB7XG4gIGFib3J0U2lnbmFsQ29tcG9uZW50PzogQWJvcnRTaWduYWxDb21wb25lbnQ7XG4gIGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50PzogQ29tbWFuZEhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbnNvbGVEZWJ1Z0NvbXBvbmVudD86IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcbiAgcGx1Z2luQ29udGV4dENvbXBvbmVudD86IFBsdWdpbkNvbnRleHRDb21wb25lbnQ7XG4gIHBsdWdpbkdhdGVDb21wb25lbnQ/OiBQbHVnaW5HYXRlQ29tcG9uZW50O1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQ/OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHBsdWdpblNldHRpbmdzQ29tcG9uZW50PzogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG4gIHJlc291cmNlTG9ja0NvbXBvbmVudD86IFJlc291cmNlTG9ja0NvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgcmVtb3ZlQ2hpbGR9IC8ge0BsaW5rIGFkZENoaWxkfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBtaXhpbkFzeW5jRXZlbnRzPFBsdWdpbkV2ZW50TWFwPigpKFBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBHZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KCk6IEFib3J0U2lnbmFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmFib3J0U2lnbmFsQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KHZhbHVlOiBBYm9ydFNpZ25hbENvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdhYm9ydFNpZ25hbENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQoKTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh2YWx1ZTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgnYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2hhcmVkIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuIFJlZ2lzdGVyIGEgcGx1Z2luJ3MgY29tbWFuZHMgb24gaXQgdmlhXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVyc30gcmF0aGVyIHRoYW4gY29uc3RydWN0aW5nIHlvdXIgb3duXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudH0g4oCUIHRoZSBhcHAtYmFja2VkIGFjdGl2ZS1maWxlIHByb3ZpZGVyLCBjb21tYW5kIHJlZ2lzdHJhciwgbWVudVxuICAgKiBldmVudCByZWdpc3RyYXIsIGFuZCBwbHVnaW4gbmFtZSBhcmUgYWxyZWFkeSB3aXJlZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KCk6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgY29tbWFuZEhhbmRsZXJDb21wb25lbnQodmFsdWU6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbW1hbmRIYW5kbGVyQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudCAocGx1Z2luIElELCBkZWJ1ZyBjb250cm9sbGVyLCBsaWJyYXJ5IHN0eWxlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCgpOiBQbHVnaW5Db250ZXh0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLnBsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luQ29udGV4dENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBnYXRlIGhvbGRpbmcgdGhlIHBsdWdpbidzIGZlYXR1cmUgc3VyZmFjZSB1cCBvciBkb3duLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgaXQgZnJvbSBhIHNldHRpbmdzIHRhYiB0byByZW5kZXIgdGhlIG92ZXJsYXAgYmFubmVyIGZvciBhXG4gICAqIHtAbGluayBjb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudCFQbHVnaW5Db25mbGljdFNldmVyaXR5Lldhcm59IGNvbmZsaWN0IOKAlCB0aGUgb25lXG4gICAqIGJhbm5lciB0aGUgbGlicmFyeSBjYW5ub3QgcGxhY2UgaXRzZWxmLCBiZWNhdXNlIGEgcnVubmluZyBwbHVnaW4gYnVpbGRzIGl0cyBvd24gc2V0dGluZ3MgdGFiLlxuICAgKlxuICAgKiBSZWFkYWJsZSB0aHJvdWdob3V0IHtAbGluayBvbmxvYWRJbXBsfSwgaW5jbHVkaW5nIGl0cyBzeW5jaHJvbm91cyBwcmVmaXgsIHdoaWNoIGlzIHdoZXJlIGEgc2V0dGluZ3NcbiAgICogdGFiIGlzIGJ1aWx0LiBUaGF0IGlzIGRlbGliZXJhdGUgcmF0aGVyIHRoYW4gaW5jaWRlbnRhbDogYWRkaW5nIHRoZSBnYXRlIGlzIHdoYXQgcnVuc1xuICAgKiB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIHtAbGluayBvbmxvYWR9IGFzc2lnbnMgdGhpcyBmaWVsZCBiZWZvcmUgYWRkaW5nIGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwbHVnaW5HYXRlQ29tcG9uZW50KCk6IFBsdWdpbkdhdGVDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luR2F0ZUNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5HYXRlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5HYXRlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpbkdhdGVDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luTm90aWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luTm90aWNlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luTm90aWNlQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQoKTogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gUGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQodmFsdWU6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpblNldHRpbmdzQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuY29tcG9uZW50cy5yZXNvdXJjZUxvY2tDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gRWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCByZXNvdXJjZUxvY2tDb21wb25lbnQodmFsdWU6IFJlc291cmNlTG9ja0NvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdyZXNvdXJjZUxvY2tDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudHM6IFBsdWdpbkJhc2VDb21wb25lbnRzID0ge307XG5cbiAgLy8gRXZlcnl0aGluZyB0aGUgU1VCQ0xBU1Mgb3duczogd2hhdCBgb25sb2FkSW1wbGAgYWRkcywgYW5kIHdoYXQgaXQgYWRkcyBsYXRlci5cbiAgLy9cbiAgLy8gQSBzZWNvbmQgd3JhcHBlciByYXRoZXIgdGhhbiBvbmUsIGJlY2F1c2UgdGhlIHR3byB0aWVycyBoYXZlIG9wcG9zaXRlIGxpZmV0aW1lcy4gVGhlIHVuaXZlcnNhbFxuICAvLyBjb21wb25lbnRzIGhhdmUgdG8gT1VUTElWRSBhIGxvc3QgZGVwZW5kZW5jeSDigJQgdGhleSBhcmUgd2hhdCBzaG93cyB0aGUgbm90aWNlIG5hbWluZyB0aGUgcGx1Z2luIHRoYXRcbiAgLy8gd2VudCBhd2F5IGFuZCByZW5kZXJzIHRoZSBidXR0b24gdGhhdCBicmluZ3MgaXQgYmFjayDigJQgd2hpbGUgdGhlIHN1YmNsYXNzJ3Mgc3VyZmFjZSBpcyBleGFjdGx5IHdoYXRcbiAgLy8gbXVzdCBzdG9wIHJ1bm5pbmcuIFVubG9hZGluZyBvbmUgd3JhcHBlciBob2xkaW5nIGJvdGggd291bGQgc2lsZW5jZSB0aGUgcGx1Z2luIGF0IHRoZSBtb21lbnQgaXQgbW9zdFxuICAvLyBuZWVkcyB0byBzcGVhay5cbiAgLy9cbiAgLy8gQWx3YXlzIHByZXNlbnQsIG5ldmVyIG51bGwsIGFuZCBSRVBMQUNFRCByYXRoZXIgdGhhbiBlbXB0aWVkIHdoZW4gdGhlIHN1cmZhY2UgaXMgdG9ybiBkb3duLiBUaGF0IGtlZXBzXG4gIC8vIGBhZGRDaGlsZGAgY2FsbGFibGUgYXQgZXZlcnkgcG9pbnQgaW4gdGhlIHBsdWdpbidzIGxpZmUsIGV4YWN0bHkgYXMgaXQgd2FzIGJlZm9yZSB0aGUgdGllcnMgZXhpc3RlZDpcbiAgLy8gQSBjaGlsZCBhZGRlZCBiZWZvcmUgdGhlIGdhdGUgb3BlbnMgaXMgcXVldWVkIGFuZCBsb2FkZWQgd2hlbiBpdCBkb2VzLCB3aGljaCBpcyB3aGF0IGBDb21wb25lbnRFeGBcbiAgLy8gYWxyZWFkeSBkb2VzIGZvciBhbnkgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gIHByaXZhdGUgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gbmV3IENvbXBvbmVudEV4KCk7XG5cbiAgLy8gVGhlIHBheWxvYWQgYnJvYWRjYXN0IHdoZW4gdGhpcyBwbHVnaW4gZmluaXNoZWQgbG9hZGluZywga2VwdCBzbyB0aGUgbWF0Y2hpbmcgdW5sb2FkZWQgYnJvYWRjYXN0XG4gIC8vIGRlc2NyaWJlcyB0aGUgc2FtZSBwbHVnaW4gd2l0aG91dCByZS1kZXJpdmluZyBpdCBmcm9tIGEgc3VyZmFjZSB0aGF0IGhhcyBzaW5jZSBiZWVuIHRvcm4gZG93bi4gTnVsbFxuICAvLyB3aGVuZXZlciBubyBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gZXZlbnRzIHBhaXJlZC5cbiAgcHJpdmF0ZSBsaWZlY3ljbGVFdmVudFBheWxvYWQ6IG51bGwgfCBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgPSBudWxsO1xuXG4gIC8vIFRoZSBsaWJyYXJ5J3Mgb3duIGNvbXBvbmVudHMsIHdoaWNoIG91dGxpdmUgYW55IGRlcGVuZGVuY3kuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGUgY2hpbGQgaXMgYWRkZWQgdG8gdGhlIGludGVybmFsIHdyYXBwZXIgaG9sZGluZyB0aGUgc3ViY2xhc3MncyBvd24gc3VyZmFjZSwgd2hpY2gge0BsaW5rIG9ubG9hZH1cbiAgICogY3JlYXRlcyBhbmQgbG9hZHMgYmVmb3JlIGNhbGxpbmcge0BsaW5rIG9ubG9hZEltcGx9LiBTbyBhIGNoaWxkIGFkZGVkIGR1cmluZyB7QGxpbmsgb25sb2FkSW1wbH0gaXNcbiAgICogbG9hZGVkIGltbWVkaWF0ZWx5LCBjaGlsZHJlbi1maXJzdCwgYW5kIGlzIHVzYWJsZSBieSB0aGUgdGltZSB0aGlzIG1ldGhvZCByZXR1cm5zLlxuICAgKlxuICAgKiBUaGF0IHdyYXBwZXIgaXMgdG9ybiBkb3duIGFuZCByZWJ1aWx0IHdoZW5ldmVyIHRoZSBnYXRlIGNsb3NlcyBhbmQgb3BlbnMgYWdhaW4g4oCUIGEgZGVwZW5kZW5jeSBkZWNsYXJlZFxuICAgKiBieSB7QGxpbmsgZ2V0UGx1Z2luRGVwZW5kZW5jaWVzfSBnb2luZyBhd2F5IGFuZCBjb21pbmcgYmFjaywgb3IgYSBjb25mbGljdCBkZWNsYXJlZCBieVxuICAgKiB7QGxpbmsgZ2V0UGx1Z2luQ29uZmxpY3RzfSBhcHBlYXJpbmcgYW5kIGJlaW5nIHJlc29sdmVkIOKAlCBzbyBhIGNoaWxkIGFkZGVkIGhlcmUgbGl2ZXMgZXhhY3RseSBhcyBsb25nXG4gICAqIGFzIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgZG9lcy4gQWRkaW5nIG9uZSB3aGlsZSB0aGUgc3VyZmFjZSBpcyBkb3duIGlzIHN0aWxsIGxlZ2l0aW1hdGUg4oCUIGl0IGlzXG4gICAqIHF1ZXVlZCBhbmQgbG9hZGVkIHdoZW4gdGhlIHN1cmZhY2UgbmV4dCBjb21lcyB1cCwgdGhlIHdheSB7QGxpbmsgQ29tcG9uZW50RXguYWRkQ2hpbGR9IGFscmVhZHkgcXVldWVzXG4gICAqIGEgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIFNVQkNMQVNTJ3MgZG9vciwgYW5kIHRoZSBvbmx5IG9uZSBpdCBoYXM6IHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyB7QGxpbmsgb25sb2FkfSByZWdpc3RlcnNcbiAgICogdGFrZSBhIHByaXZhdGUgcm91dGUgb250byBhIGRpZmZlcmVudCB3cmFwcGVyLiBTbyBhbnl0aGluZyBvYnNlcnZpbmcgdGhpcyBtZXRob2Qg4oCUIGEgdGVzdCBjb3VudGluZyBpdHNcbiAgICogY2FsbHMsIGEgcGF0Y2ggd3JhcHBpbmcgaXQg4oCUIHNlZXMgZXhhY3RseSB0aGUgY2hpbGRyZW4gdGhlIHN1YmNsYXNzIGFkZGVkLCBhbmQgbm9uZSBvZiB0aGUgbGlicmFyeSdzLlxuICAgKiBCZWZvcmUgdGhlIHR3byB0aWVycyBleGlzdGVkIG9uZSBkb29yIGNhcnJpZWQgYm90aCwgYW5kIGEgY29uc3VtZXIgY291bnRpbmcgdGhlIHRvdGFsIGlzIHRoZSBvbmUgdGhpbmdcbiAgICogdGhlIHNwbGl0IGNvdWxkIG5vdCBrZWVwIHdvcmtpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogT3JjaGVzdHJhdGVzIGxvYWRpbmc6IHJlZ2lzdGVycyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMsIGxldHMgdGhlIHN1YmNsYXNzIHdpcmUgaXRzIG93blxuICAgKiBjb21wb25lbnRzIHZpYSB7QGxpbmsgb25sb2FkSW1wbH0sIHRoZW4gYXdhaXRzIHRoZSBhc3luYyB0YWlsIG9mIGV2ZXJ5IGxvYWQuXG4gICAqIEVhY2ggY29tcG9uZW50IGxvYWRzIGFzIGl0IGlzIGFkZGVkLCBjaGlsZHJlbi1maXJzdC5cbiAgICpcbiAgICogRG8gTk9UIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBPdmVycmlkZSB7QGxpbmsgb25sb2FkSW1wbH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSB3cmFwcGVyIGlzIGF0dGFjaGVkIGFuZCBsb2FkZWQgYmVmb3JlIGFueXRoaW5nIGlzIHdpcmVkIHVwLCBzbyBldmVyeSBgYWRkQ2hpbGRgIGJlbG93XG4gICAgICAvLyBsb2FkcyBpdHMgY2hpbGQgc3RyYWlnaHQgYXdheSByYXRoZXIgdGhhbiBxdWV1aW5nIGl0LlxuICAgICAgLy8gVGhhdCBpcyB3aGF0IGxldHMgYSBjb21tYW5kIGhhbmRsZXIgcmVnaXN0ZXIgaXRzIG1lbnUgZXZlbnRzIGZyb20gYG9uUmVnaXN0ZXJlZGAsIHdoaWNoXG4gICAgICAvLyBgcmVnaXN0ZXJDb21tYW5kSGFuZGxlcnNgIGF3YWl0cyBhbmQgd2hpY2ggYSByZWdpc3RyYXIgcmVmdXNlcyB3aGlsZSB1bmxvYWRlZC5cbiAgICAgIC8vIEF0dGFjaGluZyBpdCB1cCBmcm9udCBhbHNvIHJlZ2lzdGVycyB0aGUgd3JhcHBlciBmb3IgdGVhcmRvd24gYmVmb3JlIGFueXRoaW5nIGNhbiB0aHJvdy5cbiAgICAgIC8vIFRoZSBsb2FkIGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGxlZnQgdG8gYGFkZENoaWxkYCwgd2hpY2ggbG9hZHMgdGhlIGNoaWxkIG9ubHkgd2hlbiB0aGVcbiAgICAgIC8vIHBsdWdpbiBpdHNlbGYgaXMgbG9hZGVkIOKAlCB0cnVlIHdoZW4gT2JzaWRpYW4gY2FsbHMgYGxvYWQoKWAsIGJ1dCBub3Qgd2hlbiBhIGNhbGxlciBpbnZva2VzXG4gICAgICAvLyBgb25sb2FkKClgIGRpcmVjdGx5LlxuICAgICAgc3VwZXIuYWRkQ2hpbGQodGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICAgIGF3YWl0IGluaXRJMThOKHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuICAgICAgdGhpcy5wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpbkNvbnRleHRDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQoXG4gICAgICAgIG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50KSk7XG4gICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5yZXNvdXJjZUxvY2tDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBSZXNvdXJjZUxvY2tDb21wb25lbnQodGhpcy5hcHAsIHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIC8vIGBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gICAgICAvLyBgZmlsZXMtbWVudWAgZXZlbnRzLCBzbyBldmVyeSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgd291bGQgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmdcbiAgICAgIC8vIHRocm91Z2ggaXQuIFdpcmVkIGhlcmUgcmF0aGVyIHRoYW4gcGVyLXBsdWdpbjogdGhlIGJyaWRnZSBzdGF5cyBkb3JtYW50IHdoZW4gTm90ZWJvb2tcbiAgICAgIC8vIE5hdmlnYXRvciBpcyBub3QgaW5zdGFsbGVkLCBhbmQgYSBwbHVnaW4gd2l0aCBubyBmaWxlL2ZvbGRlciBoYW5kbGVycyBjb250cmlidXRlcyBub3RoaW5nLlxuICAgICAgY29uc3Qgbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKFxuICAgICAgICBuZXcgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgICAgIHN1Ym1lbnVJY29uOiB0aGlzLmdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5hcHApLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZW51RXZlbnRSZWdpc3RyYXJzOiBbbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRdLFxuICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQgaXMgdW5pdmVyc2FsOyB0aGUgY29tbWFuZHMgcmVnaXN0ZXJlZCBUSFJPVUdIIGl0IGFyZSBub3QuIEEgc3ViY2xhc3MgcmVnaXN0ZXJzXG4gICAgICAgICAgLy8gaXRzIG93biBmcm9tIGBvbmxvYWRJbXBsYCwgY2xvc2luZyBvdmVyIGNvbGxhYm9yYXRvcnMgdGhhdCBiZWxvbmcgdG8gdGhlIGZlYXR1cmUgc3VyZmFjZSDigJQgc29cbiAgICAgICAgICAvLyB0aG9zZSBjb21tYW5kcyBtdXN0IGdvIGRvd24gd2l0aCB0aGUgc3VyZmFjZSB3aGVuIHRoZSBnYXRlIGNsb3Nlcywgb3IgdGhleSBzaXQgaW4gdGhlIHBhbGV0dGVcbiAgICAgICAgICAvLyBjYWxsaW5nIGludG8gdG9ybi1kb3duIG9iamVjdHMsIGFuZCBhcmUgcmVnaXN0ZXJlZCBhIHNlY29uZCB0aW1lIHdoZW4gdGhlIGdhdGUgcmVvcGVucyBhbmRcbiAgICAgICAgICAvLyBgb25sb2FkSW1wbGAgcnVucyBhZ2Fpbi5cbiAgICAgICAgICAvLyBSZXNvbHZlZCBvbiBldmVyeSBjYWxsIHJhdGhlciB0aGFuIGNhcHR1cmVkIGhlcmUsIGJlY2F1c2UgYHVubG9hZEZlYXR1cmVTdXJmYWNlYCBSRVBMQUNFUyB0aGVcbiAgICAgICAgICAvLyB3cmFwcGVyIGluc3RlYWQgb2YgZW1wdHlpbmcgaXQ6IGVhY2ggY3ljbGUncyBjb21tYW5kcyBiZWxvbmcgdG8gdGhhdCBjeWNsZSdzIHdyYXBwZXIuXG4gICAgICAgICAgY29tbWFuZExpZmV0aW1lT3duZXJQcm92aWRlcjogKCk6IENvbXBvbmVudEV4ID0+IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbW1hbmRSZWdpc3RyYXI6IG5ldyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyKHRoaXMpLFxuICAgICAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50KHRoaXMuYXBwKSksXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgLy8gQWx3YXlzIGF2YWlsYWJsZTsgdGhlIGNvbW1hbmQncyBvd24gYGNhbkV4ZWN1dGVgIGhpZGVzIGl0IHVubGVzcyB0aGUgYWN0aXZlIG5vdGUgaXMgbG9ja2VkLlxuICAgICAgLy8gVGhlIG9uZSBjb21tYW5kIHRoYXQgbmFtZXMgaXRzIG93bmVyIGV4cGxpY2l0bHksIG9wdGluZyBPVVQgb2YgdGhlIHN1cmZhY2Utc2NvcGVkIGRlZmF1bHQgYWJvdmU6XG4gICAgICAvLyBJdCBpcyB0aGUgcmVzY3VlIGZvciBhIG5vdGUgbGVmdCBsb2NrZWQsIGl0IGNsb3NlcyBvdmVyIG5vdGhpbmcgYnV0IHRoZSB1bml2ZXJzYWwgcmVzb3VyY2UtbG9ja1xuICAgICAgLy8gY29tcG9uZW50LCBhbmQgYSBibG9ja2VkIHBsdWdpbiBpcyBleGFjdGx5IHdoZW4gYSB1c2VyIG1heSBuZWVkIGl0LlxuICAgICAgYXdhaXQgdGhpcy5jb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVycygoKSA9PiBbXG4gICAgICAgIG5ldyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcmVzb3VyY2VMb2NrQ29tcG9uZW50OiB0aGlzLnJlc291cmNlTG9ja0NvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgXSwgeyBsaWZldGltZU93bmVyOiB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0pO1xuXG4gICAgICB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KHtcbiAgICAgICAgICBkYXRhSGFuZGxlcjogbmV3IFBsdWdpbkRhdGFIYW5kbGVyKHRoaXMpLFxuICAgICAgICAgIHBsdWdpbkV2ZW50U291cmNlOiBuZXcgUGx1Z2luRXZlbnRTb3VyY2VJbXBsKHRoaXMpLFxuICAgICAgICAgIHBsdWdpblNldHRpbmdzQ2xhc3M6IE9iamVjdFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gVGhlIGdhdGUuIEl0IGxvYWRzIHRoZSBmZWF0dXJlIHN1cmZhY2UgaXRzZWxmIG9uY2UgZXZlcnkgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBzYXRpc2ZpZWQgYW5kIG5vXG4gICAgICAvLyBkZWNsYXJlZCBjb25mbGljdCBob2xkcyDigJQgd2hpY2ggZm9yIGEgcGx1Z2luIGRlY2xhcmluZyBuZWl0aGVyIGlzIGltbWVkaWF0ZWx5LCBzeW5jaHJvbm91c2x5LFxuICAgICAgLy8gYmVmb3JlIHRoaXMgbGluZSByZXR1cm5zIOKAlCBhbmQgdW5sb2FkcyBpdCBhZ2FpbiBpZiBhIGRlcGVuZGVuY3kgaXMgbGF0ZXIgZGlzYWJsZWQgb3IgdW5pbnN0YWxsZWQsXG4gICAgICAvLyBvciBhIGNvbmZsaWN0aW5nIHBsdWdpbiBpcyBlbmFibGVkLiBBIHBsdWdpbiB0aGF0IGlzIGJsb2NrZWQgdGhlcmVmb3JlIHJlYWNoZXMgYGxvYWRXaXRoUHJvbWlzZXNgXG4gICAgICAvLyBiZWxvdyBoYXZpbmcgcmVnaXN0ZXJlZCBub3RoaW5nIG9mIGl0cyBvd24sIHdpdGggb25seSB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYWJvdmUgcnVubmluZyB0b1xuICAgICAgLy8gZXhwbGFpbiB3aHkgYW5kIHRvIG9mZmVyIHRoZSByZXBhaXIuXG4gICAgICAvLyBBc3NpZ25lZCBCRUZPUkUgdGhlIGFkZCwgdW5saWtlIGV2ZXJ5IHVuaXZlcnNhbCBjb21wb25lbnQgYWJvdmUsIGFuZCB0aGF0IG9yZGVyIGlzIHRoZSB3aG9sZVxuICAgICAgLy8gcG9pbnQuIEFkZGluZyB0aGlzIG9uZSBpcyB3aGF0IHJ1bnMgYG9ubG9hZEltcGxgLCBwZXIgdGhlIHBhcmFncmFwaCBhYm92ZSwgc28gdGhlIGFzc2lnbm1lbnRcbiAgICAgIC8vIHN0YXRlbWVudCBoYXMgbm90IHJldHVybmVkIHlldCB3aGlsZSB0aGUgc3ViY2xhc3MgaXMgcnVubmluZyDigJQgYW5kIGEgc2V0dGluZ3MgdGFiIGJ1aWx0IHRoZXJlXG4gICAgICAvLyByZWFkcyBgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50YCB0byByZW5kZXIgdGhlIGBXYXJuYCBiYW5uZXIuIEFzc2lnbmluZyBhZnRlciB0aGUgYWRkIHdvdWxkXG4gICAgICAvLyBtYWtlIHRoYXQgcmVhZCB0aHJvdyBgVmFsdWUgaXMgdW5kZWZpbmVkYCBvdXQgb2YgdGhlIGdldHRlciwgd2hpY2ggaXMgYW4gb3BhcXVlIHdheSB0byBzYXlcbiAgICAgIC8vIFwidG9vIGVhcmx5XCIuIE5vdGhpbmcgYWJvdXQgY2hpbGQtYWRkIG9yZGVyIG1vdmVzOiB0aGUgc2VxdWVuY2Ugb2YgYGFkZFVuaXZlcnNhbENoaWxkYCBjYWxscyBpc1xuICAgICAgLy8gdW5jaGFuZ2VkLCBhbmQgYHNldENvbXBvbmVudGAgaXMgYSBwbGFpbiBzdG9yZS5cbiAgICAgIGNvbnN0IHBsdWdpbkdhdGVDb21wb25lbnQgPSBuZXcgUGx1Z2luR2F0ZUNvbXBvbmVudCh7XG4gICAgICAgIGNvbmZsaWN0czogdGhpcy5nZXRQbHVnaW5Db25mbGljdHMoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB0aGlzLmdldFBsdWdpbkRlcGVuZGVuY2llcygpLFxuICAgICAgICBsb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRoaXMubG9hZEZlYXR1cmVTdXJmYWNlKCksXG4gICAgICAgIHBsdWdpbjogdGhpcyxcbiAgICAgICAgcGx1Z2luTm90aWNlQ29tcG9uZW50OiB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICAgICAgdW5sb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLnVubG9hZEZlYXR1cmVTdXJmYWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50ID0gcGx1Z2luR2F0ZUNvbXBvbmVudDtcbiAgICAgIHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQocGx1Z2luR2F0ZUNvbXBvbmVudCk7XG5cbiAgICAgIC8vIEV2ZXJ5IGNoaWxkIGhhcyBhbHJlYWR5IGxvYWRlZCBhcyBpdCB3YXMgYWRkZWQ7IHRoaXMgYXdhaXRzIHRoZWlyIGFjY3VtdWxhdGVkIGFzeW5jIHRhaWxzIGFuZFxuICAgICAgLy8gcmVwb3J0cyBhbnkgZmFpbHVyZSBhcyBhIHNpbmdsZSBgQWdncmVnYXRlRXJyb3JgLlxuICAgICAgYXdhaXQgdGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgcGx1Z2luICR7dGhpcy5tYW5pZmVzdC5uYW1lfSAoJHt0aGlzLm1hbmlmZXN0LmlkfSlgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICpcbiAgICogQW5ub3VuY2VzIHRoZSBkZXBhcnR1cmUgb24gYGFwcC53b3Jrc3BhY2VgIHNvIGFueXRoaW5nIGRlcGVuZGluZyBvbiB0aGlzIHBsdWdpbiBsZWFybnMgb2YgaXQgYXQgdGhlXG4gICAqIG1vbWVudCBpdCBoYXBwZW5zLCByYXRoZXIgdGhhbiBkaXNjb3ZlcmluZyBpdCBsYXRlciB0aHJvdWdoIGJlaGF2aW9yIHRoYXQgcXVpZXRseSBzdG9wcGVkLlxuICAgKlxuICAgKiBEbyBOT1Qgb3ZlcnJpZGUgdGhpcyBtZXRob2Q7IHB1dCB0ZWFyZG93biBvbiBhIGNvbXBvbmVudCBpbnN0ZWFkLCB3aGljaCB1bmxvYWRzIHdpdGggdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyb2FkY2FzdFVubG9hZGVkKCk7XG4gICAgc3VwZXIub251bmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIFRoZSByZW1vdmVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICAvLyBSb3V0ZWQgYnkgb3duZXJzaGlwIHJhdGhlciB0aGFuIGJ5IHdoaWNoIHRpZXIgYGFkZENoaWxkYCB3b3VsZCBoYXZlIGNob3NlbiwgYmVjYXVzZSB0aGUgdHdvIGRvIG5vdFxuICAgIC8vIGFsd2F5cyBhZ3JlZTogYSB1bml2ZXJzYWwgY29tcG9uZW50IGlzIHBhcmVudGVkIGRpcmVjdGx5IG9uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciwgeWV0IGEgc3ViY2xhc3NcbiAgICAvLyByZXBsYWNpbmcgb25lIGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwdWJsaWMgYHJlbW92ZUNoaWxkYCBhcyBpdCB3b3VsZCBmb3IgaXRzIG93biBjaGlsZHJlbi5cbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuaGFzQ2hpbGQoY29tcG9uZW50KSA/IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LnJlbW92ZUNoaWxkKGNvbXBvbmVudCkgOiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgdHJhbnNsYXRpb25zIG1hcCB1c2VkIHRvIGluaXRpYWxpemUgaTE4biBkdXJpbmcge0BsaW5rIG9ubG9hZH0uXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHN1cHBseSBwbHVnaW4tc3BlY2lmaWMgdHJhbnNsYXRpb25zLiBUaGUgZGVmYXVsdCByZXR1cm5zIHRoZSBidWlsdC1pblxuICAgKiBgb2JzaWRpYW4tZGV2LXV0aWxzYCB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGlvbnMgbWFwLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVRyYW5zbGF0aW9uc01hcCgpOiBUcmFuc2xhdGlvbnNNYXAge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zTWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBpY29uIHNob3duIG9uIHRoZSBwbHVnaW4ncyBwYXJlbnQgZW50cnkgaW4gYE5vdGVib29rIE5hdmlnYXRvcmAncyBjb250ZXh0IG1lbnVzLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBicmFuZCB0aGF0IGVudHJ5OyB0aGUgZGVmYXVsdCBsZWF2ZXMgaXQgd2l0aG91dCBhbiBpY29uLiBUaGUgZW50cnkgaXNcbiAgICogdGl0bGVkIHdpdGggdGhlIHBsdWdpbiBuYW1lIGFuZCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IOKAlCBzZWVcbiAgICoge0BsaW5rIE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50fS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGljb24sIG9yIGAnJ2AgZm9yIG5vIGljb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Tm90ZWJvb2tOYXZpZ2F0b3JNZW51U3VibWVudUljb24oKTogSWNvbk5hbWUge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgQVBJcyB0aGlzIHBsdWdpbiBleHBvc2VzIHRvIG90aGVyIHBsdWdpbnMuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHB1Ymxpc2ggb25lLiBUaGUgZGVmYXVsdCBwdWJsaXNoZXMgbm9uZS4gQ2FsbGVkIGFmdGVyIHtAbGluayBvbmxvYWRJbXBsfSwgc28gYVxuICAgKiBkZWNsYXJhdGlvbiBtYXkgcmVmZXJlbmNlIGFueXRoaW5nIGl0IGNyZWF0ZWQ7IHRoZSByZXR1cm5lZCBkZWNsYXJhdGlvbnMgYXJlIHB1Ymxpc2hlZCB0aHJvdWdoXG4gICAqIGBwdWJsaXNoUGx1Z2luQXBpYCBhbmQgcmV2b2tlZCB3aGVuIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgdW5sb2Fkcy5cbiAgICpcbiAgICogUmV0dXJuaW5nIGEgTElTVCByYXRoZXIgdGhhbiBhIHNpbmdsZSBBUEkgaXMgZGVsaWJlcmF0ZTogdGhlIHJlZ2lzdHJ5IHN1cHBvcnRzIHNldmVyYWwgY29udHJhY3RcbiAgICogdmVyc2lvbnMgcHVibGlzaGVkIHNpZGUgYnkgc2lkZSwgd2hpY2ggaXMgaG93IGEgcHJvdmlkZXIgc2hpcHMgYSBicmVha2luZyBgMi4wLjBgIHdpdGhvdXQgc3RyYW5kaW5nXG4gICAqIGNvbnN1bWVycyBzdGlsbCBwaW5uZWQgdG8gYF4xYC5cbiAgICpcbiAgICogRXZlcnkgZGVjbGFyYXRpb24gaGVyZSBpcyBwdWJsaXNoZWQgQkVGT1JFIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzOnBsdWdpbi1sb2FkZWRgIGJyb2FkY2FzdCwgd2hpY2ggaXNcbiAgICogd2hhdCBsZXRzIGEgbGlzdGVuZXIgY2FsbCB0aGVzZSBBUElzIHRoZSBtb21lbnQgaXQgaGVhcnMgdGhhdCBldmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIEFQSSBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGx1Z2luQXBpcygpOiBQbHVnaW5BcGlEZWNsYXJhdGlvbltdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIHBsdWdpbnMgdGhpcyBvbmUgcmVmdXNlcywgb3Igd2FybnMgYWJvdXQsIHJ1bm5pbmcgYmVzaWRlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBkZWNsYXJlIGFuIG92ZXJsYXAuIFRoZSBkZWZhdWx0IGRlY2xhcmVzIG5vbmUuXG4gICAqXG4gICAqIEEgYEJsb2NrYCBjb25mbGljdCBpcyB0aGUgbWlycm9yIGltYWdlIG9mIGEgZGVwZW5kZW5jeTogd2hpbGUgYSBjb25mbGljdGluZyBwbHVnaW4gaXMgZW5hYmxlZCBhdCBhXG4gICAqIGNvbmZsaWN0aW5nIHZlcnNpb24sIHtAbGluayBvbmxvYWRJbXBsfSBkb2VzIG5vdCBydW4gYXQgYWxsIGFuZCB0aGUgcGx1Z2luIHJlZ2lzdGVycyBub3RoaW5nLiBEZWNsYXJlXG4gICAqIGl0IHdoZW4gYm90aCBwbHVnaW5zIGFjdGluZyBvbiB0aGUgc2FtZSBvcGVyYXRpb24gZGFtYWdlcyB0aGUgdmF1bHQg4oCUIHRoZXJlIGlzIG5vIHJlbGlhYmxlIHdheSB0byB3aW5cbiAgICogdGhhdCByYWNlLCBiZWNhdXNlIHdoaWNoZXZlciBwbHVnaW4gbG9hZGVkIGZpcnN0IGtlZXBzIGEgaGFuZCBvbiB0aGUgd2hlZWwsIHNvIHJlZnVzaW5nIGRldGVybWluaXN0aWNhbGx5XG4gICAqIGJlYXRzIGNvbXBldGluZyB1bnByZWRpY3RhYmx5LiBBIGBXYXJuYCBjb25mbGljdCBkZWNsYXJlcyBhbiBvdmVybGFwIHRoYXQgaXMgbWVyZWx5IGFubm95aW5nLCBzdWNoIGFzIGFcbiAgICogZHVwbGljYXRlZCBjb21tYW5kOiBib3RoIHBsdWdpbnMga2VlcCBydW5uaW5nIGFuZCB0aGUgdXNlciBpcyB0b2xkLlxuICAgKlxuICAgKiBVbmxpa2UgYSBkZXBlbmRlbmN5LCBhIGNvbmZsaWN0aW5nIHBsdWdpbiBuZWVkIG5vdCBwdWJsaXNoIGFueXRoaW5nIOKAlCBpdCBpcyBkZXRlY3RlZCBieSByZWFkaW5nIGl0c1xuICAgKiBpbnN0YWxsZWQgdmVyc2lvbiwgd2hpY2ggaXMgdGhlIG9ubHkgdGhpbmcgYWJvdXQgYW5vdGhlciBwbHVnaW4gdGhhdCByZWFkcyB0aGUgc2FtZSByZWdhcmRsZXNzIG9mIGxvYWRcbiAgICogb3JkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBjb25mbGljdHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGx1Z2luQ29uZmxpY3RzKCk6IFBsdWdpbkNvbmZsaWN0W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgcGx1Z2lucyB0aGlzIG9uZSBjYW5ub3Qgd29yayB3aXRob3V0LlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBkZWNsYXJlIGEgbWFuZGF0b3J5IGRlcGVuZGVuY3kuIFRoZSBkZWZhdWx0IGRlY2xhcmVzIG5vbmUsIGFuZCBzdWNoIGEgcGx1Z2luXG4gICAqIGxvYWRzIGV4YWN0bHkgYXMgaXQgYWx3YXlzIGhhcy5cbiAgICpcbiAgICogQSBkZWNsYXJlZCBkZXBlbmRlbmN5IGlzIE1BTkRBVE9SWSwgdW5saWtlIHRoZSBvZmZlciBgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudGAgbWFrZXM6IHdoaWxlIG9uZSBpc1xuICAgKiBtaXNzaW5nLCBkaXNhYmxlZCwgb3IgdG9vIG9sZCwge0BsaW5rIG9ubG9hZEltcGx9IGRvZXMgbm90IHJ1biBhdCBhbGwgYW5kIHRoZSBwbHVnaW4gcmVnaXN0ZXJzIG5vdGhpbmdcbiAgICog4oCUIG5vIGNvbW1hbmRzLCBubyBoYW5kbGVycywgbm8gcGF0Y2hlcy4gSXQgc3RheXMgZW5hYmxlZCBpbiBPYnNpZGlhbidzIGxpc3QgcmF0aGVyIHRoYW4gZGlzYWJsaW5nXG4gICAqIGl0c2VsZiwgYmVjYXVzZSB0aGUgZW5hYmxlZCBzZXQgaXMgdGhlIHVzZXIncyB0byBjaGFuZ2UsIGFuZCBpdCBleHBsYWlucyBpdHNlbGYgdGhyb3VnaCBhIG5vdGljZSBhbmQgYVxuICAgKiBzZXR0aW5ncyBiYW5uZXIgdGhhdCBpbnN0YWxscyB0aGUgbWlzc2luZyBwbHVnaW4gaW4gb25lIGNsaWNrLiBUaGUgbG9hZCBjb21wbGV0ZXMgdGhlIG1vbWVudCB0aGVcbiAgICogZGVwZW5kZW5jeSBhcnJpdmVzLCB3aXRoIG5vIHJlc3RhcnQuXG4gICAqXG4gICAqIEEgZGVwZW5kZW5jeSBtdXN0IHB1Ymxpc2ggYW4gQVBJIHRocm91Z2ggYHB1Ymxpc2hQbHVnaW5BcGlgLCB3aGljaCBpcyB3aGF0IG1ha2VzIGl0cyBwcmVzZW5jZSxcbiAgICogYWJzZW5jZSwgdmVyc2lvbiBhbmQgZGVwYXJ0dXJlIGFsbCBvYnNlcnZhYmxlIHRocm91Z2ggb25lIG1lY2hhbmlzbS4gQSBwbHVnaW4gd2l0aCBub3RoaW5nIHRvIGV4cG9zZVxuICAgKiBjYW4gcHVibGlzaCBhbiBlbXB0eSBBUEkgcHVyZWx5IHNvIGl0IGNhbiBiZSBkZXBlbmRlZCB1cG9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVjbGFyZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkRlcGVuZGVuY2llcygpOiBQbHVnaW5EZXBlbmRlbmN5W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgZHVyaW5nIHtAbGluayBvbmxvYWR9IHRvIHdpcmUgcGx1Z2luLXNwZWNpZmljIGNoaWxkIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIGFkZCBjaGlsZCBjb21wb25lbnRzIHZpYSB7QGxpbmsgYWRkQ2hpbGR9LiBUaGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYXJlXG4gICAqIGF2YWlsYWJsZSBoZXJlLiBDaGlsZHJlbiBhcmUgbG9hZGVkIHNlcXVlbnRpYWxseSBpbiB0aGUgb3JkZXIgdGhleSBhcmUgYWRkZWQgKGNoaWxkcmVuLWZpcnN0KS5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzdWJjbGFzcyBsb2FkIGxvZ2ljIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZEltcGwoKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBhIHVuaXZlcnNhbCBjb21wb25lbnQsIHVubG9hZGluZyB3aGljaGV2ZXIgY29tcG9uZW50IHRoZSBrZXkgaGVsZCBiZWZvcmUuXG4gICAqXG4gICAqIEtleWVkIGJ5IG5hbWUgcmF0aGVyIHRoYW4gaGFuZGVkIHRoZSBwcmV2aW91cyB2YWx1ZSBiZWNhdXNlIGBrZXlvZiB0aGlzYCBleGNsdWRlcyBwcml2YXRlXG4gICAqIG1lbWJlcnMsIHNvIHRoZSBjb21wb25lbnRzIGxpdmUgaW4gYSBzaW5nbGUge0BsaW5rIFBsdWdpbkJhc2VDb21wb25lbnRzfSBiYWcgd2hvc2Uga2V5cyBBUkVcbiAgICogaW5kZXhhYmxlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRLZXkgLSBUaGUga2V5IG9mIHRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqL1xuICAvKipcbiAgICogQWRkcyBhIGNvbXBvbmVudCB0byB0aGUgdW5pdmVyc2FsIHRpZXIsIHdoaWNoIG91dGxpdmVzIGFueSBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBQcml2YXRlIG9uIHB1cnBvc2U6IG9ubHkgdGhpcyBjbGFzcyBkZWNpZGVzIHdoYXQgaXMgdW5pdmVyc2FsLiBBIHN1YmNsYXNzIGFkZGluZyBvbmUgb2YgaXRzIG93biBnb2VzXG4gICAqIHRocm91Z2gge0BsaW5rIGFkZENoaWxkfSBhbmQgbGFuZHMgaW4gdGhlIGdhdGVkIHRpZXIsIHdoZXJlIGl0IGJlbG9uZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgYWRkVW5pdmVyc2FsQ2hpbGQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogVENvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5hZGRDaGlsZChjb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlcyBvbiBgYXBwLndvcmtzcGFjZWAgdGhhdCB0aGlzIHBsdWdpbiBpcyBsb2FkZWQgYW5kIGl0cyBBUElzIGFyZSBjYWxsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgYnJvYWRjYXN0TG9hZGVkKCk6IHZvaWQge1xuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkID0ge1xuICAgICAgYXBpVmVyc2lvbnM6IHRoaXMuZ2V0UGx1Z2luQXBpcygpLm1hcCgoZGVjbGFyYXRpb24pID0+IGRlY2xhcmF0aW9uLmFwaVZlcnNpb24pLFxuICAgICAgZGVwZW5kZW5jeVBsdWdpbklkczogdGhpcy5nZXRQbHVnaW5EZXBlbmRlbmNpZXMoKS5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGx1Z2luSWQpLFxuICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWQsXG4gICAgICBwbHVnaW5OYW1lOiB0aGlzLm1hbmlmZXN0Lm5hbWUsXG4gICAgICBwbHVnaW5WZXJzaW9uOiB0aGlzLm1hbmlmZXN0LnZlcnNpb25cbiAgICB9O1xuXG4gICAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50KHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBuYW1lOiBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUsXG4gICAgICBwYXlsb2FkOiB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlcyBvbiBgYXBwLndvcmtzcGFjZWAgdGhhdCB0aGlzIHBsdWdpbidzIHN1cmZhY2UgaGFzIGdvbmUgYXdheS5cbiAgICpcbiAgICogU2lsZW50IHVubGVzcyBhIGxvYWRlZCBicm9hZGNhc3QgaXMgb3V0c3RhbmRpbmcsIHNvIHRoZSB0d28gZXZlbnRzIHN0YXkgcGFpcmVkOiBhIHBsdWdpbiB0aGF0IG5ldmVyXG4gICAqIGdvdCBwYXN0IGl0cyBkZXBlbmRlbmN5IGdhdGUgbmV2ZXIgYW5ub3VuY2VkIGl0c2VsZiwgYW5kIG11c3Qgbm90IGFubm91bmNlIGEgZGVwYXJ0dXJlIGVpdGhlci5cbiAgICovXG4gIHByaXZhdGUgYnJvYWRjYXN0VW5sb2FkZWQoKTogdm9pZCB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkO1xuICAgIGlmICghcGF5bG9hZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkID0gbnVsbDtcbiAgICB0cmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnQoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIG5hbWU6IFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FLFxuICAgICAgcGF5bG9hZFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbmQgbG9hZHMgdGhlIHN1YmNsYXNzJ3MgZmVhdHVyZSBzdXJmYWNlLCB0aGVuIHB1Ymxpc2hlcyBpdHMgQVBJcyBhbmQgYW5ub3VuY2VzIGl0c2VsZi5cbiAgICpcbiAgICogTk9UIGlkZW1wb3RlbnQsIGRlbGliZXJhdGVseS4gYFBsdWdpbkdhdGVDb21wb25lbnRgIG93bnMgdGhlIHVwL2Rvd24gc3RhdGUgbWFjaGluZSBhbmQgY2FsbHNcbiAgICogdGhpcyBvbmx5IG9uIGEgcmVhbCB0cmFuc2l0aW9uOyBhIHNlY29uZCBndWFyZCBoZXJlIHdvdWxkIGJlIGEgc2Vjb25kIGNvcHkgb2YgdGhhdCBzdGF0ZSwgd2hpY2ggaXMgdGhlXG4gICAqIGtpbmQgb2YgZHVwbGljYXRlIHRoYXQgZHJpZnRzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIHN1cmZhY2UgaXMgbG9hZGVkIGFuZCB0aGUgYnJvYWRjYXN0IGhhcyBiZWVuIG1hZGUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRGZWF0dXJlU3VyZmFjZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBMb2FkZWQgZXhwbGljaXRseSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciBpczogYGFkZENoaWxkYCBsb2FkcyBhIGNoaWxkIG9ubHkgb25jZVxuICAgIC8vIGl0cyBwYXJlbnQgaXMgbG9hZGVkLCBhbmQgdGhlIHN1cmZhY2UgaGFzIHRvIGJlIGxpdmUgYmVmb3JlIGBvbmxvYWRJbXBsYCBzdGFydHMgYWRkaW5nIHRvIGl0LlxuICAgIGNvbnN0IGdhdGVkV3JhcHBlckNvbXBvbmVudCA9IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50O1xuICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5hZGRDaGlsZChnYXRlZFdyYXBwZXJDb21wb25lbnQpO1xuICAgIGdhdGVkV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICBhd2FpdCB0aGlzLm9ubG9hZEltcGwoKTtcbiAgICBhd2FpdCBnYXRlZFdyYXBwZXJDb21wb25lbnQubG9hZFdpdGhQcm9taXNlcygpO1xuXG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiB0aGlzLmdldFBsdWdpbkFwaXMoKSkge1xuICAgICAgcHVibGlzaFBsdWdpbkFwaSh7XG4gICAgICAgIC4uLmRlY2xhcmF0aW9uLFxuICAgICAgICAvLyBSZXZva2VkIHdpdGggdGhlIFNVUkZBQ0UsIG5vdCB3aXRoIHRoZSBwbHVnaW46IGEgcGx1Z2luIHdob3NlIGRlcGVuZGVuY3kgZ29lcyBhd2F5IGtlZXBzIHJ1bm5pbmdcbiAgICAgICAgLy8gaXRzIHVuaXZlcnNhbCBjb21wb25lbnRzLCBhbmQgYSBjb25zdW1lciBtdXN0IG5vdCBiZSBsZWZ0IGhvbGRpbmcgYSBoYW5kbGUgaW50byB0aGUgaGFsZiBvZiBpdFxuICAgICAgICAvLyB0aGF0IHdhcyBqdXN0IHRvcm4gZG93bi5cbiAgICAgICAgY29tcG9uZW50OiBnYXRlZFdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHBsdWdpbjogdGhpc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5icm9hZGNhc3RMb2FkZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcG9uZW50PFRLZXkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5CYXNlQ29tcG9uZW50cz4oa2V5OiBUS2V5LCB2YWx1ZTogTm9uTnVsbGFibGU8UGx1Z2luQmFzZUNvbXBvbmVudHNbVEtleV0+KTogdm9pZCB7XG4gICAgY29uc3Qgb2xkQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzW2tleV07XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVDaGlsZChvbGRDb21wb25lbnQpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudHNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIHRoZSBzdWJjbGFzcydzIGZlYXR1cmUgc3VyZmFjZSBkb3duLCBsZWF2aW5nIHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBydW5uaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSB1bmxvYWRGZWF0dXJlU3VyZmFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBnYXRlZFdyYXBwZXJDb21wb25lbnQgPSB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudDtcblxuICAgIC8vIFJlcGxhY2VkIEJFRk9SRSB0aGUgb2xkIG9uZSBpcyB1bmxvYWRlZCwgc28gYW55dGhpbmcgdGhhdCByZXN1bWVzIG1pZC10ZWFyZG93biBhbmQgY2FsbHMgYGFkZENoaWxkYFxuICAgIC8vIHBhcmtzIGl0cyBjaGlsZCBvbiB0aGUgZnJlc2ggc3VyZmFjZSByYXRoZXIgdGhhbiBvbiB0aGUgb25lIGJlaW5nIHRvcm4gZG93biDigJQgd2hlcmUgYENvbXBvbmVudEV4YFxuICAgIC8vIHdvdWxkIHJlZnVzZSBpdCBvdXRyaWdodCwgc2luY2UgaXQgcmVmdXNlcyBjaGlsZHJlbiBhZGRlZCB0byBhbiBhbHJlYWR5LXVubG9hZGVkIGNvbXBvbmVudC5cbiAgICB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5yZW1vdmVDaGlsZChnYXRlZFdyYXBwZXJDb21wb25lbnQpO1xuXG4gICAgdGhpcy5icm9hZGNhc3RVbmxvYWRlZCgpO1xuICB9XG59XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2luTm90aWNlQ29tcG9uZW50ID0gbmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudCh7XG4gICAgYXBwOiBwbHVnaW4uYXBwLFxuICAgIHBsdWdpbk5hbWU6IHBsdWdpbi5tYW5pZmVzdC5uYW1lXG4gIH0pO1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EsMEJBQWlDO0FBQ2pDLG1CQUEyQjtBQUMzQixzQkFBMEI7QUFDMUIseUJBQWtDO0FBQ2xDLHNCQUF1QjtBQWN2QixrQ0FBc0M7QUFDdEMsdUNBQXdDO0FB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
|
|
688
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50LFxuICBJY29uTmFtZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luQ29uZmxpY3QsXG4gIFBsdWdpbkRlcGVuZGVuY3lcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5BcGlEZWNsYXJhdGlvbiB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgfSBmcm9tICcuL3BsdWdpbi1saWZlY3ljbGUtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi4vYWN0aXZlLWZpbGUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5HYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHsgaW5pdEkxOE4gfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmltcG9ydCB7IFJlc291cmNlTG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3Jlc291cmNlLWxvY2sudHMnO1xuaW1wb3J0IHsgcHVibGlzaFBsdWdpbkFwaSB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50XG59IGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuXG4vKipcbiAqIFRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBvd25lZCBieSB7QGxpbmsgUGx1Z2luQmFzZX0sIGtleWVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBhY2Nlc3NvciBleHBvc2luZ1xuICogZWFjaCBvbmUuIEV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbCBiZWNhdXNlIGEgY29tcG9uZW50IG9ubHkgZXhpc3RzIG9uY2Uge0BsaW5rIFBsdWdpbkJhc2Uub25sb2FkfVxuICogaGFzIGNyZWF0ZWQgaXQuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5CYXNlQ29tcG9uZW50cyB7XG4gIGFib3J0U2lnbmFsQ29tcG9uZW50PzogQWJvcnRTaWduYWxDb21wb25lbnQ7XG4gIGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50PzogQ29tbWFuZEhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbnNvbGVEZWJ1Z0NvbXBvbmVudD86IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcbiAgcGx1Z2luQ29udGV4dENvbXBvbmVudD86IFBsdWdpbkNvbnRleHRDb21wb25lbnQ7XG4gIHBsdWdpbkdhdGVDb21wb25lbnQ/OiBQbHVnaW5HYXRlQ29tcG9uZW50O1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQ/OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHBsdWdpblNldHRpbmdzQ29tcG9uZW50PzogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG4gIHJlc291cmNlTG9ja0NvbXBvbmVudD86IFJlc291cmNlTG9ja0NvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgcmVtb3ZlQ2hpbGR9IC8ge0BsaW5rIGFkZENoaWxkfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBtaXhpbkFzeW5jRXZlbnRzPFBsdWdpbkV2ZW50TWFwPigpKFBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBHZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KCk6IEFib3J0U2lnbmFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmFib3J0U2lnbmFsQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KHZhbHVlOiBBYm9ydFNpZ25hbENvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdhYm9ydFNpZ25hbENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQoKTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh2YWx1ZTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgnYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2hhcmVkIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuIFJlZ2lzdGVyIGEgcGx1Z2luJ3MgY29tbWFuZHMgb24gaXQgdmlhXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVyc30gcmF0aGVyIHRoYW4gY29uc3RydWN0aW5nIHlvdXIgb3duXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudH0g4oCUIHRoZSBhcHAtYmFja2VkIGFjdGl2ZS1maWxlIHByb3ZpZGVyLCBjb21tYW5kIHJlZ2lzdHJhciwgbWVudVxuICAgKiBldmVudCByZWdpc3RyYXIsIGFuZCBwbHVnaW4gbmFtZSBhcmUgYWxyZWFkeSB3aXJlZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KCk6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgY29tbWFuZEhhbmRsZXJDb21wb25lbnQodmFsdWU6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbW1hbmRIYW5kbGVyQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudCAocGx1Z2luIElELCBkZWJ1ZyBjb250cm9sbGVyLCBsaWJyYXJ5IHN0eWxlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCgpOiBQbHVnaW5Db250ZXh0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLnBsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luQ29udGV4dENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBnYXRlIGhvbGRpbmcgdGhlIHBsdWdpbidzIGZlYXR1cmUgc3VyZmFjZSB1cCBvciBkb3duLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgaXQgZnJvbSBhIHNldHRpbmdzIHRhYiB0byByZW5kZXIgdGhlIG92ZXJsYXAgYmFubmVyIGZvciBhXG4gICAqIHtAbGluayBjb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudCFQbHVnaW5Db25mbGljdFNldmVyaXR5Lldhcm59IGNvbmZsaWN0IOKAlCB0aGUgb25lXG4gICAqIGJhbm5lciB0aGUgbGlicmFyeSBjYW5ub3QgcGxhY2UgaXRzZWxmLCBiZWNhdXNlIGEgcnVubmluZyBwbHVnaW4gYnVpbGRzIGl0cyBvd24gc2V0dGluZ3MgdGFiLlxuICAgKlxuICAgKiBSZWFkYWJsZSB0aHJvdWdob3V0IHtAbGluayBvbmxvYWRJbXBsfSwgaW5jbHVkaW5nIGl0cyBzeW5jaHJvbm91cyBwcmVmaXgsIHdoaWNoIGlzIHdoZXJlIGEgc2V0dGluZ3NcbiAgICogdGFiIGlzIGJ1aWx0LiBUaGF0IGlzIGRlbGliZXJhdGUgcmF0aGVyIHRoYW4gaW5jaWRlbnRhbDogYWRkaW5nIHRoZSBnYXRlIGlzIHdoYXQgcnVuc1xuICAgKiB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIHtAbGluayBvbmxvYWR9IGFzc2lnbnMgdGhpcyBmaWVsZCBiZWZvcmUgYWRkaW5nIGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwbHVnaW5HYXRlQ29tcG9uZW50KCk6IFBsdWdpbkdhdGVDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luR2F0ZUNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5HYXRlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5HYXRlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpbkdhdGVDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luTm90aWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luTm90aWNlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luTm90aWNlQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQoKTogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gUGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQodmFsdWU6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpblNldHRpbmdzQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuY29tcG9uZW50cy5yZXNvdXJjZUxvY2tDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gRWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCByZXNvdXJjZUxvY2tDb21wb25lbnQodmFsdWU6IFJlc291cmNlTG9ja0NvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdyZXNvdXJjZUxvY2tDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudHM6IFBsdWdpbkJhc2VDb21wb25lbnRzID0ge307XG5cbiAgLy8gRXZlcnl0aGluZyB0aGUgU1VCQ0xBU1Mgb3duczogd2hhdCBgb25sb2FkSW1wbGAgYWRkcywgYW5kIHdoYXQgaXQgYWRkcyBsYXRlci5cbiAgLy9cbiAgLy8gQSBzZWNvbmQgd3JhcHBlciByYXRoZXIgdGhhbiBvbmUsIGJlY2F1c2UgdGhlIHR3byB0aWVycyBoYXZlIG9wcG9zaXRlIGxpZmV0aW1lcy4gVGhlIHVuaXZlcnNhbFxuICAvLyBjb21wb25lbnRzIGhhdmUgdG8gT1VUTElWRSBhIGxvc3QgZGVwZW5kZW5jeSDigJQgdGhleSBhcmUgd2hhdCBzaG93cyB0aGUgbm90aWNlIG5hbWluZyB0aGUgcGx1Z2luIHRoYXRcbiAgLy8gd2VudCBhd2F5IGFuZCByZW5kZXJzIHRoZSBidXR0b24gdGhhdCBicmluZ3MgaXQgYmFjayDigJQgd2hpbGUgdGhlIHN1YmNsYXNzJ3Mgc3VyZmFjZSBpcyBleGFjdGx5IHdoYXRcbiAgLy8gbXVzdCBzdG9wIHJ1bm5pbmcuIFVubG9hZGluZyBvbmUgd3JhcHBlciBob2xkaW5nIGJvdGggd291bGQgc2lsZW5jZSB0aGUgcGx1Z2luIGF0IHRoZSBtb21lbnQgaXQgbW9zdFxuICAvLyBuZWVkcyB0byBzcGVhay5cbiAgLy9cbiAgLy8gQWx3YXlzIHByZXNlbnQsIG5ldmVyIG51bGwsIGFuZCBSRVBMQUNFRCByYXRoZXIgdGhhbiBlbXB0aWVkIHdoZW4gdGhlIHN1cmZhY2UgaXMgdG9ybiBkb3duLiBUaGF0IGtlZXBzXG4gIC8vIGBhZGRDaGlsZGAgY2FsbGFibGUgYXQgZXZlcnkgcG9pbnQgaW4gdGhlIHBsdWdpbidzIGxpZmUsIGV4YWN0bHkgYXMgaXQgd2FzIGJlZm9yZSB0aGUgdGllcnMgZXhpc3RlZDpcbiAgLy8gQSBjaGlsZCBhZGRlZCBiZWZvcmUgdGhlIGdhdGUgb3BlbnMgaXMgcXVldWVkIGFuZCBsb2FkZWQgd2hlbiBpdCBkb2VzLCB3aGljaCBpcyB3aGF0IGBDb21wb25lbnRFeGBcbiAgLy8gYWxyZWFkeSBkb2VzIGZvciBhbnkgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gIHByaXZhdGUgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gbmV3IENvbXBvbmVudEV4KCk7XG5cbiAgLy8gVGhlIHBheWxvYWQgYnJvYWRjYXN0IHdoZW4gdGhpcyBwbHVnaW4gZmluaXNoZWQgbG9hZGluZywga2VwdCBzbyB0aGUgbWF0Y2hpbmcgdW5sb2FkZWQgYnJvYWRjYXN0XG4gIC8vIGRlc2NyaWJlcyB0aGUgc2FtZSBwbHVnaW4gd2l0aG91dCByZS1kZXJpdmluZyBpdCBmcm9tIGEgc3VyZmFjZSB0aGF0IGhhcyBzaW5jZSBiZWVuIHRvcm4gZG93bi4gTnVsbFxuICAvLyB3aGVuZXZlciBubyBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gZXZlbnRzIHBhaXJlZC5cbiAgcHJpdmF0ZSBsaWZlY3ljbGVFdmVudFBheWxvYWQ6IG51bGwgfCBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgPSBudWxsO1xuXG4gIC8vIFRoZSBsaWJyYXJ5J3Mgb3duIGNvbXBvbmVudHMsIHdoaWNoIG91dGxpdmUgYW55IGRlcGVuZGVuY3kuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGUgY2hpbGQgaXMgYWRkZWQgdG8gdGhlIGludGVybmFsIHdyYXBwZXIgaG9sZGluZyB0aGUgc3ViY2xhc3MncyBvd24gc3VyZmFjZSwgd2hpY2gge0BsaW5rIG9ubG9hZH1cbiAgICogY3JlYXRlcyBhbmQgbG9hZHMgYmVmb3JlIGNhbGxpbmcge0BsaW5rIG9ubG9hZEltcGx9LiBTbyBhIGNoaWxkIGFkZGVkIGR1cmluZyB7QGxpbmsgb25sb2FkSW1wbH0gaXNcbiAgICogbG9hZGVkIGltbWVkaWF0ZWx5LCBjaGlsZHJlbi1maXJzdCwgYW5kIGlzIHVzYWJsZSBieSB0aGUgdGltZSB0aGlzIG1ldGhvZCByZXR1cm5zLlxuICAgKlxuICAgKiBUaGF0IHdyYXBwZXIgaXMgdG9ybiBkb3duIGFuZCByZWJ1aWx0IHdoZW5ldmVyIHRoZSBnYXRlIGNsb3NlcyBhbmQgb3BlbnMgYWdhaW4g4oCUIGEgZGVwZW5kZW5jeSBkZWNsYXJlZFxuICAgKiBieSB7QGxpbmsgZ2V0UGx1Z2luRGVwZW5kZW5jaWVzfSBnb2luZyBhd2F5IGFuZCBjb21pbmcgYmFjaywgb3IgYSBjb25mbGljdCBkZWNsYXJlZCBieVxuICAgKiB7QGxpbmsgZ2V0UGx1Z2luQ29uZmxpY3RzfSBhcHBlYXJpbmcgYW5kIGJlaW5nIHJlc29sdmVkIOKAlCBzbyBhIGNoaWxkIGFkZGVkIGhlcmUgbGl2ZXMgZXhhY3RseSBhcyBsb25nXG4gICAqIGFzIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgZG9lcy4gQWRkaW5nIG9uZSB3aGlsZSB0aGUgc3VyZmFjZSBpcyBkb3duIGlzIHN0aWxsIGxlZ2l0aW1hdGUg4oCUIGl0IGlzXG4gICAqIHF1ZXVlZCBhbmQgbG9hZGVkIHdoZW4gdGhlIHN1cmZhY2UgbmV4dCBjb21lcyB1cCwgdGhlIHdheSB7QGxpbmsgQ29tcG9uZW50RXguYWRkQ2hpbGR9IGFscmVhZHkgcXVldWVzXG4gICAqIGEgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIFNVQkNMQVNTJ3MgZG9vciwgYW5kIHRoZSBvbmx5IG9uZSBpdCBoYXM6IHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyB7QGxpbmsgb25sb2FkfSByZWdpc3RlcnNcbiAgICogdGFrZSBhIHByaXZhdGUgcm91dGUgb250byBhIGRpZmZlcmVudCB3cmFwcGVyLiBTbyBhbnl0aGluZyBvYnNlcnZpbmcgdGhpcyBtZXRob2Qg4oCUIGEgdGVzdCBjb3VudGluZyBpdHNcbiAgICogY2FsbHMsIGEgcGF0Y2ggd3JhcHBpbmcgaXQg4oCUIHNlZXMgZXhhY3RseSB0aGUgY2hpbGRyZW4gdGhlIHN1YmNsYXNzIGFkZGVkLCBhbmQgbm9uZSBvZiB0aGUgbGlicmFyeSdzLlxuICAgKiBCZWZvcmUgdGhlIHR3byB0aWVycyBleGlzdGVkIG9uZSBkb29yIGNhcnJpZWQgYm90aCwgYW5kIGEgY29uc3VtZXIgY291bnRpbmcgdGhlIHRvdGFsIGlzIHRoZSBvbmUgdGhpbmdcbiAgICogdGhlIHNwbGl0IGNvdWxkIG5vdCBrZWVwIHdvcmtpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogT3JjaGVzdHJhdGVzIGxvYWRpbmc6IHJlZ2lzdGVycyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMsIGxldHMgdGhlIHN1YmNsYXNzIHdpcmUgaXRzIG93blxuICAgKiBjb21wb25lbnRzIHZpYSB7QGxpbmsgb25sb2FkSW1wbH0sIHRoZW4gYXdhaXRzIHRoZSBhc3luYyB0YWlsIG9mIGV2ZXJ5IGxvYWQuXG4gICAqIEVhY2ggY29tcG9uZW50IGxvYWRzIGFzIGl0IGlzIGFkZGVkLCBjaGlsZHJlbi1maXJzdC5cbiAgICpcbiAgICogRG8gTk9UIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBPdmVycmlkZSB7QGxpbmsgb25sb2FkSW1wbH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSB3cmFwcGVyIGlzIGF0dGFjaGVkIGFuZCBsb2FkZWQgYmVmb3JlIGFueXRoaW5nIGlzIHdpcmVkIHVwLCBzbyBldmVyeSBgYWRkQ2hpbGRgIGJlbG93XG4gICAgICAvLyBsb2FkcyBpdHMgY2hpbGQgc3RyYWlnaHQgYXdheSByYXRoZXIgdGhhbiBxdWV1aW5nIGl0LlxuICAgICAgLy8gVGhhdCBpcyB3aGF0IGxldHMgYSBjb21tYW5kIGhhbmRsZXIgcmVnaXN0ZXIgaXRzIG1lbnUgZXZlbnRzIGZyb20gYG9uUmVnaXN0ZXJlZGAsIHdoaWNoXG4gICAgICAvLyBgcmVnaXN0ZXJDb21tYW5kSGFuZGxlcnNgIGF3YWl0cyBhbmQgd2hpY2ggYSByZWdpc3RyYXIgcmVmdXNlcyB3aGlsZSB1bmxvYWRlZC5cbiAgICAgIC8vIEF0dGFjaGluZyBpdCB1cCBmcm9udCBhbHNvIHJlZ2lzdGVycyB0aGUgd3JhcHBlciBmb3IgdGVhcmRvd24gYmVmb3JlIGFueXRoaW5nIGNhbiB0aHJvdy5cbiAgICAgIC8vIFRoZSBsb2FkIGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGxlZnQgdG8gYGFkZENoaWxkYCwgd2hpY2ggbG9hZHMgdGhlIGNoaWxkIG9ubHkgd2hlbiB0aGVcbiAgICAgIC8vIHBsdWdpbiBpdHNlbGYgaXMgbG9hZGVkIOKAlCB0cnVlIHdoZW4gT2JzaWRpYW4gY2FsbHMgYGxvYWQoKWAsIGJ1dCBub3Qgd2hlbiBhIGNhbGxlciBpbnZva2VzXG4gICAgICAvLyBgb25sb2FkKClgIGRpcmVjdGx5LlxuICAgICAgc3VwZXIuYWRkQ2hpbGQodGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICAgIGF3YWl0IGluaXRJMThOKHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuICAgICAgdGhpcy5wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpbkNvbnRleHRDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQoXG4gICAgICAgIG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50KSk7XG4gICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5yZXNvdXJjZUxvY2tDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBSZXNvdXJjZUxvY2tDb21wb25lbnQodGhpcy5hcHAsIHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIC8vIGBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gICAgICAvLyBgZmlsZXMtbWVudWAgZXZlbnRzLCBzbyBldmVyeSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgd291bGQgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmdcbiAgICAgIC8vIHRocm91Z2ggaXQuIFdpcmVkIGhlcmUgcmF0aGVyIHRoYW4gcGVyLXBsdWdpbjogdGhlIGJyaWRnZSBzdGF5cyBkb3JtYW50IHdoZW4gTm90ZWJvb2tcbiAgICAgIC8vIE5hdmlnYXRvciBpcyBub3QgaW5zdGFsbGVkLCBhbmQgYSBwbHVnaW4gd2l0aCBubyBmaWxlL2ZvbGRlciBoYW5kbGVycyBjb250cmlidXRlcyBub3RoaW5nLlxuICAgICAgY29uc3Qgbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKFxuICAgICAgICBuZXcgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgICAgIHN1Ym1lbnVJY29uOiB0aGlzLmdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5hcHApLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZW51RXZlbnRSZWdpc3RyYXJzOiBbbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRdLFxuICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQgaXMgdW5pdmVyc2FsOyB0aGUgY29tbWFuZHMgcmVnaXN0ZXJlZCBUSFJPVUdIIGl0IGFyZSBub3QuIEEgc3ViY2xhc3MgcmVnaXN0ZXJzXG4gICAgICAgICAgLy8gaXRzIG93biBmcm9tIGBvbmxvYWRJbXBsYCwgY2xvc2luZyBvdmVyIGNvbGxhYm9yYXRvcnMgdGhhdCBiZWxvbmcgdG8gdGhlIGZlYXR1cmUgc3VyZmFjZSDigJQgc29cbiAgICAgICAgICAvLyB0aG9zZSBjb21tYW5kcyBtdXN0IGdvIGRvd24gd2l0aCB0aGUgc3VyZmFjZSB3aGVuIHRoZSBnYXRlIGNsb3Nlcywgb3IgdGhleSBzaXQgaW4gdGhlIHBhbGV0dGVcbiAgICAgICAgICAvLyBjYWxsaW5nIGludG8gdG9ybi1kb3duIG9iamVjdHMsIGFuZCBhcmUgcmVnaXN0ZXJlZCBhIHNlY29uZCB0aW1lIHdoZW4gdGhlIGdhdGUgcmVvcGVucyBhbmRcbiAgICAgICAgICAvLyBgb25sb2FkSW1wbGAgcnVucyBhZ2Fpbi5cbiAgICAgICAgICAvLyBSZXNvbHZlZCBvbiBldmVyeSBjYWxsIHJhdGhlciB0aGFuIGNhcHR1cmVkIGhlcmUsIGJlY2F1c2UgYHVubG9hZEZlYXR1cmVTdXJmYWNlYCBSRVBMQUNFUyB0aGVcbiAgICAgICAgICAvLyB3cmFwcGVyIGluc3RlYWQgb2YgZW1wdHlpbmcgaXQ6IGVhY2ggY3ljbGUncyBjb21tYW5kcyBiZWxvbmcgdG8gdGhhdCBjeWNsZSdzIHdyYXBwZXIuXG4gICAgICAgICAgY29tbWFuZExpZmV0aW1lT3duZXJQcm92aWRlcjogKCk6IENvbXBvbmVudEV4ID0+IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbW1hbmRSZWdpc3RyYXI6IG5ldyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyKHRoaXMpLFxuICAgICAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50KHRoaXMuYXBwKSksXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgLy8gQWx3YXlzIGF2YWlsYWJsZTsgdGhlIGNvbW1hbmQncyBvd24gYGNhbkV4ZWN1dGVgIGhpZGVzIGl0IHVubGVzcyB0aGUgYWN0aXZlIG5vdGUgaXMgbG9ja2VkLlxuICAgICAgLy8gVGhlIG9uZSBjb21tYW5kIHRoYXQgbmFtZXMgaXRzIG93bmVyIGV4cGxpY2l0bHksIG9wdGluZyBPVVQgb2YgdGhlIHN1cmZhY2Utc2NvcGVkIGRlZmF1bHQgYWJvdmU6XG4gICAgICAvLyBJdCBpcyB0aGUgcmVzY3VlIGZvciBhIG5vdGUgbGVmdCBsb2NrZWQsIGl0IGNsb3NlcyBvdmVyIG5vdGhpbmcgYnV0IHRoZSB1bml2ZXJzYWwgcmVzb3VyY2UtbG9ja1xuICAgICAgLy8gY29tcG9uZW50LCBhbmQgYSBibG9ja2VkIHBsdWdpbiBpcyBleGFjdGx5IHdoZW4gYSB1c2VyIG1heSBuZWVkIGl0LlxuICAgICAgYXdhaXQgdGhpcy5jb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVycygoKSA9PiBbXG4gICAgICAgIG5ldyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcmVzb3VyY2VMb2NrQ29tcG9uZW50OiB0aGlzLnJlc291cmNlTG9ja0NvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgXSwgeyBsaWZldGltZU93bmVyOiB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0pO1xuXG4gICAgICB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KHtcbiAgICAgICAgICBkYXRhSGFuZGxlcjogbmV3IFBsdWdpbkRhdGFIYW5kbGVyKHRoaXMpLFxuICAgICAgICAgIHBsdWdpbkV2ZW50U291cmNlOiBuZXcgUGx1Z2luRXZlbnRTb3VyY2VJbXBsKHRoaXMpLFxuICAgICAgICAgIHBsdWdpblNldHRpbmdzQ2xhc3M6IE9iamVjdFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gVGhlIGdhdGUuIEl0IGxvYWRzIHRoZSBmZWF0dXJlIHN1cmZhY2UgaXRzZWxmIG9uY2UgZXZlcnkgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBzYXRpc2ZpZWQgYW5kIG5vXG4gICAgICAvLyBkZWNsYXJlZCBjb25mbGljdCBob2xkcyDigJQgd2hpY2ggZm9yIGEgcGx1Z2luIGRlY2xhcmluZyBuZWl0aGVyIGlzIGltbWVkaWF0ZWx5LCBzeW5jaHJvbm91c2x5LFxuICAgICAgLy8gYmVmb3JlIHRoaXMgbGluZSByZXR1cm5zIOKAlCBhbmQgdW5sb2FkcyBpdCBhZ2FpbiBpZiBhIGRlcGVuZGVuY3kgaXMgbGF0ZXIgZGlzYWJsZWQgb3IgdW5pbnN0YWxsZWQsXG4gICAgICAvLyBvciBhIGNvbmZsaWN0aW5nIHBsdWdpbiBpcyBlbmFibGVkLiBBIHBsdWdpbiB0aGF0IGlzIGJsb2NrZWQgdGhlcmVmb3JlIHJlYWNoZXMgYGxvYWRXaXRoUHJvbWlzZXNgXG4gICAgICAvLyBiZWxvdyBoYXZpbmcgcmVnaXN0ZXJlZCBub3RoaW5nIG9mIGl0cyBvd24sIHdpdGggb25seSB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYWJvdmUgcnVubmluZyB0b1xuICAgICAgLy8gZXhwbGFpbiB3aHkgYW5kIHRvIG9mZmVyIHRoZSByZXBhaXIuXG4gICAgICAvLyBBc3NpZ25lZCBCRUZPUkUgdGhlIGFkZCwgdW5saWtlIGV2ZXJ5IHVuaXZlcnNhbCBjb21wb25lbnQgYWJvdmUsIGFuZCB0aGF0IG9yZGVyIGlzIHRoZSB3aG9sZVxuICAgICAgLy8gcG9pbnQuIEFkZGluZyB0aGlzIG9uZSBpcyB3aGF0IHJ1bnMgYG9ubG9hZEltcGxgLCBwZXIgdGhlIHBhcmFncmFwaCBhYm92ZSwgc28gdGhlIGFzc2lnbm1lbnRcbiAgICAgIC8vIHN0YXRlbWVudCBoYXMgbm90IHJldHVybmVkIHlldCB3aGlsZSB0aGUgc3ViY2xhc3MgaXMgcnVubmluZyDigJQgYW5kIGEgc2V0dGluZ3MgdGFiIGJ1aWx0IHRoZXJlXG4gICAgICAvLyByZWFkcyBgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50YCB0byByZW5kZXIgdGhlIGBXYXJuYCBiYW5uZXIuIEFzc2lnbmluZyBhZnRlciB0aGUgYWRkIHdvdWxkXG4gICAgICAvLyBtYWtlIHRoYXQgcmVhZCB0aHJvdyBgVmFsdWUgaXMgdW5kZWZpbmVkYCBvdXQgb2YgdGhlIGdldHRlciwgd2hpY2ggaXMgYW4gb3BhcXVlIHdheSB0byBzYXlcbiAgICAgIC8vIFwidG9vIGVhcmx5XCIuIE5vdGhpbmcgYWJvdXQgY2hpbGQtYWRkIG9yZGVyIG1vdmVzOiB0aGUgc2VxdWVuY2Ugb2YgYGFkZFVuaXZlcnNhbENoaWxkYCBjYWxscyBpc1xuICAgICAgLy8gdW5jaGFuZ2VkLCBhbmQgYHNldENvbXBvbmVudGAgaXMgYSBwbGFpbiBzdG9yZS5cbiAgICAgIGNvbnN0IHBsdWdpbkdhdGVDb21wb25lbnQgPSBuZXcgUGx1Z2luR2F0ZUNvbXBvbmVudCh7XG4gICAgICAgIGNvbmZsaWN0czogdGhpcy5nZXRQbHVnaW5Db25mbGljdHMoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB0aGlzLmdldFBsdWdpbkRlcGVuZGVuY2llcygpLFxuICAgICAgICBsb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRoaXMubG9hZEZlYXR1cmVTdXJmYWNlKCksXG4gICAgICAgIHBsdWdpbjogdGhpcyxcbiAgICAgICAgcGx1Z2luTm90aWNlQ29tcG9uZW50OiB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICAgICAgdW5sb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLnVubG9hZEZlYXR1cmVTdXJmYWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50ID0gcGx1Z2luR2F0ZUNvbXBvbmVudDtcbiAgICAgIHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQocGx1Z2luR2F0ZUNvbXBvbmVudCk7XG5cbiAgICAgIC8vIEV2ZXJ5IGNoaWxkIGhhcyBhbHJlYWR5IGxvYWRlZCBhcyBpdCB3YXMgYWRkZWQ7IHRoaXMgYXdhaXRzIHRoZWlyIGFjY3VtdWxhdGVkIGFzeW5jIHRhaWxzIGFuZFxuICAgICAgLy8gcmVwb3J0cyBhbnkgZmFpbHVyZSBhcyBhIHNpbmdsZSBgQWdncmVnYXRlRXJyb3JgLlxuICAgICAgYXdhaXQgdGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgcGx1Z2luICR7dGhpcy5tYW5pZmVzdC5uYW1lfSAoJHt0aGlzLm1hbmlmZXN0LmlkfSlgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICpcbiAgICogQW5ub3VuY2VzIHRoZSBkZXBhcnR1cmUgb24gYGFwcC53b3Jrc3BhY2VgIHNvIGFueXRoaW5nIGRlcGVuZGluZyBvbiB0aGlzIHBsdWdpbiBsZWFybnMgb2YgaXQgYXQgdGhlXG4gICAqIG1vbWVudCBpdCBoYXBwZW5zLCByYXRoZXIgdGhhbiBkaXNjb3ZlcmluZyBpdCBsYXRlciB0aHJvdWdoIGJlaGF2aW9yIHRoYXQgcXVpZXRseSBzdG9wcGVkLlxuICAgKlxuICAgKiBEbyBOT1Qgb3ZlcnJpZGUgdGhpcyBtZXRob2Q7IHB1dCB0ZWFyZG93biBvbiBhIGNvbXBvbmVudCBpbnN0ZWFkLCB3aGljaCB1bmxvYWRzIHdpdGggdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyb2FkY2FzdFVubG9hZGVkKCk7XG4gICAgc3VwZXIub251bmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIFRoZSByZW1vdmVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICAvLyBSb3V0ZWQgYnkgb3duZXJzaGlwIHJhdGhlciB0aGFuIGJ5IHdoaWNoIHRpZXIgYGFkZENoaWxkYCB3b3VsZCBoYXZlIGNob3NlbiwgYmVjYXVzZSB0aGUgdHdvIGRvIG5vdFxuICAgIC8vIGFsd2F5cyBhZ3JlZTogYSB1bml2ZXJzYWwgY29tcG9uZW50IGlzIHBhcmVudGVkIGRpcmVjdGx5IG9uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciwgeWV0IGEgc3ViY2xhc3NcbiAgICAvLyByZXBsYWNpbmcgb25lIGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwdWJsaWMgYHJlbW92ZUNoaWxkYCBhcyBpdCB3b3VsZCBmb3IgaXRzIG93biBjaGlsZHJlbi5cbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuaGFzQ2hpbGQoY29tcG9uZW50KSA/IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LnJlbW92ZUNoaWxkKGNvbXBvbmVudCkgOiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgdHJhbnNsYXRpb25zIG1hcCB1c2VkIHRvIGluaXRpYWxpemUgaTE4biBkdXJpbmcge0BsaW5rIG9ubG9hZH0uXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHN1cHBseSBwbHVnaW4tc3BlY2lmaWMgdHJhbnNsYXRpb25zLiBUaGUgZGVmYXVsdCByZXR1cm5zIHRoZSBidWlsdC1pblxuICAgKiBgb2JzaWRpYW4tZGV2LXV0aWxzYCB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGlvbnMgbWFwLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVRyYW5zbGF0aW9uc01hcCgpOiBUcmFuc2xhdGlvbnNNYXAge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zTWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBpY29uIHNob3duIG9uIHRoZSBwbHVnaW4ncyBwYXJlbnQgZW50cnkgaW4gYE5vdGVib29rIE5hdmlnYXRvcmAncyBjb250ZXh0IG1lbnVzLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBicmFuZCB0aGF0IGVudHJ5OyB0aGUgZGVmYXVsdCBsZWF2ZXMgaXQgd2l0aG91dCBhbiBpY29uLiBUaGUgZW50cnkgaXNcbiAgICogdGl0bGVkIHdpdGggdGhlIHBsdWdpbiBuYW1lIGFuZCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IOKAlCBzZWVcbiAgICoge0BsaW5rIE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50fS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGljb24sIG9yIGAnJ2AgZm9yIG5vIGljb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Tm90ZWJvb2tOYXZpZ2F0b3JNZW51U3VibWVudUljb24oKTogSWNvbk5hbWUge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgQVBJcyB0aGlzIHBsdWdpbiBleHBvc2VzIHRvIG90aGVyIHBsdWdpbnMuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHB1Ymxpc2ggb25lLiBUaGUgZGVmYXVsdCBwdWJsaXNoZXMgbm9uZS4gQ2FsbGVkIGFmdGVyIHtAbGluayBvbmxvYWRJbXBsfSwgc28gYVxuICAgKiBkZWNsYXJhdGlvbiBtYXkgcmVmZXJlbmNlIGFueXRoaW5nIGl0IGNyZWF0ZWQ7IHRoZSByZXR1cm5lZCBkZWNsYXJhdGlvbnMgYXJlIHB1Ymxpc2hlZCB0aHJvdWdoXG4gICAqIGBwdWJsaXNoUGx1Z2luQXBpYCBhbmQgcmV2b2tlZCB3aGVuIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgdW5sb2Fkcy5cbiAgICpcbiAgICogUmV0dXJuaW5nIGEgTElTVCByYXRoZXIgdGhhbiBhIHNpbmdsZSBBUEkgaXMgZGVsaWJlcmF0ZTogdGhlIHJlZ2lzdHJ5IHN1cHBvcnRzIHNldmVyYWwgY29udHJhY3RcbiAgICogdmVyc2lvbnMgcHVibGlzaGVkIHNpZGUgYnkgc2lkZSwgd2hpY2ggaXMgaG93IGEgcHJvdmlkZXIgc2hpcHMgYSBicmVha2luZyBgMi4wLjBgIHdpdGhvdXQgc3RyYW5kaW5nXG4gICAqIGNvbnN1bWVycyBzdGlsbCBwaW5uZWQgdG8gYF4xYC5cbiAgICpcbiAgICogRXZlcnkgZGVjbGFyYXRpb24gaGVyZSBpcyBwdWJsaXNoZWQgQkVGT1JFIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzOnBsdWdpbi1sb2FkZWRgIGJyb2FkY2FzdCwgd2hpY2ggaXNcbiAgICogd2hhdCBsZXRzIGEgbGlzdGVuZXIgY2FsbCB0aGVzZSBBUElzIHRoZSBtb21lbnQgaXQgaGVhcnMgdGhhdCBldmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIEFQSSBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGx1Z2luQXBpcygpOiBQbHVnaW5BcGlEZWNsYXJhdGlvbltdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIHBsdWdpbnMgdGhpcyBvbmUgcmVmdXNlcywgb3Igd2FybnMgYWJvdXQsIHJ1bm5pbmcgYmVzaWRlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBkZWNsYXJlIGFuIG92ZXJsYXAuIFRoZSBkZWZhdWx0IGRlY2xhcmVzIG5vbmUuXG4gICAqXG4gICAqIEEgYEJsb2NrYCBjb25mbGljdCBpcyB0aGUgbWlycm9yIGltYWdlIG9mIGEgZGVwZW5kZW5jeTogd2hpbGUgYSBjb25mbGljdGluZyBwbHVnaW4gaXMgZW5hYmxlZCBhdCBhXG4gICAqIGNvbmZsaWN0aW5nIHZlcnNpb24sIHtAbGluayBvbmxvYWRJbXBsfSBkb2VzIG5vdCBydW4gYXQgYWxsIGFuZCB0aGUgcGx1Z2luIHJlZ2lzdGVycyBub3RoaW5nLiBEZWNsYXJlXG4gICAqIGl0IHdoZW4gYm90aCBwbHVnaW5zIGFjdGluZyBvbiB0aGUgc2FtZSBvcGVyYXRpb24gZGFtYWdlcyB0aGUgdmF1bHQg4oCUIHRoZXJlIGlzIG5vIHJlbGlhYmxlIHdheSB0byB3aW5cbiAgICogdGhhdCByYWNlLCBiZWNhdXNlIHdoaWNoZXZlciBwbHVnaW4gbG9hZGVkIGZpcnN0IGtlZXBzIGEgaGFuZCBvbiB0aGUgd2hlZWwsIHNvIHJlZnVzaW5nIGRldGVybWluaXN0aWNhbGx5XG4gICAqIGJlYXRzIGNvbXBldGluZyB1bnByZWRpY3RhYmx5LiBBIGBXYXJuYCBjb25mbGljdCBkZWNsYXJlcyBhbiBvdmVybGFwIHRoYXQgaXMgbWVyZWx5IGFubm95aW5nLCBzdWNoIGFzIGFcbiAgICogZHVwbGljYXRlZCBjb21tYW5kOiBib3RoIHBsdWdpbnMga2VlcCBydW5uaW5nIGFuZCB0aGUgdXNlciBpcyB0b2xkLlxuICAgKlxuICAgKiBVbmxpa2UgYSBkZXBlbmRlbmN5LCBhIGNvbmZsaWN0aW5nIHBsdWdpbiBuZWVkIG5vdCBwdWJsaXNoIGFueXRoaW5nIOKAlCBpdCBpcyBkZXRlY3RlZCBieSByZWFkaW5nIGl0c1xuICAgKiBpbnN0YWxsZWQgdmVyc2lvbiwgd2hpY2ggaXMgdGhlIG9ubHkgdGhpbmcgYWJvdXQgYW5vdGhlciBwbHVnaW4gdGhhdCByZWFkcyB0aGUgc2FtZSByZWdhcmRsZXNzIG9mIGxvYWRcbiAgICogb3JkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBjb25mbGljdHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGx1Z2luQ29uZmxpY3RzKCk6IFBsdWdpbkNvbmZsaWN0W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgcGx1Z2lucyB0aGlzIG9uZSBjYW5ub3Qgd29yayB3aXRob3V0LlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBkZWNsYXJlIGEgbWFuZGF0b3J5IGRlcGVuZGVuY3kuIFRoZSBkZWZhdWx0IGRlY2xhcmVzIG5vbmUsIGFuZCBzdWNoIGEgcGx1Z2luXG4gICAqIGxvYWRzIGV4YWN0bHkgYXMgaXQgYWx3YXlzIGhhcy5cbiAgICpcbiAgICogQSBkZWNsYXJlZCBkZXBlbmRlbmN5IGlzIE1BTkRBVE9SWSwgdW5saWtlIHRoZSBvZmZlciBgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudGAgbWFrZXM6IHdoaWxlIG9uZSBpc1xuICAgKiBtaXNzaW5nLCBkaXNhYmxlZCwgb3IgdG9vIG9sZCwge0BsaW5rIG9ubG9hZEltcGx9IGRvZXMgbm90IHJ1biBhdCBhbGwgYW5kIHRoZSBwbHVnaW4gcmVnaXN0ZXJzIG5vdGhpbmdcbiAgICog4oCUIG5vIGNvbW1hbmRzLCBubyBoYW5kbGVycywgbm8gcGF0Y2hlcy4gSXQgc3RheXMgZW5hYmxlZCBpbiBPYnNpZGlhbidzIGxpc3QgcmF0aGVyIHRoYW4gZGlzYWJsaW5nXG4gICAqIGl0c2VsZiwgYmVjYXVzZSB0aGUgZW5hYmxlZCBzZXQgaXMgdGhlIHVzZXIncyB0byBjaGFuZ2UsIGFuZCBpdCBleHBsYWlucyBpdHNlbGYgdGhyb3VnaCBhIG5vdGljZSBhbmQgYVxuICAgKiBzZXR0aW5ncyBiYW5uZXIgdGhhdCBpbnN0YWxscyB0aGUgbWlzc2luZyBwbHVnaW4gaW4gb25lIGNsaWNrLiBUaGUgbG9hZCBjb21wbGV0ZXMgdGhlIG1vbWVudCB0aGVcbiAgICogZGVwZW5kZW5jeSBhcnJpdmVzLCB3aXRoIG5vIHJlc3RhcnQuXG4gICAqXG4gICAqIEEgZGVwZW5kZW5jeSBtdXN0IHB1Ymxpc2ggYW4gQVBJIHRocm91Z2ggYHB1Ymxpc2hQbHVnaW5BcGlgLCB3aGljaCBpcyB3aGF0IG1ha2VzIGl0cyBwcmVzZW5jZSxcbiAgICogYWJzZW5jZSwgdmVyc2lvbiBhbmQgZGVwYXJ0dXJlIGFsbCBvYnNlcnZhYmxlIHRocm91Z2ggb25lIG1lY2hhbmlzbS4gQSBwbHVnaW4gd2l0aCBub3RoaW5nIHRvIGV4cG9zZVxuICAgKiBjYW4gcHVibGlzaCBhbiBlbXB0eSBBUEkgcHVyZWx5IHNvIGl0IGNhbiBiZSBkZXBlbmRlZCB1cG9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVjbGFyZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkRlcGVuZGVuY2llcygpOiBQbHVnaW5EZXBlbmRlbmN5W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgZHVyaW5nIHtAbGluayBvbmxvYWR9IHRvIHdpcmUgcGx1Z2luLXNwZWNpZmljIGNoaWxkIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIGFkZCBjaGlsZCBjb21wb25lbnRzIHZpYSB7QGxpbmsgYWRkQ2hpbGR9LiBUaGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYXJlXG4gICAqIGF2YWlsYWJsZSBoZXJlLiBDaGlsZHJlbiBhcmUgbG9hZGVkIHNlcXVlbnRpYWxseSBpbiB0aGUgb3JkZXIgdGhleSBhcmUgYWRkZWQgKGNoaWxkcmVuLWZpcnN0KS5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzdWJjbGFzcyBsb2FkIGxvZ2ljIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZEltcGwoKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBhIHVuaXZlcnNhbCBjb21wb25lbnQsIHVubG9hZGluZyB3aGljaGV2ZXIgY29tcG9uZW50IHRoZSBrZXkgaGVsZCBiZWZvcmUuXG4gICAqXG4gICAqIEtleWVkIGJ5IG5hbWUgcmF0aGVyIHRoYW4gaGFuZGVkIHRoZSBwcmV2aW91cyB2YWx1ZSBiZWNhdXNlIGBrZXlvZiB0aGlzYCBleGNsdWRlcyBwcml2YXRlXG4gICAqIG1lbWJlcnMsIHNvIHRoZSBjb21wb25lbnRzIGxpdmUgaW4gYSBzaW5nbGUge0BsaW5rIFBsdWdpbkJhc2VDb21wb25lbnRzfSBiYWcgd2hvc2Uga2V5cyBBUkVcbiAgICogaW5kZXhhYmxlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRLZXkgLSBUaGUga2V5IG9mIHRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjb21wb25lbnQgdG8gc3RvcmUuXG4gICAqL1xuICAvKipcbiAgICogQWRkcyBhIGNvbXBvbmVudCB0byB0aGUgdW5pdmVyc2FsIHRpZXIsIHdoaWNoIG91dGxpdmVzIGFueSBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBQcml2YXRlIG9uIHB1cnBvc2U6IG9ubHkgdGhpcyBjbGFzcyBkZWNpZGVzIHdoYXQgaXMgdW5pdmVyc2FsLiBBIHN1YmNsYXNzIGFkZGluZyBvbmUgb2YgaXRzIG93biBnb2VzXG4gICAqIHRocm91Z2gge0BsaW5rIGFkZENoaWxkfSBhbmQgbGFuZHMgaW4gdGhlIGdhdGVkIHRpZXIsIHdoZXJlIGl0IGJlbG9uZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgYWRkVW5pdmVyc2FsQ2hpbGQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogVENvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5hZGRDaGlsZChjb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlcyBvbiBgYXBwLndvcmtzcGFjZWAgdGhhdCB0aGlzIHBsdWdpbiBpcyBsb2FkZWQgYW5kIGl0cyBBUElzIGFyZSBjYWxsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgYnJvYWRjYXN0TG9hZGVkKCk6IHZvaWQge1xuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkID0ge1xuICAgICAgYXBpVmVyc2lvbnM6IHRoaXMuZ2V0UGx1Z2luQXBpcygpLm1hcCgoZGVjbGFyYXRpb24pID0+IGRlY2xhcmF0aW9uLmFwaVZlcnNpb24pLFxuICAgICAgZGVwZW5kZW5jeVBsdWdpbklkczogdGhpcy5nZXRQbHVnaW5EZXBlbmRlbmNpZXMoKS5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGx1Z2luSWQpLFxuICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWQsXG4gICAgICBwbHVnaW5OYW1lOiB0aGlzLm1hbmlmZXN0Lm5hbWUsXG4gICAgICBwbHVnaW5WZXJzaW9uOiB0aGlzLm1hbmlmZXN0LnZlcnNpb25cbiAgICB9O1xuXG4gICAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50KHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBuYW1lOiBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUsXG4gICAgICBwYXlsb2FkOiB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlcyBvbiBgYXBwLndvcmtzcGFjZWAgdGhhdCB0aGlzIHBsdWdpbidzIHN1cmZhY2UgaGFzIGdvbmUgYXdheS5cbiAgICpcbiAgICogU2lsZW50IHVubGVzcyBhIGxvYWRlZCBicm9hZGNhc3QgaXMgb3V0c3RhbmRpbmcsIHNvIHRoZSB0d28gZXZlbnRzIHN0YXkgcGFpcmVkOiBhIHBsdWdpbiB0aGF0IG5ldmVyXG4gICAqIGdvdCBwYXN0IGl0cyBkZXBlbmRlbmN5IGdhdGUgbmV2ZXIgYW5ub3VuY2VkIGl0c2VsZiwgYW5kIG11c3Qgbm90IGFubm91bmNlIGEgZGVwYXJ0dXJlIGVpdGhlci5cbiAgICovXG4gIHByaXZhdGUgYnJvYWRjYXN0VW5sb2FkZWQoKTogdm9pZCB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkO1xuICAgIGlmICghcGF5bG9hZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnRQYXlsb2FkID0gbnVsbDtcbiAgICB0cmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnQoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIG5hbWU6IFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FLFxuICAgICAgcGF5bG9hZFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbmQgbG9hZHMgdGhlIHN1YmNsYXNzJ3MgZmVhdHVyZSBzdXJmYWNlLCB0aGVuIHB1Ymxpc2hlcyBpdHMgQVBJcyBhbmQgYW5ub3VuY2VzIGl0c2VsZi5cbiAgICpcbiAgICogTk9UIGlkZW1wb3RlbnQsIGRlbGliZXJhdGVseS4gYFBsdWdpbkdhdGVDb21wb25lbnRgIG93bnMgdGhlIHVwL2Rvd24gc3RhdGUgbWFjaGluZSBhbmQgY2FsbHNcbiAgICogdGhpcyBvbmx5IG9uIGEgcmVhbCB0cmFuc2l0aW9uOyBhIHNlY29uZCBndWFyZCBoZXJlIHdvdWxkIGJlIGEgc2Vjb25kIGNvcHkgb2YgdGhhdCBzdGF0ZSwgd2hpY2ggaXMgdGhlXG4gICAqIGtpbmQgb2YgZHVwbGljYXRlIHRoYXQgZHJpZnRzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIHN1cmZhY2UgaXMgbG9hZGVkIGFuZCB0aGUgYnJvYWRjYXN0IGhhcyBiZWVuIG1hZGUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRGZWF0dXJlU3VyZmFjZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBMb2FkZWQgZXhwbGljaXRseSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciBpczogYGFkZENoaWxkYCBsb2FkcyBhIGNoaWxkIG9ubHkgb25jZVxuICAgIC8vIGl0cyBwYXJlbnQgaXMgbG9hZGVkLCBhbmQgdGhlIHN1cmZhY2UgaGFzIHRvIGJlIGxpdmUgYmVmb3JlIGBvbmxvYWRJbXBsYCBzdGFydHMgYWRkaW5nIHRvIGl0LlxuICAgIGNvbnN0IGdhdGVkV3JhcHBlckNvbXBvbmVudCA9IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50O1xuICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5hZGRDaGlsZChnYXRlZFdyYXBwZXJDb21wb25lbnQpO1xuICAgIGdhdGVkV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICBhd2FpdCB0aGlzLm9ubG9hZEltcGwoKTtcbiAgICBhd2FpdCBnYXRlZFdyYXBwZXJDb21wb25lbnQubG9hZFdpdGhQcm9taXNlcygpO1xuXG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiB0aGlzLmdldFBsdWdpbkFwaXMoKSkge1xuICAgICAgcHVibGlzaFBsdWdpbkFwaSh7XG4gICAgICAgIC4uLmRlY2xhcmF0aW9uLFxuICAgICAgICAvLyBSZXZva2VkIHdpdGggdGhlIFNVUkZBQ0UsIG5vdCB3aXRoIHRoZSBwbHVnaW46IGEgcGx1Z2luIHdob3NlIGRlcGVuZGVuY3kgZ29lcyBhd2F5IGtlZXBzIHJ1bm5pbmdcbiAgICAgICAgLy8gaXRzIHVuaXZlcnNhbCBjb21wb25lbnRzLCBhbmQgYSBjb25zdW1lciBtdXN0IG5vdCBiZSBsZWZ0IGhvbGRpbmcgYSBoYW5kbGUgaW50byB0aGUgaGFsZiBvZiBpdFxuICAgICAgICAvLyB0aGF0IHdhcyBqdXN0IHRvcm4gZG93bi5cbiAgICAgICAgY29tcG9uZW50OiBnYXRlZFdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHBsdWdpbjogdGhpc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5icm9hZGNhc3RMb2FkZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcG9uZW50PFRLZXkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5CYXNlQ29tcG9uZW50cz4oa2V5OiBUS2V5LCB2YWx1ZTogTm9uTnVsbGFibGU8UGx1Z2luQmFzZUNvbXBvbmVudHNbVEtleV0+KTogdm9pZCB7XG4gICAgY29uc3Qgb2xkQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzW2tleV07XG4gICAgaWYgKG9sZENvbXBvbmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVDaGlsZChvbGRDb21wb25lbnQpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudHNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIHRoZSBzdWJjbGFzcydzIGZlYXR1cmUgc3VyZmFjZSBkb3duLCBsZWF2aW5nIHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBydW5uaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSB1bmxvYWRGZWF0dXJlU3VyZmFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBnYXRlZFdyYXBwZXJDb21wb25lbnQgPSB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudDtcblxuICAgIC8vIFJlcGxhY2VkIEJFRk9SRSB0aGUgb2xkIG9uZSBpcyB1bmxvYWRlZCwgc28gYW55dGhpbmcgdGhhdCByZXN1bWVzIG1pZC10ZWFyZG93biBhbmQgY2FsbHMgYGFkZENoaWxkYFxuICAgIC8vIHBhcmtzIGl0cyBjaGlsZCBvbiB0aGUgZnJlc2ggc3VyZmFjZSByYXRoZXIgdGhhbiBvbiB0aGUgb25lIGJlaW5nIHRvcm4gZG93biDigJQgd2hlcmUgYENvbXBvbmVudEV4YFxuICAgIC8vIHdvdWxkIHJlZnVzZSBpdCBvdXRyaWdodCwgc2luY2UgaXQgcmVmdXNlcyBjaGlsZHJlbiBhZGRlZCB0byBhbiBhbHJlYWR5LXVubG9hZGVkIGNvbXBvbmVudC5cbiAgICB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5yZW1vdmVDaGlsZChnYXRlZFdyYXBwZXJDb21wb25lbnQpO1xuXG4gICAgdGhpcy5icm9hZGNhc3RVbmxvYWRlZCgpO1xuICB9XG59XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2luTm90aWNlQ29tcG9uZW50ID0gbmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudCh7XG4gICAgYXBwOiBwbHVnaW4uYXBwLFxuICAgIHBsdWdpbk5hbWU6IHBsdWdpbi5tYW5pZmVzdC5uYW1lXG4gIH0pO1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLDBCQUFpQztBQUNqQyxtQkFBMkI7QUFDM0Isc0JBQTBCO0FBQzFCLHlCQUFrQztBQUNsQyxzQkFBdUI7QUFjdkIsa0NBQXNDO0FBQ3RDLHVDQUF3QztB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
|
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -138,4 +139,4 @@ function isObject(value) {
|
|
|
138
139
|
0 && (module.exports = {
|
|
139
140
|
getSettingsMigrationApiContract
|
|
140
141
|
});
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vc2V0dGluZ3MtbWlncmF0aW9uLWFwaS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGdlbmVyaWMgaGFsZiBvZiBhIHNldHRpbmdzIEhBTkRPVkVSIGNvbnRyYWN0OiBvbmUgcGx1Z2luIG9mZmVycyBhbm90aGVyIHRoZSBzZXR0aW5ncyBpdCB1c2VkIHRvIG93bixcbiAqIGFuZCB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGVtIG5vdyBkZWNpZGVzIHdoYXQgdG8gZG8gd2l0aCB0aGUgb2ZmZXIuXG4gKlxuICogVGhlIHNoYXBlIGJlbG93IGlzIGRlbGliZXJhdGVseSB0aGUgKmVudmVsb3BlKiBhbmQgbm90aGluZyBlbHNlLiBBIGhhbmRvdmVyIGhhcyB0aHJlZSBwYXJ0cywgYW5kIG9ubHkgb25lXG4gKiBvZiB0aGVtIGlzIGdlbmVyaWM6XG4gKlxuICogLSBUaGUgKiplbnZlbG9wZSoqIOKAlCBhIGBtaWdyYXRlU2V0dGluZ3NgIGNhbGwsIHdobyBpcyBwcm9wb3NpbmcsIGFuZCB3aGV0aGVyIHRoZSB1c2VyIGFwcGxpZWQgaXQuIElkZW50aWNhbFxuICogICBmb3IgZXZlcnkgcGFpciBvZiBwbHVnaW5zLCBzbyBpdCBsaXZlcyBoZXJlLlxuICogLSBUaGUgKipwYXlsb2FkKiog4oCUIHdoaWNoIHNldHRpbmdzIGFyZSBiZWluZyBwcm9wb3NlZC4gRW50aXJlbHkgdGhlIHBhaXIncyBvd24gYnVzaW5lc3MsIHNvIGl0IHN0YXlzIGEgdHlwZVxuICogICBwYXJhbWV0ZXIgYW5kIGlzIG5ldmVyIG5hbWVkIGhlcmUuXG4gKiAtIFRoZSAqKnByb3ZpZGVyJ3MgaWRlbnRpdHkqKiDigJQgaXRzIHBsdWdpbiBpZCBhbmQgZGlzcGxheSBuYW1lLiBBbHNvIHRoZSBwYWlyJ3Mgb3duIGJ1c2luZXNzLCBhbmQgbm90XG4gKiAgIHNvbWV0aGluZyB0aGlzIGxpYnJhcnkgaGFzIGFueSBzdGFuZGluZyB0byBvd24uXG4gKlxuICogV2h5IGl0IGlzIGRlY2xhcmVkIHJhdGhlciB0aGFuIGltcG9ydGVkLiBBIHByb3ZpZGVyIGlzIHR5cGljYWxseSBhbiBPYnNpZGlhbiAqcGx1Z2luKiByZXBvLCBub3QgYW4gbnBtXG4gKiBwYWNrYWdlLCBzbyBhIGNvbnN1bWVyIGhhcyBub3RoaW5nIHRvIGRlcGVuZCBvbiBhbmQgaGFuZC13cml0ZXMgaXRzIG93biBjb3B5IG9mIHRoZSBjb250cmFjdC4gRml2ZSBjb3BpZXNcbiAqIG9mIG9uZSBjb250cmFjdCB3aXRoIG5vIGNvbXBpbGVyIGxpbmsgYmV0d2VlbiB0aGVtIG1lYW5zIGRyaWZ0IGlzIFNJTEVOVCDigJQgZXZlcnkgY29weSBzdGlsbCBjb21waWxlcyBhbmRcbiAqIHRoZSBoYW5kb3ZlciBmYWlscyBhdCBydW50aW1lIGluc3RlYWQuIERlY2xhcmluZyB0aGUgZW52ZWxvcGUgaGVyZSBnaXZlcyBib3RoIGVuZHMgb25lIGRlY2xhcmF0aW9uIHRvXG4gKiBjb21waWxlIGFnYWluc3Q7IGB3YXRjaFBsdWdpbkFwaWAgc3RpbGwgbmVnb3RpYXRlcyB0aGUgdmVyc2lvbiBhdCBydW50aW1lLCBiZWNhdXNlIHRoZSB0d28gZW5kcyBzaGlwXG4gKiBpbmRlcGVuZGVudGx5IGFuZCBhbHdheXMgd2lsbC5cbiAqXG4gKiBUaGUgcHJvdmlkZXIgcHVibGlzaGVzIGl0OlxuICpcbiAqIGBgYHRzXG4gKiBwdWJsaXNoUGx1Z2luQXBpPFNldHRpbmdzTWlncmF0aW9uQXBpPE15TWlncmF0YWJsZVNldHRpbmdzPj4oe1xuICogICBhcGk6IHRoaXMuc2V0dGluZ3NNaWdyYXRpb25BcGksXG4gKiAgIGFwaVZlcnNpb246ICcxLjAuMCcsXG4gKiAgIGNvbnRyYWN0OiBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0PE15TWlncmF0YWJsZVNldHRpbmdzPigpLFxuICogICBwbHVnaW46IHRoaXNcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhlIGNvbnN1bWVyIHJlYWNoZXMgaXQgdGhyb3VnaCBgU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnRgLFxuICogd2hpY2ggb3ducyB0aGUgd2hvbGUgb2ZmZXItYW5kLXJldGlyZSBkYW5jZSwgYW5kIGNoZWNrcyB0aGUgcHJvdmlkZXIgYWdhaW5zdCB0aGUgc2FtZSBjb250cmFjdCBieSBkZWZhdWx0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBpQ29udHJhY3QgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0JztcblxuaW1wb3J0IHtcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVUeXBlR3VhcmRTY2hlbWFcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKlxuICogQHR5cGVQYXJhbSBUTWlncmF0YWJsZVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRoZSBwcm9wb3NpbmcgcGx1Z2luIG1heSBoYW5kIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUGFyYW1zPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgdGhlIHByb3Bvc2luZyBwbHVnaW4gb2ZmZXJzLlxuICAgKlxuICAgKiBDb252ZW50aW9uYWxseSBldmVyeSBtZW1iZXIgaXMgb3B0aW9uYWwsIHNvIGEgcGx1Z2luIHByb3Bvc2VzIG9ubHkgd2hhdCBpdCBhY3R1YWxseSBoZWxkIGFuZCBhIHZhbHVlIHRoZVxuICAgKiBwcm92aWRlciBhbHJlYWR5IG93bnMgaXMgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgYSBkZWZhdWx0IG5vYm9keSBjaG9zZS4gVGhhdCBjb252ZW50aW9uIGJlbG9uZ3MgdG8gdGhlIHBhaXIsXG4gICAqIHRob3VnaCDigJQgdGhpcyB0eXBlIGltcG9zZXMgb25seSB0aGUgZW52ZWxvcGUuXG4gICAqL1xuICByZWFkb25seSBwcm9wb3NlZFNldHRpbmdzOiBUTWlncmF0YWJsZVNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIG1ha2luZyB0aGUgcHJvcG9zYWwsIHNvIHRoZSBwcm92aWRlcidzIGRpYWxvZyBjYW4gc2F5IHdob3NlIHNldHRpbmdzXG4gICAqIHRoZXNlIGFyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIG91dGNvbWUgb2Yge0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUmVzdWx0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgYXBwcm92ZWQgdGhlIG1pZ3JhdGlvbi5cbiAgICpcbiAgICogYGZhbHNlYCBtZWFucyB0aGV5IGNhbmNlbGxlZCBhbmQgbm90aGluZyB3YXMgd3JpdHRlbiwgc28gdGhlIHByb3Bvc2luZyBwbHVnaW4gbXVzdCBOT1QgcmVjb3JkIHRoZVxuICAgKiBtaWdyYXRpb24gYXMgZG9uZSDigJQgYSBjYW5jZWwgaXMgbm90IGFuIGFuc3dlciwgYW5kIHRoZSBvZmZlciBoYXMgdG8gY29tZSBiYWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBcHBsaWVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBBUEkgYSBwbHVnaW4gcHVibGlzaGVzIHdoZW4gaXQgaXMgd2lsbGluZyB0byByZWNlaXZlIHNldHRpbmdzIGFub3RoZXIgcGx1Z2luIHVzZWQgdG8gb3duLlxuICpcbiAqIEB0eXBlUGFyYW0gVE1pZ3JhdGFibGVTZXR0aW5ncyAtIFRoZSBzZXR0aW5ncyB0aGlzIHByb3ZpZGVyIGFjY2VwdHMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBwcm92aWRlciBvd25zIHRoZSBzZXR0aW5ncywgc28gaXQgb3ducyB0aGUgZGlhbG9nOiBhIHByb3Bvc2luZyBwbHVnaW4gbmV2ZXIgd3JpdGVzIGludG8gYW5vdGhlclxuICogcGx1Z2luJ3MgYGRhdGEuanNvbmAuIEl0IHByb3Bvc2VzLCBhbmQgdGhlIHVzZXIgYXBwcm92ZXMsIGVkaXRzIG9yIGRlY2xpbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIE9mZmVycyB0aGUgdXNlciBhIHNldCBvZiBzZXR0aW5ncyB2YWx1ZXMgYW5vdGhlciBwbHVnaW4gcHJvcG9zZXMsIGFuZCBhcHBsaWVzIHdoYXQgdGhleSBhcHByb3ZlLlxuICAgKlxuICAgKiBSZXNvbHZlcyBvbmx5IG9uY2UgdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBjYWxsZXIgbGVhcm5zIHdoZXRoZXIgdGhlIG1pZ3JhdGlvbiBhY3R1YWxseSBoYXBwZW5lZCBhbmRcbiAgICogY2FuIHJldGlyZSDigJQgb3Igd2l0aGhvbGQg4oCUIGl0cyBvd24gcGVuZGluZyB2YWx1ZXMgb24gdGhhdCBhbnN3ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcHJvcG9zYWwuXG4gICAqIEByZXR1cm5zIFdoYXQgdGhlIHVzZXIgYXBwcm92ZWQuXG4gICAqL1xuICBtaWdyYXRlU2V0dGluZ3M6IChwYXJhbXM6IE1pZ3JhdGVTZXR0aW5nc1BhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzPikgPT4gUHJvbWlzZTxNaWdyYXRlU2V0dGluZ3NSZXN1bHQ+O1xufVxuXG4vKipcbiAqIFRoZSBjb250cmFjdCBvZiB7QGxpbmsgU2V0dGluZ3NNaWdyYXRpb25BcGl9LCB3aGljaCBib3RoIGVuZHMgb2YgYSBoYW5kb3ZlciBjb21waWxlIGFnYWluc3Q6IHRoZSBwcm92aWRlclxuICogcHVibGlzaGVzIGl0LCBhbmQgYFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50YCBjaGVja3MgdGhlXG4gKiBwcm92aWRlciBhZ2FpbnN0IGl0IHVubGVzcyBnaXZlbiBhbm90aGVyLlxuICpcbiAqIFRoZSBwcm9wb3NlZCBzZXR0aW5ncyBhcmUgY2hlY2tlZCB0byBiZSBhbiBvYmplY3QgYW5kIG5vIGZ1cnRoZXIsIGJlY2F1c2UgdGhlaXIgc2hhcGUgaXMgdGhlIHBhaXIncyBvd25cbiAqIGJ1c2luZXNzIChzZWUgdGhlIGZpbGUgaGVhZGVyKS5cbiAqXG4gKiBAdHlwZVBhcmFtIFRNaWdyYXRhYmxlU2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MgYmVpbmcgaGFuZGVkIG92ZXIuXG4gKiBAcmV0dXJucyBUaGUgY29udHJhY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0PFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+KCk6IEFwaUNvbnRyYWN0PFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3M+PiB7XG4gIHJldHVybiB7XG4gICAgbWlncmF0ZVNldHRpbmdzOiB7XG4gICAgICBpbnB1dDogY3JlYXRlQXJndW1lbnRzU2NoZW1hPFtwYXJhbXM6IE1pZ3JhdGVTZXR0aW5nc1BhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzPl0+
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vc2V0dGluZ3MtbWlncmF0aW9uLWFwaS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGdlbmVyaWMgaGFsZiBvZiBhIHNldHRpbmdzIEhBTkRPVkVSIGNvbnRyYWN0OiBvbmUgcGx1Z2luIG9mZmVycyBhbm90aGVyIHRoZSBzZXR0aW5ncyBpdCB1c2VkIHRvIG93bixcbiAqIGFuZCB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGVtIG5vdyBkZWNpZGVzIHdoYXQgdG8gZG8gd2l0aCB0aGUgb2ZmZXIuXG4gKlxuICogVGhlIHNoYXBlIGJlbG93IGlzIGRlbGliZXJhdGVseSB0aGUgKmVudmVsb3BlKiBhbmQgbm90aGluZyBlbHNlLiBBIGhhbmRvdmVyIGhhcyB0aHJlZSBwYXJ0cywgYW5kIG9ubHkgb25lXG4gKiBvZiB0aGVtIGlzIGdlbmVyaWM6XG4gKlxuICogLSBUaGUgKiplbnZlbG9wZSoqIOKAlCBhIGBtaWdyYXRlU2V0dGluZ3NgIGNhbGwsIHdobyBpcyBwcm9wb3NpbmcsIGFuZCB3aGV0aGVyIHRoZSB1c2VyIGFwcGxpZWQgaXQuIElkZW50aWNhbFxuICogICBmb3IgZXZlcnkgcGFpciBvZiBwbHVnaW5zLCBzbyBpdCBsaXZlcyBoZXJlLlxuICogLSBUaGUgKipwYXlsb2FkKiog4oCUIHdoaWNoIHNldHRpbmdzIGFyZSBiZWluZyBwcm9wb3NlZC4gRW50aXJlbHkgdGhlIHBhaXIncyBvd24gYnVzaW5lc3MsIHNvIGl0IHN0YXlzIGEgdHlwZVxuICogICBwYXJhbWV0ZXIgYW5kIGlzIG5ldmVyIG5hbWVkIGhlcmUuXG4gKiAtIFRoZSAqKnByb3ZpZGVyJ3MgaWRlbnRpdHkqKiDigJQgaXRzIHBsdWdpbiBpZCBhbmQgZGlzcGxheSBuYW1lLiBBbHNvIHRoZSBwYWlyJ3Mgb3duIGJ1c2luZXNzLCBhbmQgbm90XG4gKiAgIHNvbWV0aGluZyB0aGlzIGxpYnJhcnkgaGFzIGFueSBzdGFuZGluZyB0byBvd24uXG4gKlxuICogV2h5IGl0IGlzIGRlY2xhcmVkIHJhdGhlciB0aGFuIGltcG9ydGVkLiBBIHByb3ZpZGVyIGlzIHR5cGljYWxseSBhbiBPYnNpZGlhbiAqcGx1Z2luKiByZXBvLCBub3QgYW4gbnBtXG4gKiBwYWNrYWdlLCBzbyBhIGNvbnN1bWVyIGhhcyBub3RoaW5nIHRvIGRlcGVuZCBvbiBhbmQgaGFuZC13cml0ZXMgaXRzIG93biBjb3B5IG9mIHRoZSBjb250cmFjdC4gRml2ZSBjb3BpZXNcbiAqIG9mIG9uZSBjb250cmFjdCB3aXRoIG5vIGNvbXBpbGVyIGxpbmsgYmV0d2VlbiB0aGVtIG1lYW5zIGRyaWZ0IGlzIFNJTEVOVCDigJQgZXZlcnkgY29weSBzdGlsbCBjb21waWxlcyBhbmRcbiAqIHRoZSBoYW5kb3ZlciBmYWlscyBhdCBydW50aW1lIGluc3RlYWQuIERlY2xhcmluZyB0aGUgZW52ZWxvcGUgaGVyZSBnaXZlcyBib3RoIGVuZHMgb25lIGRlY2xhcmF0aW9uIHRvXG4gKiBjb21waWxlIGFnYWluc3Q7IGB3YXRjaFBsdWdpbkFwaWAgc3RpbGwgbmVnb3RpYXRlcyB0aGUgdmVyc2lvbiBhdCBydW50aW1lLCBiZWNhdXNlIHRoZSB0d28gZW5kcyBzaGlwXG4gKiBpbmRlcGVuZGVudGx5IGFuZCBhbHdheXMgd2lsbC5cbiAqXG4gKiBUaGUgcHJvdmlkZXIgcHVibGlzaGVzIGl0OlxuICpcbiAqIGBgYHRzXG4gKiBwdWJsaXNoUGx1Z2luQXBpPFNldHRpbmdzTWlncmF0aW9uQXBpPE15TWlncmF0YWJsZVNldHRpbmdzPj4oe1xuICogICBhcGk6IHRoaXMuc2V0dGluZ3NNaWdyYXRpb25BcGksXG4gKiAgIGFwaVZlcnNpb246ICcxLjAuMCcsXG4gKiAgIGNvbnRyYWN0OiBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0PE15TWlncmF0YWJsZVNldHRpbmdzPigpLFxuICogICBwbHVnaW46IHRoaXNcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhlIGNvbnN1bWVyIHJlYWNoZXMgaXQgdGhyb3VnaCBgU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnRgLFxuICogd2hpY2ggb3ducyB0aGUgd2hvbGUgb2ZmZXItYW5kLXJldGlyZSBkYW5jZSwgYW5kIGNoZWNrcyB0aGUgcHJvdmlkZXIgYWdhaW5zdCB0aGUgc2FtZSBjb250cmFjdCBieSBkZWZhdWx0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBpQ29udHJhY3QgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXBpLWNvbnRyYWN0JztcblxuaW1wb3J0IHtcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVUeXBlR3VhcmRTY2hlbWFcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKlxuICogQHR5cGVQYXJhbSBUTWlncmF0YWJsZVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRoZSBwcm9wb3NpbmcgcGx1Z2luIG1heSBoYW5kIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUGFyYW1zPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgdGhlIHByb3Bvc2luZyBwbHVnaW4gb2ZmZXJzLlxuICAgKlxuICAgKiBDb252ZW50aW9uYWxseSBldmVyeSBtZW1iZXIgaXMgb3B0aW9uYWwsIHNvIGEgcGx1Z2luIHByb3Bvc2VzIG9ubHkgd2hhdCBpdCBhY3R1YWxseSBoZWxkIGFuZCBhIHZhbHVlIHRoZVxuICAgKiBwcm92aWRlciBhbHJlYWR5IG93bnMgaXMgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgYSBkZWZhdWx0IG5vYm9keSBjaG9zZS4gVGhhdCBjb252ZW50aW9uIGJlbG9uZ3MgdG8gdGhlIHBhaXIsXG4gICAqIHRob3VnaCDigJQgdGhpcyB0eXBlIGltcG9zZXMgb25seSB0aGUgZW52ZWxvcGUuXG4gICAqL1xuICByZWFkb25seSBwcm9wb3NlZFNldHRpbmdzOiBUTWlncmF0YWJsZVNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIG1ha2luZyB0aGUgcHJvcG9zYWwsIHNvIHRoZSBwcm92aWRlcidzIGRpYWxvZyBjYW4gc2F5IHdob3NlIHNldHRpbmdzXG4gICAqIHRoZXNlIGFyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIG91dGNvbWUgb2Yge0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUmVzdWx0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgYXBwcm92ZWQgdGhlIG1pZ3JhdGlvbi5cbiAgICpcbiAgICogYGZhbHNlYCBtZWFucyB0aGV5IGNhbmNlbGxlZCBhbmQgbm90aGluZyB3YXMgd3JpdHRlbiwgc28gdGhlIHByb3Bvc2luZyBwbHVnaW4gbXVzdCBOT1QgcmVjb3JkIHRoZVxuICAgKiBtaWdyYXRpb24gYXMgZG9uZSDigJQgYSBjYW5jZWwgaXMgbm90IGFuIGFuc3dlciwgYW5kIHRoZSBvZmZlciBoYXMgdG8gY29tZSBiYWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBcHBsaWVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBBUEkgYSBwbHVnaW4gcHVibGlzaGVzIHdoZW4gaXQgaXMgd2lsbGluZyB0byByZWNlaXZlIHNldHRpbmdzIGFub3RoZXIgcGx1Z2luIHVzZWQgdG8gb3duLlxuICpcbiAqIEB0eXBlUGFyYW0gVE1pZ3JhdGFibGVTZXR0aW5ncyAtIFRoZSBzZXR0aW5ncyB0aGlzIHByb3ZpZGVyIGFjY2VwdHMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBwcm92aWRlciBvd25zIHRoZSBzZXR0aW5ncywgc28gaXQgb3ducyB0aGUgZGlhbG9nOiBhIHByb3Bvc2luZyBwbHVnaW4gbmV2ZXIgd3JpdGVzIGludG8gYW5vdGhlclxuICogcGx1Z2luJ3MgYGRhdGEuanNvbmAuIEl0IHByb3Bvc2VzLCBhbmQgdGhlIHVzZXIgYXBwcm92ZXMsIGVkaXRzIG9yIGRlY2xpbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIE9mZmVycyB0aGUgdXNlciBhIHNldCBvZiBzZXR0aW5ncyB2YWx1ZXMgYW5vdGhlciBwbHVnaW4gcHJvcG9zZXMsIGFuZCBhcHBsaWVzIHdoYXQgdGhleSBhcHByb3ZlLlxuICAgKlxuICAgKiBSZXNvbHZlcyBvbmx5IG9uY2UgdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBjYWxsZXIgbGVhcm5zIHdoZXRoZXIgdGhlIG1pZ3JhdGlvbiBhY3R1YWxseSBoYXBwZW5lZCBhbmRcbiAgICogY2FuIHJldGlyZSDigJQgb3Igd2l0aGhvbGQg4oCUIGl0cyBvd24gcGVuZGluZyB2YWx1ZXMgb24gdGhhdCBhbnN3ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcHJvcG9zYWwuXG4gICAqIEByZXR1cm5zIFdoYXQgdGhlIHVzZXIgYXBwcm92ZWQuXG4gICAqL1xuICBtaWdyYXRlU2V0dGluZ3M6IChwYXJhbXM6IE1pZ3JhdGVTZXR0aW5nc1BhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzPikgPT4gUHJvbWlzZTxNaWdyYXRlU2V0dGluZ3NSZXN1bHQ+O1xufVxuXG4vKipcbiAqIFRoZSBjb250cmFjdCBvZiB7QGxpbmsgU2V0dGluZ3NNaWdyYXRpb25BcGl9LCB3aGljaCBib3RoIGVuZHMgb2YgYSBoYW5kb3ZlciBjb21waWxlIGFnYWluc3Q6IHRoZSBwcm92aWRlclxuICogcHVibGlzaGVzIGl0LCBhbmQgYFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50YCBjaGVja3MgdGhlXG4gKiBwcm92aWRlciBhZ2FpbnN0IGl0IHVubGVzcyBnaXZlbiBhbm90aGVyLlxuICpcbiAqIFRoZSBwcm9wb3NlZCBzZXR0aW5ncyBhcmUgY2hlY2tlZCB0byBiZSBhbiBvYmplY3QgYW5kIG5vIGZ1cnRoZXIsIGJlY2F1c2UgdGhlaXIgc2hhcGUgaXMgdGhlIHBhaXIncyBvd25cbiAqIGJ1c2luZXNzIChzZWUgdGhlIGZpbGUgaGVhZGVyKS5cbiAqXG4gKiBAdHlwZVBhcmFtIFRNaWdyYXRhYmxlU2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MgYmVpbmcgaGFuZGVkIG92ZXIuXG4gKiBAcmV0dXJucyBUaGUgY29udHJhY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nc01pZ3JhdGlvbkFwaUNvbnRyYWN0PFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+KCk6IEFwaUNvbnRyYWN0PFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3M+PiB7XG4gIHJldHVybiB7XG4gICAgbWlncmF0ZVNldHRpbmdzOiB7XG4gICAgICBpbnB1dDogY3JlYXRlQXJndW1lbnRzU2NoZW1hPFtwYXJhbXM6IE1pZ3JhdGVTZXR0aW5nc1BhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzPl0+KFt7XG4gICAgICAgIGV4cGVjdGVkOiAnYW4gb2JqZWN0IHdpdGggYW4gb2JqZWN0IHByb3Bvc2VkU2V0dGluZ3MgYW5kIGEgc3RyaW5nIHNvdXJjZVBsdWdpbklkJyxcbiAgICAgICAgdHlwZUd1YXJkOiAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBNaWdyYXRlU2V0dGluZ3NQYXJhbXM8VE1pZ3JhdGFibGVTZXR0aW5ncz4gPT4gaXNPYmplY3QodmFsdWUpICYmIGlzT2JqZWN0KFJlZmxlY3QuZ2V0KHZhbHVlLCAncHJvcG9zZWRTZXR0aW5ncycpKSAmJiB0eXBlb2YgUmVmbGVjdC5nZXQodmFsdWUsICdzb3VyY2VQbHVnaW5JZCcpID09PSAnc3RyaW5nJ1xuICAgICAgfV0pLFxuICAgICAgb3V0cHV0OiBjcmVhdGVUeXBlR3VhcmRTY2hlbWEoe1xuICAgICAgICBleHBlY3RlZDogJ2FuIG9iamVjdCB3aXRoIGEgYm9vbGVhbiBpc0FwcGxpZWQnLFxuICAgICAgICB0eXBlR3VhcmQ6ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIE1pZ3JhdGVTZXR0aW5nc1Jlc3VsdCA9PiBpc09iamVjdCh2YWx1ZSkgJiYgdHlwZW9mIFJlZmxlY3QuZ2V0KHZhbHVlLCAnaXNBcHBsaWVkJykgPT09ICdib29sZWFuJ1xuICAgICAgfSlcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgb2JqZWN0IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0EsMEJBR087QUFzRUEsU0FBUyxrQ0FBOEg7QUFDNUksU0FBTztBQUFBLElBQ0wsaUJBQWlCO0FBQUEsTUFDZixXQUFPLDJDQUE0RSxDQUFDO0FBQUEsUUFDbEYsVUFBVTtBQUFBLFFBQ1YsV0FBVyxDQUFDLFVBQXdFLFNBQVMsS0FBSyxLQUFLLFNBQVMsUUFBUSxJQUFJLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxPQUFPLFFBQVEsSUFBSSxPQUFPLGdCQUFnQixNQUFNO0FBQUEsTUFDN00sQ0FBQyxDQUFDO0FBQUEsTUFDRixZQUFRLDJDQUFzQjtBQUFBLFFBQzVCLFVBQVU7QUFBQSxRQUNWLFdBQVcsQ0FBQyxVQUFtRCxTQUFTLEtBQUssS0FBSyxPQUFPLFFBQVEsSUFBSSxPQUFPLFdBQVcsTUFBTTtBQUFBLE1BQy9ILENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBRUEsU0FBUyxTQUFTLE9BQWlDO0FBQ2pELFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVTtBQUNoRDsiLCJuYW1lcyI6W119
|
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -141,4 +142,4 @@ class PluginCliHandlerRegistrar {
|
|
|
141
142
|
0 && (module.exports = {
|
|
142
143
|
PluginCliHandlerRegistrar
|
|
143
144
|
});
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDTEkgaGFuZGxlciByZWdpc3RyYXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ2xpRGF0YSxcbiAgQ2xpRmxhZ3Ncbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgbm9ybWFsaXplUHJvbWlzYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUmVnaXN0ZXJzIENMSSBoYW5kbGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlIYW5kbGVyUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIENMSSBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBDTEkgaGFuZGxlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICByZWdpc3RlckNsaUhhbmRsZXI6IChwYXJhbXM6IENsaUhhbmRsZXJSZWdpc3RyYXJSZWdpc3RlckNsaUhhbmRsZXJQYXJhbXMpID0+
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDTEkgaGFuZGxlciByZWdpc3RyYXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ2xpRGF0YSxcbiAgQ2xpRmxhZ3Ncbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgbm9ybWFsaXplUHJvbWlzYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUmVnaXN0ZXJzIENMSSBoYW5kbGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlIYW5kbGVyUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIENMSSBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBDTEkgaGFuZGxlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICByZWdpc3RlckNsaUhhbmRsZXI6IChwYXJhbXM6IENsaUhhbmRsZXJSZWdpc3RyYXJSZWdpc3RlckNsaUhhbmRsZXJQYXJhbXMpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgYSBDTEkgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJDbGlIYW5kbGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIHJlZ2lzdGVyIHRoZSBoYW5kbGVyIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZsYWdzIGZvciB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGZsYWdzOiBDbGlGbGFncyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gY2xpRGF0YSAtIFRoZSBkYXRhIHBhc3NlZCB0byB0aGUgaGFuZGxlci5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgaGFuZGxlci5cbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI6IChjbGlEYXRhOiBDbGlEYXRhKSA9PiBQcm9taXNhYmxlPHN0cmluZz47XG59XG5cbnR5cGUgUGx1Z2luQ2xpSGFuZGxlclJlZ2lzdHJhclJlZ2lzdGVyQ2xpSGFuZGxlclBhcmFtcyA9IENsaUhhbmRsZXJSZWdpc3RyYXJSZWdpc3RlckNsaUhhbmRsZXJQYXJhbXM7XG5cbi8qKlxuICogQ0xJIGhhbmRsZXIgcmVnaXN0cmFyIGluIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbkNsaUhhbmRsZXJSZWdpc3RyYXIgaW1wbGVtZW50cyBDbGlIYW5kbGVyUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5DbGlIYW5kbGVyUmVnaXN0cmFyfSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBDTEkgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgQ0xJIGhhbmRsZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQ2xpSGFuZGxlcihwYXJhbXM6IFBsdWdpbkNsaUhhbmRsZXJSZWdpc3RyYXJSZWdpc3RlckNsaUhhbmRsZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckNsaUhhbmRsZXIocGFyYW1zLmNvbW1hbmQsIHBhcmFtcy5kZXNjcmlwdGlvbiwgcGFyYW1zLmZsYWdzLCAoY2xpRGF0YSkgPT4gbm9ybWFsaXplUHJvbWlzYWJsZShwYXJhbXMuaGFuZGxlcihjbGlEYXRhKSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxtQkFBb0M7QUFDcEMsc0JBQXVCO0FBK0NoQixNQUFNLDBCQUF5RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU03RCxZQUErQixRQUFnQjtBQUFoQjtBQUFBLEVBQWlCO0FBQUEsRUFBakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPL0IsbUJBQW1CLFFBQWlFO0FBQ3pGLFNBQUssT0FBTyxtQkFBbUIsT0FBTyxTQUFTLE9BQU8sYUFBYSxPQUFPLE9BQU8sQ0FBQyxnQkFBWSxrQ0FBb0IsT0FBTyxRQUFRLE9BQU8sQ0FBQyxDQUFDO0FBQUEsRUFDNUk7QUFDRjsiLCJuYW1lcyI6W119
|
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -160,4 +161,4 @@ function addField(containerEl, field) {
|
|
|
160
161
|
0 && (module.exports = {
|
|
161
162
|
editFieldsInPopover
|
|
162
163
|
});
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9maWVsZC1wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBlZGl0aW5nIGEgaGFuZGZ1bCBvZiBuYW1lZCB0ZXh0IGZpZWxkcyBpbiBhIHBvcG92ZXIgYW5jaG9yZWQgYXQgYSBwb2ludC5cbiAqXG4gKiBUaGlzIGlzIHRvIHtAbGluayBzaG93UG9wb3Zlcn0gd2hhdCBgbW9kYWxzL3Byb21wdC50c2AgaXMgdG8gYG1vZGFscy9tb2RhbC50c2A6IHRoZSBjb21tb24gY2FzZVxuICogc3BlbGxlZCBkZWNsYXJhdGl2ZWx5LCBzbyBhIGNhbGxlciB0aGF0IG9ubHkgbmVlZHMgYSBmZXcgdGV4dCBmaWVsZHMgbmV2ZXIgd3JpdGVzIGFueSBET00gd2lyaW5nLlxuICogQW55dGhpbmcgcmljaGVyIOKAlCBhIGRyb3Bkb3duLCBhIHRvZ2dsZSwgcmVuZGVyZWQgbWFya2Rvd24g4oCUIGdvZXMgdGhyb3VnaCB7QGxpbmsgc2hvd1BvcG92ZXJ9XG4gKiBkaXJlY3RseS5cbiAqL1xuXG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7XG4gIFNldHRpbmcsXG4gIFRleHRDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2hvd1BvcG92ZXJQYXJhbXMgfSBmcm9tICcuL3BvcG92ZXIudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93UG9wb3ZlciB9IGZyb20gJy4vcG9wb3Zlci50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGVkaXRGaWVsZHNJblBvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIHVuaW9uIG9mIHRoZSBmaWVsZCBrZXlzLCBpbmZlcnJlZCBmcm9tIHtAbGluayBFZGl0RmllbGRzSW5Qb3BvdmVyUGFyYW1zLmZpZWxkc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEZpZWxkc0luUG9wb3ZlclBhcmFtczxLZXkgZXh0ZW5kcyBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIHBvcG92ZXIuXG4gICAqL1xuICByZWFkb25seSBjc3NDbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZHMgdG8gZWRpdCwgcmVuZGVyZWQgdG9wIHRvIGJvdHRvbSBpbiB0aGUgZ2l2ZW4gb3JkZXIuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM6IHJlYWRvbmx5IFBvcG92ZXJGaWVsZDxLZXk+W107XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiT0tcIiBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBva0J1dHRvblRleHQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgdGV4dCBmaWVsZCBvZiBhIHtAbGluayBlZGl0RmllbGRzSW5Qb3BvdmVyfSBwb3BvdmVyLlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIGtleSB0aGUgZmllbGQncyB2YWx1ZSBpcyByZXR1cm5lZCB1bmRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3BvdmVyRmllbGQ8S2V5IGV4dGVuZHMgc3RyaW5nPiB7XG4gIC8qKlxuICAgKiBBIHZhbHVlIHRvIHByZS1maWxsIHRoZSBmaWVsZCB3aXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgdGhlIGZpZWxkJ3MgdmFsdWUgaXMgcmV0dXJuZWQgdW5kZXIuXG4gICAqL1xuICByZWFkb25seSBrZXk6IEtleTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHNob3duIG5leHQgdG8gdGhlIGZpZWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYSBwb3BvdmVyIHdpdGggYSB0ZXh0IGZpZWxkIHBlciBlbnRyeSBpbiBgZmllbGRzYCBhbmQgcmVzb2x2ZXMgd2l0aCB0aGVpciB2YWx1ZXMga2V5ZWQgYnlcbiAqIHtAbGluayBQb3BvdmVyRmllbGQua2V5fSwgb3IgYG51bGxgIGlmIGl0IHdhcyBkaXNtaXNzZWQgd2l0aG91dCBjb25maXJtaW5nLlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIHVuaW9uIG9mIHRoZSBmaWVsZCBrZXlzLCBpbmZlcnJlZCBmcm9tIHRoZSBgZmllbGRzYCBhcnJheS5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGVkaXRlZCB2YWx1ZXMsIG9yIGBudWxsYCBpZiBkaXNtaXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0RmllbGRzSW5Qb3BvdmVyPEtleSBleHRlbmRzIHN0cmluZz4ocGFyYW1zOiBFZGl0RmllbGRzSW5Qb3BvdmVyUGFyYW1zPEtleT4pOiBQcm9taXNlPG51bGwgfCBSZWNvcmQ8S2V5LCBzdHJpbmc+PiB7XG4gIGNvbnN0IHtcbiAgICBhbmNob3IsXG4gICAgY2FuY2VsQnV0dG9uVGV4dCxcbiAgICBjc3NDbGFzc2VzLFxuICAgIGZpZWxkcyxcbiAgICBva0J1dHRvblRleHRcbiAgfSA9IHBhcmFtcztcblxuICByZXR1cm4gYXdhaXQgc2hvd1BvcG92ZXI8UmVjb3JkPEtleSwgc3RyaW5nPj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFNob3dQb3BvdmVyUGFyYW1zPFJlY29yZDxLZXksIHN0cmluZz4+Pih7XG4gICAgYW5jaG9yLFxuICAgIGJ1aWxkKHsgY29udGVudEVsIH0pIHtcbiAgICAgIGNvbnN0IGVkaXRvcnMgPSBmaWVsZHMubWFwKChmaWVsZCkgPT4gKHtcbiAgICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICAgIHRleHRDb21wb25lbnQ6IGFkZEZpZWxkKGNvbnRlbnRFbCwgZmllbGQpXG4gICAgICB9KSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIFRoZSByZWNvcmQgaXMgYWNjdW11bGF0ZWQga2V5IGJ5IGtleSwgc28gaXQgaXMgb25seSBjb21wbGV0ZSDigJQgYW5kIG9ubHkgdHlwZWQgYXMgc3VjaCDigJQgb25jZSBldmVyeSBmaWVsZCBoYXMgYmVlbiByZWFkLlxuICAgICAgICBjb25zdCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuICAgICAgICAgIHZhbHVlc1tlZGl0b3Iua2V5XSA9IGVkaXRvci50ZXh0Q29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgfTtcbiAgICB9LFxuICAgIGNhbmNlbEJ1dHRvblRleHQsXG4gICAgY3NzQ2xhc3NlcyxcbiAgICBva0J1dHRvblRleHRcbiAgfSkpO1xufVxuXG4vKipcbiAqIEFkZHMgYSBzaW5nbGUgbGFiZWxsZWQgdGV4dCBmaWVsZCB0byB0aGUgcG9wb3Zlci5cbiAqXG4gKiBAdHlwZVBhcmFtIEtleSAtIFRoZSBrZXkgdGhlIGZpZWxkJ3MgdmFsdWUgaXMgcmV0dXJuZWQgdW5kZXIuXG4gKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgZWxlbWVudCB0byBhZGQgdGhlIGZpZWxkIHRvLlxuICogQHBhcmFtIGZpZWxkIC0gVGhlIGZpZWxkIHRvIGFkZC5cbiAqIEByZXR1cm5zIFRoZSBmaWVsZCdzIHRleHQgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiBhZGRGaWVsZDxLZXkgZXh0ZW5kcyBzdHJpbmc+KGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgZmllbGQ6IFBvcG92ZXJGaWVsZDxLZXk+KTogVGV4dENvbXBvbmVudCB7XG4gIGNvbnN0IHNldHRpbmcgPSBuZXcgU2V0dGluZyhjb250YWluZXJFbCkuc2V0TmFtZShmaWVsZC5uYW1lKTtcbiAgY29uc3QgdGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KHNldHRpbmcuY29udHJvbEVsKTtcbiAgdGV4dENvbXBvbmVudC5zZXRWYWx1ZShmaWVsZC5kZWZhdWx0VmFsdWUgPz8gJycpO1xuICB0ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKGZpZWxkLnBsYWNlaG9sZGVyID8/
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9maWVsZC1wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBlZGl0aW5nIGEgaGFuZGZ1bCBvZiBuYW1lZCB0ZXh0IGZpZWxkcyBpbiBhIHBvcG92ZXIgYW5jaG9yZWQgYXQgYSBwb2ludC5cbiAqXG4gKiBUaGlzIGlzIHRvIHtAbGluayBzaG93UG9wb3Zlcn0gd2hhdCBgbW9kYWxzL3Byb21wdC50c2AgaXMgdG8gYG1vZGFscy9tb2RhbC50c2A6IHRoZSBjb21tb24gY2FzZVxuICogc3BlbGxlZCBkZWNsYXJhdGl2ZWx5LCBzbyBhIGNhbGxlciB0aGF0IG9ubHkgbmVlZHMgYSBmZXcgdGV4dCBmaWVsZHMgbmV2ZXIgd3JpdGVzIGFueSBET00gd2lyaW5nLlxuICogQW55dGhpbmcgcmljaGVyIOKAlCBhIGRyb3Bkb3duLCBhIHRvZ2dsZSwgcmVuZGVyZWQgbWFya2Rvd24g4oCUIGdvZXMgdGhyb3VnaCB7QGxpbmsgc2hvd1BvcG92ZXJ9XG4gKiBkaXJlY3RseS5cbiAqL1xuXG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7XG4gIFNldHRpbmcsXG4gIFRleHRDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2hvd1BvcG92ZXJQYXJhbXMgfSBmcm9tICcuL3BvcG92ZXIudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93UG9wb3ZlciB9IGZyb20gJy4vcG9wb3Zlci50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGVkaXRGaWVsZHNJblBvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIHVuaW9uIG9mIHRoZSBmaWVsZCBrZXlzLCBpbmZlcnJlZCBmcm9tIHtAbGluayBFZGl0RmllbGRzSW5Qb3BvdmVyUGFyYW1zLmZpZWxkc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEZpZWxkc0luUG9wb3ZlclBhcmFtczxLZXkgZXh0ZW5kcyBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIHBvcG92ZXIuXG4gICAqL1xuICByZWFkb25seSBjc3NDbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZHMgdG8gZWRpdCwgcmVuZGVyZWQgdG9wIHRvIGJvdHRvbSBpbiB0aGUgZ2l2ZW4gb3JkZXIuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM6IHJlYWRvbmx5IFBvcG92ZXJGaWVsZDxLZXk+W107XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiT0tcIiBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBva0J1dHRvblRleHQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgdGV4dCBmaWVsZCBvZiBhIHtAbGluayBlZGl0RmllbGRzSW5Qb3BvdmVyfSBwb3BvdmVyLlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIGtleSB0aGUgZmllbGQncyB2YWx1ZSBpcyByZXR1cm5lZCB1bmRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3BvdmVyRmllbGQ8S2V5IGV4dGVuZHMgc3RyaW5nPiB7XG4gIC8qKlxuICAgKiBBIHZhbHVlIHRvIHByZS1maWxsIHRoZSBmaWVsZCB3aXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgdGhlIGZpZWxkJ3MgdmFsdWUgaXMgcmV0dXJuZWQgdW5kZXIuXG4gICAqL1xuICByZWFkb25seSBrZXk6IEtleTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHNob3duIG5leHQgdG8gdGhlIGZpZWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYSBwb3BvdmVyIHdpdGggYSB0ZXh0IGZpZWxkIHBlciBlbnRyeSBpbiBgZmllbGRzYCBhbmQgcmVzb2x2ZXMgd2l0aCB0aGVpciB2YWx1ZXMga2V5ZWQgYnlcbiAqIHtAbGluayBQb3BvdmVyRmllbGQua2V5fSwgb3IgYG51bGxgIGlmIGl0IHdhcyBkaXNtaXNzZWQgd2l0aG91dCBjb25maXJtaW5nLlxuICpcbiAqIEB0eXBlUGFyYW0gS2V5IC0gVGhlIHVuaW9uIG9mIHRoZSBmaWVsZCBrZXlzLCBpbmZlcnJlZCBmcm9tIHRoZSBgZmllbGRzYCBhcnJheS5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGVkaXRlZCB2YWx1ZXMsIG9yIGBudWxsYCBpZiBkaXNtaXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0RmllbGRzSW5Qb3BvdmVyPEtleSBleHRlbmRzIHN0cmluZz4ocGFyYW1zOiBFZGl0RmllbGRzSW5Qb3BvdmVyUGFyYW1zPEtleT4pOiBQcm9taXNlPG51bGwgfCBSZWNvcmQ8S2V5LCBzdHJpbmc+PiB7XG4gIGNvbnN0IHtcbiAgICBhbmNob3IsXG4gICAgY2FuY2VsQnV0dG9uVGV4dCxcbiAgICBjc3NDbGFzc2VzLFxuICAgIGZpZWxkcyxcbiAgICBva0J1dHRvblRleHRcbiAgfSA9IHBhcmFtcztcblxuICByZXR1cm4gYXdhaXQgc2hvd1BvcG92ZXI8UmVjb3JkPEtleSwgc3RyaW5nPj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFNob3dQb3BvdmVyUGFyYW1zPFJlY29yZDxLZXksIHN0cmluZz4+Pih7XG4gICAgYW5jaG9yLFxuICAgIGJ1aWxkKHsgY29udGVudEVsIH0pIHtcbiAgICAgIGNvbnN0IGVkaXRvcnMgPSBmaWVsZHMubWFwKChmaWVsZCkgPT4gKHtcbiAgICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICAgIHRleHRDb21wb25lbnQ6IGFkZEZpZWxkKGNvbnRlbnRFbCwgZmllbGQpXG4gICAgICB9KSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIFRoZSByZWNvcmQgaXMgYWNjdW11bGF0ZWQga2V5IGJ5IGtleSwgc28gaXQgaXMgb25seSBjb21wbGV0ZSDigJQgYW5kIG9ubHkgdHlwZWQgYXMgc3VjaCDigJQgb25jZSBldmVyeSBmaWVsZCBoYXMgYmVlbiByZWFkLlxuICAgICAgICBjb25zdCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBlZGl0b3Igb2YgZWRpdG9ycykge1xuICAgICAgICAgIHZhbHVlc1tlZGl0b3Iua2V5XSA9IGVkaXRvci50ZXh0Q29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgfTtcbiAgICB9LFxuICAgIGNhbmNlbEJ1dHRvblRleHQsXG4gICAgY3NzQ2xhc3NlcyxcbiAgICBva0J1dHRvblRleHRcbiAgfSkpO1xufVxuXG4vKipcbiAqIEFkZHMgYSBzaW5nbGUgbGFiZWxsZWQgdGV4dCBmaWVsZCB0byB0aGUgcG9wb3Zlci5cbiAqXG4gKiBAdHlwZVBhcmFtIEtleSAtIFRoZSBrZXkgdGhlIGZpZWxkJ3MgdmFsdWUgaXMgcmV0dXJuZWQgdW5kZXIuXG4gKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgZWxlbWVudCB0byBhZGQgdGhlIGZpZWxkIHRvLlxuICogQHBhcmFtIGZpZWxkIC0gVGhlIGZpZWxkIHRvIGFkZC5cbiAqIEByZXR1cm5zIFRoZSBmaWVsZCdzIHRleHQgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiBhZGRGaWVsZDxLZXkgZXh0ZW5kcyBzdHJpbmc+KGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgZmllbGQ6IFBvcG92ZXJGaWVsZDxLZXk+KTogVGV4dENvbXBvbmVudCB7XG4gIGNvbnN0IHNldHRpbmcgPSBuZXcgU2V0dGluZyhjb250YWluZXJFbCkuc2V0TmFtZShmaWVsZC5uYW1lKTtcbiAgY29uc3QgdGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KHNldHRpbmcuY29udHJvbEVsKTtcbiAgdGV4dENvbXBvbmVudC5zZXRWYWx1ZShmaWVsZC5kZWZhdWx0VmFsdWUgPz8gJycpO1xuICB0ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKGZpZWxkLnBsYWNlaG9sZGVyID8/ICcnKTtcbiAgdGV4dENvbXBvbmVudC5pbnB1dEVsLmFkZENsYXNzKENzc0NsYXNzLlRleHRCb3gpO1xuICByZXR1cm4gdGV4dENvbXBvbmVudDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLDBCQUE0QztBQUM1QyxzQkFHTztBQUtQLHVCQUF5QjtBQUN6QixxQkFBNEI7QUF5RTVCLGVBQXNCLG9CQUF3QyxRQUE2RTtBQUN6SSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixTQUFPLFVBQU0sZ0NBQWlDLGlEQUFvRTtBQUFBLElBQ2hIO0FBQUEsSUFDQSxNQUFNLEVBQUUsVUFBVSxHQUFHO0FBQ25CLFlBQU0sVUFBVSxPQUFPLElBQUksQ0FBQyxXQUFXO0FBQUEsUUFDckMsS0FBSyxNQUFNO0FBQUEsUUFDWCxlQUFlLFNBQVMsV0FBVyxLQUFLO0FBQUEsTUFDMUMsRUFBRTtBQUVGLGFBQU8sTUFBTTtBQUVYLGNBQU0sU0FBaUMsQ0FBQztBQUN4QyxtQkFBVyxVQUFVLFNBQVM7QUFDNUIsaUJBQU8sT0FBTyxHQUFHLElBQUksT0FBTyxjQUFjLFNBQVM7QUFBQSxRQUNyRDtBQUVBLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQyxDQUFDO0FBQ0o7QUFVQSxTQUFTLFNBQTZCLGFBQTBCLE9BQXlDO0FBQ3ZHLFFBQU0sVUFBVSxJQUFJLHdCQUFRLFdBQVcsRUFBRSxRQUFRLE1BQU0sSUFBSTtBQUMzRCxRQUFNLGdCQUFnQixJQUFJLDhCQUFjLFFBQVEsU0FBUztBQUN6RCxnQkFBYyxTQUFTLE1BQU0sZ0JBQWdCLEVBQUU7QUFDL0MsZ0JBQWMsZUFBZSxNQUFNLGVBQWUsRUFBRTtBQUNwRCxnQkFBYyxRQUFRLFNBQVMsMEJBQVMsT0FBTztBQUMvQyxTQUFPO0FBQ1Q7IiwibmFtZXMiOltdfQ==
|
|
@@ -50,7 +50,8 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
50
50
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
51
51
|
return originalRequire?.(id);
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
const app = globalThis.app;
|
|
54
|
+
if (app?.isMobile) {
|
|
54
55
|
if (id === "process" || id === "node:process") {
|
|
55
56
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
56
57
|
return process;
|
|
@@ -110,4 +111,4 @@ var popover = __toESM(((module) => module && module.__esModule && 'default' in m
|
|
|
110
111
|
popover,
|
|
111
112
|
"popover-anchor": null
|
|
112
113
|
});
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2ZpZWxkLXBvcG92ZXInIGZyb20gJy4vZmllbGQtcG9wb3Zlci50cyc7XG5leHBvcnQgKiBhcyAncG9wb3Zlci1hbmNob3InIGZyb20gJy4vcG9wb3Zlci1hbmNob3IudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXInIGZyb20gJy4vcG9wb3Zlci50cyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEseUJBQUFBO0FBQUEsRUFBQTtBQUFBLDBCQUFBQztBQUFBO0FBQUE7QUFFQSxJQUFBRCxnQkFBaUM7QUFDakMsSUFBQUMsaUJBQWtDO0FBQ2xDLGNBQTJCOyIsIm5hbWVzIjpbImZpZWxkLXBvcG92ZXIiLCJwb3BvdmVyLWFuY2hvciJdfQ==
|
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -160,4 +161,4 @@ function createAnchorFromSelection(doc) {
|
|
|
160
161
|
createAnchorFromPoint,
|
|
161
162
|
createAnchorFromSelection
|
|
162
163
|
});
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLWFuY2hvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIHJlc29sdmVkIHBvc2l0aW9uIGEgcG9wb3ZlciBpcyBwbGFjZWQgYXQuXG4gKlxuICogQSBwb3BvdmVyIHRha2VzIGEgcmVzb2x2ZWQgYW5jaG9yIHJhdGhlciB0aGFuIGFuIGVsZW1lbnQgYmVjYXVzZSBjYWxsZXJzIGtub3cgdGhlIHBvc2l0aW9uIGluXG4gKiBkaWZmZXJlbnQgd2F5czogYSBjbGlja2VkIGVsZW1lbnQgaGFzIGEgcmVjdCwgYSBjb250ZXh0IG1lbnUgaGFzIHRoZSBwb2ludGVyIHRoYXQgb3BlbmVkIGl0LCBhbmQgYVxuICoga2V5Ym9hcmQtaW52b2tlZCBjb21tYW5kIGhhcyB0aGUgY2FyZXQuIEVhY2ggd2F5IGdldHMgaXRzIG93biBidWlsZGVyIGhlcmUsIHNvIHRoZSBwb3BvdmVyIGl0c2VsZlxuICogc3RheXMgdW5hd2FyZSBvZiBob3cgdGhlIHBvc2l0aW9uIHdhcyBmb3VuZC5cbiAqXG4gKiBUaGlzIGxpdmVzIGFwYXJ0IGZyb20gdGhlIHBvcG92ZXIgc2hlbGwgc28gdGhhdCBhbnl0aGluZyBwcm9kdWNpbmcgYW4gYW5jaG9yIOKAlCBtb3N0IG5vdGFibHlcbiAqIGBQb2ludGVyUG9zaXRpb25Db21wb25lbnRgIOKAlCBkZXBlbmRzIG9ubHkgb24gdGhlIHBvc2l0aW9uLCBub3Qgb24gdGhlIHBhbmVsIHRoYXQgY29uc3VtZXMgaXQuXG4gKi9cblxuaW1wb3J0IHsgZ2V0RG9jdW1lbnRXaW5kb3cgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvaHRtbC1lbGVtZW50JztcblxuLyoqXG4gKiBUaGUgZnJhY3Rpb24gb2YgdGhlIHdpbmRvdyB1c2VkIHRvIHBsYWNlIGEgY2VudGVyZWQgYW5jaG9yLlxuICovXG5jb25zdCBDRU5URVJfRlJBQ1RJT04gPSAwLjU7XG5cbi8qKlxuICogV2hlcmUgYSBwb3BvdmVyIGlzIHBsYWNlZDogdmlld3BvcnQgY29vcmRpbmF0ZXMgcGx1cyB0aGUgZG9jdW1lbnQgdGhleSBiZWxvbmcgdG8uXG4gKlxuICogQ2FycnlpbmcgdGhlIGRvY3VtZW50IGV4cGxpY2l0bHkgaXMgd2hhdCBtYWtlcyBhbiBhbmNob3IgaW5zaWRlIGEgcG9wLW91dCB3aW5kb3cgd29yayDigJQgdGhlIHBvcG92ZXJcbiAqIGlzIGFwcGVuZGVkIHRvLCBhbmQgY2xhbXBlZCBhZ2FpbnN0LCB0aGF0IHdpbmRvdyByYXRoZXIgdGhhbiB0aGUgbWFpbiBvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlckFuY2hvciB7XG4gIC8qKlxuICAgKiBUaGUgdmlld3BvcnQgYHlgIGNvb3JkaW5hdGUgdGhlIHBvcG92ZXIgaXMgcGxhY2VkIGJlbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYm90dG9tOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudCB0aGUgY29vcmRpbmF0ZXMgYmVsb25nIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jOiBEb2N1bWVudDtcblxuICAvKipcbiAgICogVGhlIHZpZXdwb3J0IGB4YCBjb29yZGluYXRlIHRoZSBwb3BvdmVyIGlzIGFsaWduZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBsZWZ0OiBudW1iZXI7XG59XG5cbi8qKlxuICogQW5jaG9ycyBhIHBvcG92ZXIgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQsIGZvciB0aGUgY2FzZXMgd2hlcmUgbm90aGluZyBiZXR0ZXIgaXMga25vd24uXG4gKlxuICogQHBhcmFtIGRvYyAtIFRoZSBkb2N1bWVudCB0byBhbmNob3IgaW4uXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyKGRvYzogRG9jdW1lbnQpOiBQb3BvdmVyQW5jaG9yIHtcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgcmV0dXJuIHtcbiAgICBib3R0b206IHdpbi5pbm5lckhlaWdodCAqIENFTlRFUl9GUkFDVElPTixcbiAgICBkb2MsXG4gICAgbGVmdDogd2luLmlubmVyV2lkdGggKiBDRU5URVJfRlJBQ1RJT05cbiAgfTtcbn1cblxuLyoqXG4gKiBBbmNob3JzIGEgcG9wb3ZlciBqdXN0IGJlbG93IGFuIGVsZW1lbnQg4oCUIHVzZWQgZm9yIGEgY2xpY2tlZCBlbGVtZW50LCB3aG9zZSByZWN0IGlzIGV4YWN0bHkgd2hlcmVcbiAqIHRoZSB1c2VyIGlzIGxvb2tpbmcuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBhbmNob3IgYXQuXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQb3BvdmVyQW5jaG9yIHtcbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiByZWN0LmJvdHRvbSxcbiAgICBkb2M6IGVsZW1lbnQub3duZXJEb2N1bWVudCxcbiAgICBsZWZ0OiByZWN0LmxlZnRcbiAgfTtcbn1cblxuLyoqXG4gKiBBbmNob3JzIGEgcG9wb3ZlciBhdCBhIHBvaW50ZXIgcG9zaXRpb24g4oCUIHVzZWQgZm9yIGEgY29udGV4dCBtZW51LCB3aGljaCBpcyByYWlzZWQgYnkgYSByaWdodC1jbGlja1xuICogb3IgYSBsb25nLXByZXNzIHdob3NlIGNvb3JkaW5hdGVzIGFyZSB3aGVyZSB0aGUgdXNlciBpcyBsb29raW5nLlxuICpcbiAqIEBwYXJhbSB4IC0gVGhlIHZpZXdwb3J0IGB4YCBjb29yZGluYXRlLlxuICogQHBhcmFtIHkgLSBUaGUgdmlld3BvcnQgYHlgIGNvb3JkaW5hdGUuXG4gKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IHRoZSBjb29yZGluYXRlcyBiZWxvbmcgdG8uXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbVBvaW50KHg6IG51bWJlciwgeTogbnVtYmVyLCBkb2M6IERvY3VtZW50KTogUG9wb3ZlckFuY2hvciB7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiB5LFxuICAgIGRvYyxcbiAgICBsZWZ0OiB4XG4gIH07XG59XG5cbi8qKlxuICogQW5jaG9ycyBhIHBvcG92ZXIgYXQgdGhlIGNhcmV0IOKAlCB1c2VkIGJ5IGEgY29tbWFuZCBpbnZva2VkIGZyb20gdGhlIGtleWJvYXJkLCB3aXRoIHRoZSBjdXJzb3JcbiAqIGFscmVhZHkgYXQgdGhlIHBsYWNlIGJlaW5nIGVkaXRlZC5cbiAqXG4gKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IGhvbGRpbmcgdGhlIHNlbGVjdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBhbmNob3IsIG9yIGEgY2VudGVyZWQgb25lIHdoZW4gdGhlcmUgaXMgbm8gY2FyZXQgdG8gcmVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFuY2hvckZyb21TZWxlY3Rpb24oZG9jOiBEb2N1bWVudCk6IFBvcG92ZXJBbmNob3Ige1xuICBjb25zdCBzZWxlY3Rpb24gPSBkb2MuZ2V0U2VsZWN0aW9uKCk7XG4gIGNvbnN0IHJlY3QgPSBzZWxlY3Rpb24/
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLWFuY2hvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIHJlc29sdmVkIHBvc2l0aW9uIGEgcG9wb3ZlciBpcyBwbGFjZWQgYXQuXG4gKlxuICogQSBwb3BvdmVyIHRha2VzIGEgcmVzb2x2ZWQgYW5jaG9yIHJhdGhlciB0aGFuIGFuIGVsZW1lbnQgYmVjYXVzZSBjYWxsZXJzIGtub3cgdGhlIHBvc2l0aW9uIGluXG4gKiBkaWZmZXJlbnQgd2F5czogYSBjbGlja2VkIGVsZW1lbnQgaGFzIGEgcmVjdCwgYSBjb250ZXh0IG1lbnUgaGFzIHRoZSBwb2ludGVyIHRoYXQgb3BlbmVkIGl0LCBhbmQgYVxuICoga2V5Ym9hcmQtaW52b2tlZCBjb21tYW5kIGhhcyB0aGUgY2FyZXQuIEVhY2ggd2F5IGdldHMgaXRzIG93biBidWlsZGVyIGhlcmUsIHNvIHRoZSBwb3BvdmVyIGl0c2VsZlxuICogc3RheXMgdW5hd2FyZSBvZiBob3cgdGhlIHBvc2l0aW9uIHdhcyBmb3VuZC5cbiAqXG4gKiBUaGlzIGxpdmVzIGFwYXJ0IGZyb20gdGhlIHBvcG92ZXIgc2hlbGwgc28gdGhhdCBhbnl0aGluZyBwcm9kdWNpbmcgYW4gYW5jaG9yIOKAlCBtb3N0IG5vdGFibHlcbiAqIGBQb2ludGVyUG9zaXRpb25Db21wb25lbnRgIOKAlCBkZXBlbmRzIG9ubHkgb24gdGhlIHBvc2l0aW9uLCBub3Qgb24gdGhlIHBhbmVsIHRoYXQgY29uc3VtZXMgaXQuXG4gKi9cblxuaW1wb3J0IHsgZ2V0RG9jdW1lbnRXaW5kb3cgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvaHRtbC1lbGVtZW50JztcblxuLyoqXG4gKiBUaGUgZnJhY3Rpb24gb2YgdGhlIHdpbmRvdyB1c2VkIHRvIHBsYWNlIGEgY2VudGVyZWQgYW5jaG9yLlxuICovXG5jb25zdCBDRU5URVJfRlJBQ1RJT04gPSAwLjU7XG5cbi8qKlxuICogV2hlcmUgYSBwb3BvdmVyIGlzIHBsYWNlZDogdmlld3BvcnQgY29vcmRpbmF0ZXMgcGx1cyB0aGUgZG9jdW1lbnQgdGhleSBiZWxvbmcgdG8uXG4gKlxuICogQ2FycnlpbmcgdGhlIGRvY3VtZW50IGV4cGxpY2l0bHkgaXMgd2hhdCBtYWtlcyBhbiBhbmNob3IgaW5zaWRlIGEgcG9wLW91dCB3aW5kb3cgd29yayDigJQgdGhlIHBvcG92ZXJcbiAqIGlzIGFwcGVuZGVkIHRvLCBhbmQgY2xhbXBlZCBhZ2FpbnN0LCB0aGF0IHdpbmRvdyByYXRoZXIgdGhhbiB0aGUgbWFpbiBvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlckFuY2hvciB7XG4gIC8qKlxuICAgKiBUaGUgdmlld3BvcnQgYHlgIGNvb3JkaW5hdGUgdGhlIHBvcG92ZXIgaXMgcGxhY2VkIGJlbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYm90dG9tOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudCB0aGUgY29vcmRpbmF0ZXMgYmVsb25nIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jOiBEb2N1bWVudDtcblxuICAvKipcbiAgICogVGhlIHZpZXdwb3J0IGB4YCBjb29yZGluYXRlIHRoZSBwb3BvdmVyIGlzIGFsaWduZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBsZWZ0OiBudW1iZXI7XG59XG5cbi8qKlxuICogQW5jaG9ycyBhIHBvcG92ZXIgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQsIGZvciB0aGUgY2FzZXMgd2hlcmUgbm90aGluZyBiZXR0ZXIgaXMga25vd24uXG4gKlxuICogQHBhcmFtIGRvYyAtIFRoZSBkb2N1bWVudCB0byBhbmNob3IgaW4uXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyKGRvYzogRG9jdW1lbnQpOiBQb3BvdmVyQW5jaG9yIHtcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgcmV0dXJuIHtcbiAgICBib3R0b206IHdpbi5pbm5lckhlaWdodCAqIENFTlRFUl9GUkFDVElPTixcbiAgICBkb2MsXG4gICAgbGVmdDogd2luLmlubmVyV2lkdGggKiBDRU5URVJfRlJBQ1RJT05cbiAgfTtcbn1cblxuLyoqXG4gKiBBbmNob3JzIGEgcG9wb3ZlciBqdXN0IGJlbG93IGFuIGVsZW1lbnQg4oCUIHVzZWQgZm9yIGEgY2xpY2tlZCBlbGVtZW50LCB3aG9zZSByZWN0IGlzIGV4YWN0bHkgd2hlcmVcbiAqIHRoZSB1c2VyIGlzIGxvb2tpbmcuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBhbmNob3IgYXQuXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQb3BvdmVyQW5jaG9yIHtcbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiByZWN0LmJvdHRvbSxcbiAgICBkb2M6IGVsZW1lbnQub3duZXJEb2N1bWVudCxcbiAgICBsZWZ0OiByZWN0LmxlZnRcbiAgfTtcbn1cblxuLyoqXG4gKiBBbmNob3JzIGEgcG9wb3ZlciBhdCBhIHBvaW50ZXIgcG9zaXRpb24g4oCUIHVzZWQgZm9yIGEgY29udGV4dCBtZW51LCB3aGljaCBpcyByYWlzZWQgYnkgYSByaWdodC1jbGlja1xuICogb3IgYSBsb25nLXByZXNzIHdob3NlIGNvb3JkaW5hdGVzIGFyZSB3aGVyZSB0aGUgdXNlciBpcyBsb29raW5nLlxuICpcbiAqIEBwYXJhbSB4IC0gVGhlIHZpZXdwb3J0IGB4YCBjb29yZGluYXRlLlxuICogQHBhcmFtIHkgLSBUaGUgdmlld3BvcnQgYHlgIGNvb3JkaW5hdGUuXG4gKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IHRoZSBjb29yZGluYXRlcyBiZWxvbmcgdG8uXG4gKiBAcmV0dXJucyBUaGUgYW5jaG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5jaG9yRnJvbVBvaW50KHg6IG51bWJlciwgeTogbnVtYmVyLCBkb2M6IERvY3VtZW50KTogUG9wb3ZlckFuY2hvciB7XG4gIHJldHVybiB7XG4gICAgYm90dG9tOiB5LFxuICAgIGRvYyxcbiAgICBsZWZ0OiB4XG4gIH07XG59XG5cbi8qKlxuICogQW5jaG9ycyBhIHBvcG92ZXIgYXQgdGhlIGNhcmV0IOKAlCB1c2VkIGJ5IGEgY29tbWFuZCBpbnZva2VkIGZyb20gdGhlIGtleWJvYXJkLCB3aXRoIHRoZSBjdXJzb3JcbiAqIGFscmVhZHkgYXQgdGhlIHBsYWNlIGJlaW5nIGVkaXRlZC5cbiAqXG4gKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IGhvbGRpbmcgdGhlIHNlbGVjdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBhbmNob3IsIG9yIGEgY2VudGVyZWQgb25lIHdoZW4gdGhlcmUgaXMgbm8gY2FyZXQgdG8gcmVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFuY2hvckZyb21TZWxlY3Rpb24oZG9jOiBEb2N1bWVudCk6IFBvcG92ZXJBbmNob3Ige1xuICBjb25zdCBzZWxlY3Rpb24gPSBkb2MuZ2V0U2VsZWN0aW9uKCk7XG4gIGNvbnN0IHJlY3QgPSBzZWxlY3Rpb24/LnJhbmdlQ291bnQgPyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XG4gIHJldHVybiAhcmVjdCB8fCAocmVjdC5ib3R0b20gPT09IDAgJiYgcmVjdC5sZWZ0ID09PSAwKVxuICAgID8gY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyKGRvYylcbiAgICA6IHtcbiAgICAgIGJvdHRvbTogcmVjdC5ib3R0b20sXG4gICAgICBkb2MsXG4gICAgICBsZWZ0OiByZWN0LmxlZnRcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EsMEJBQWtDO0FBS2xDLE1BQU0sa0JBQWtCO0FBK0JqQixTQUFTLCtCQUErQixLQUE4QjtBQUMzRSxRQUFNLFVBQU0sdUNBQWtCLEdBQUc7QUFDakMsU0FBTztBQUFBLElBQ0wsUUFBUSxJQUFJLGNBQWM7QUFBQSxJQUMxQjtBQUFBLElBQ0EsTUFBTSxJQUFJLGFBQWE7QUFBQSxFQUN6QjtBQUNGO0FBU08sU0FBUyx3QkFBd0IsU0FBcUM7QUFDM0UsUUFBTSxPQUFPLFFBQVEsc0JBQXNCO0FBQzNDLFNBQU87QUFBQSxJQUNMLFFBQVEsS0FBSztBQUFBLElBQ2IsS0FBSyxRQUFRO0FBQUEsSUFDYixNQUFNLEtBQUs7QUFBQSxFQUNiO0FBQ0Y7QUFXTyxTQUFTLHNCQUFzQixHQUFXLEdBQVcsS0FBOEI7QUFDeEYsU0FBTztBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxFQUNSO0FBQ0Y7QUFTTyxTQUFTLDBCQUEwQixLQUE4QjtBQUN0RSxRQUFNLFlBQVksSUFBSSxhQUFhO0FBQ25DLFFBQU0sT0FBTyxXQUFXLGFBQWEsVUFBVSxXQUFXLENBQUMsRUFBRSxzQkFBc0IsSUFBSTtBQUN2RixTQUFPLENBQUMsUUFBUyxLQUFLLFdBQVcsS0FBSyxLQUFLLFNBQVMsSUFDaEQsK0JBQStCLEdBQUcsSUFDbEM7QUFBQSxJQUNBLFFBQVEsS0FBSztBQUFBLElBQ2I7QUFBQSxJQUNBLE1BQU0sS0FBSztBQUFBLEVBQ2I7QUFDSjsiLCJuYW1lcyI6W119
|
|
@@ -77,7 +77,8 @@ ensureBrowserProcess();
|
|
|
77
77
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
78
|
return originalRequire?.(id);
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
81
82
|
if (id === "process" || id === "node:process") {
|
|
82
83
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
83
84
|
return process;
|
|
@@ -207,4 +208,4 @@ function positionAtAnchor(popoverEl, anchor, win) {
|
|
|
207
208
|
0 && (module.exports = {
|
|
208
209
|
showPopover
|
|
209
210
|
});
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIHNtYWxsIGZsb2F0aW5nIHBhbmVsIGFuY2hvcmVkIGF0IGEgcG9pbnQsIGNvbGxlY3RpbmcgYSB2YWx1ZSBhbmQgcmVzb2x2aW5nIGEgcHJvbWlzZSB3aXRoIGl0LlxuICpcbiAqIFRoaXMgaXMgdGhlIHBvcG92ZXIgY291bnRlcnBhcnQgb2YgYG1vZGFscy9tb2RhbC50c2A6IHRoZSBzYW1lIFwiYXNrIHRoZSB1c2VyIGZvciBhIHZhbHVlLCByZXNvbHZlIGFcbiAqIHByb21pc2VcIiBzaGFwZSwgZm9yIHRoZSBjYXNlcyBhIG1vZGFsIGNhbm5vdCBzZXJ2ZS4gQSBtb2RhbCBkaW1zIHRoZSBzY3JlZW4gYW5kIGlzIHBvc2l0aW9uZWQgYnlcbiAqIE9ic2lkaWFuLCBuZWl0aGVyIG9mIHdoaWNoIHN1aXRzIGFuIGVkaXRvciB0aGF0IG11c3QgYXBwZWFyICphdCogdGhlIHRoaW5nIGl0IGVkaXRzIOKAlCBhIGNsaWNrZWRcbiAqIGxpbmssIHRoZSBjYXJldCwgb3Igd2hlcmV2ZXIgYSBjb250ZXh0IG1lbnUgd2FzIHJhaXNlZC5cbiAqXG4gKiBUaGUgcGFuZWwgcmlkZXMgT2JzaWRpYW4ncyBgLm1lbnVgIGNsYXNzIGZvciBpdHMgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzaGFkb3csIHNvIG9ubHkgbGF5b3V0IGlzXG4gKiBzdHlsZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCB7IGdldERvY3VtZW50V2luZG93IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5pbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBUaGUgZ2FwIGluIHBpeGVscyBiZXR3ZWVuIHRoZSBhbmNob3IgYW5kIHRoZSBwb3BvdmVyLlxuICovXG5jb25zdCBBTkNIT1JfR0FQX0lOX1BJWEVMUyA9IDQ7XG5cbi8qKlxuICogVGhlIG1pbmltdW0gZ2FwIGluIHBpeGVscyB0aGUgcG9wb3ZlciBrZWVwcyBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgd2luZG93IHdoZW4gaXQgaGFzIHRvIGJlIGNsYW1wZWRcbiAqIGJhY2sgaW50byB2aWV3LlxuICovXG5jb25zdCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTID0gODtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgdGhlIHBvcG92ZXIgcmVzb2x2ZXMgd2l0aCB3aGVuIGl0IGlzIGNvbmZpcm1lZC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlc29sdmVkIGJ5IHRoZSBwb3BvdmVyLlxuICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT4gPSAoKSA9PiBWYWx1ZTtcblxuLyoqXG4gKiBUaGUgdG9vbHMgaGFuZGVkIHRvIHtAbGluayBTaG93UG9wb3ZlclBhcmFtcy5idWlsZH0gZm9yIHBvcHVsYXRpbmcgYSBwb3BvdmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dQb3BvdmVyQnVpbGRQYXJhbXMge1xuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCBgbnVsbGAsIGFzIHRoZSBDYW5jZWwgYnV0dG9uIGRvZXMuXG4gICAqL1xuICByZWFkb25seSBjYW5jZWw6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIGFzIHRoZSBPSyBidXR0b24gZG9lcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpcm06ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFkZCB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgdG8uIFRoZSBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMgYXJlIGFwcGVuZGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEVsOiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvd1BvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHBvcG92ZXIncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRvb2xzIGZvciBwb3B1bGF0aW5nIHRoZSBwb3BvdmVyLlxuICAgKiBAcmV0dXJucyBBIGdldHRlciByZWFkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGQ6IChwYXJhbXM6IFNob3dQb3BvdmVyQnVpbGRQYXJhbXMpID0+IFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT47XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIHBvcG92ZXIgYXQgdGhlIGdpdmVuIGFuY2hvciBhbmQgcmVzb2x2ZXMgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIG9yIGBudWxsYCBpZiBpdCB3YXNcbiAqIGRpc21pc3NlZCB3aXRob3V0IGNvbmZpcm1pbmcuXG4gKlxuICogQHR5cGVQYXJhbSBWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSByZXNvbHZlZCBieSB0aGUgcG9wb3Zlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJ1aWx0IHZhbHVlLCBvciBgbnVsbGAgaWYgZGlzbWlzc2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd1BvcG92ZXI8VmFsdWU+KHBhcmFtczogU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+KTogUHJvbWlzZTxudWxsIHwgVmFsdWU+IHtcbiAgY29uc3Qge1xuICAgIGFuY2hvcixcbiAgICBidWlsZCxcbiAgICBjYW5jZWxCdXR0b25UZXh0LFxuICAgIGNzc0NsYXNzZXMsXG4gICAgb2tCdXR0b25UZXh0XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZG9jID0gYW5jaG9yLmRvYztcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgY29uc3QgcG9wb3ZlckVsID0gZG9jLmJvZHkuY3JlYXRlRGl2KHsgY2xzOiAnbWVudScgfSk7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMocG9wb3ZlckVsLCBbQ3NzQ2xhc3MuUG9wb3ZlciwgLi4uY3NzQ2xhc3NlcyA/PyBbXV0pO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxudWxsIHwgVmFsdWU+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IGlzQ2xvc2VkOiBmYWxzZSB9O1xuXG4gICAgZnVuY3Rpb24gY2xvc2UocmVzdWx0OiBudWxsIHwgVmFsdWUpOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZS5pc0Nsb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGF0ZS5pc0Nsb3NlZCA9IHRydWU7XG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgICBwb3BvdmVyRWwucmVtb3ZlKCk7XG4gICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlT2soKTogdm9pZCB7XG4gICAgICBjbG9zZShnZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNtaXNzZXMgdGhlIHBvcG92ZXIgd2hlbiB0aGUgbmV4dCBnZXN0dXJlIHN0YXJ0cyBvdXRzaWRlIGl0LiBMaXN0ZW5pbmcgZm9yIGBwb2ludGVyZG93bmBcbiAgICAgKiByYXRoZXIgdGhhbiBgY2xpY2tgIG1hdHRlcnM6IGEgcG9wb3ZlciBpcyB0eXBpY2FsbHkgb3BlbmVkIGZyb20gYSBgY2xpY2tgIGhhbmRsZXIsIGFuZCB0aGUgdmVyeVxuICAgICAqIHNhbWUgY2xpY2sgd291bGQgb3RoZXJ3aXNlIHJlYWNoIHRoaXMgbGlzdGVuZXIgYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHRoZSBpbnN0YW50IGl0IGFwcGVhcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gJGV2ZW50IC0gVGhlIHBvaW50ZXIgZXZlbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlUG9pbnRlckRvd24oJGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmICgkZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMocG9wb3ZlckVsKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRWYWx1ZSA9IGJ1aWxkKHtcbiAgICAgIGNhbmNlbDogaGFuZGxlQ2FuY2VsLFxuICAgICAgY29uZmlybTogaGFuZGxlT2ssXG4gICAgICBjb250ZW50RWw6IHBvcG92ZXJFbFxuICAgIH0pO1xuXG4gICAgcG9wb3ZlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoJGV2ZW50LmtleSAhPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9uc1NldHRpbmcgPSBuZXcgU2V0dGluZyhwb3BvdmVyRWwpO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQob2tCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLm9rKSlcbiAgICAgICAgLnNldEN0YSgpXG4gICAgICAgIC5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbilcbiAgICAgICAgLm9uQ2xpY2soaGFuZGxlT2spO1xuICAgIH0pO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQoY2FuY2VsQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5jYW5jZWwpKVxuICAgICAgICAuc2V0Q2xhc3MoQ3NzQ2xhc3MuQ2FuY2VsQnV0dG9uKVxuICAgICAgICAub25DbGljayhoYW5kbGVDYW5jZWwpO1xuICAgIH0pO1xuXG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24sIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICBwb3NpdGlvbkF0QW5jaG9yKHBvcG92ZXJFbCwgYW5jaG9yLCB3aW4pO1xuICAgIGZvY3VzRmlyc3RJbnB1dChwb3BvdmVyRWwpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBGb2N1c2VzIGFuZCBzZWxlY3RzIHRoZSBwb3BvdmVyJ3MgZmlyc3QgdGV4dCBpbnB1dCwgc28gdGhlIHVzZXIgY2FuIHR5cGUgc3RyYWlnaHQgYXdheS5cbiAqXG4gKiBAcGFyYW0gcG9wb3ZlckVsIC0gVGhlIHBvcG92ZXIgdG8gZm9jdXMgd2l0aGluLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0SW5wdXQocG9wb3ZlckVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICBjb25zdCBpbnB1dEVsID0gcG9wb3ZlckVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gIGlmICghaW5wdXRFbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlucHV0RWwuZm9jdXMoKTtcbiAgaW5wdXRFbC5zZWxlY3QoKTtcbn1cblxuLyoqXG4gKiBQbGFjZXMgdGhlIHBvcG92ZXIganVzdCBiZWxvdyB0aGUgYW5jaG9yLCBwdWxsaW5nIGl0IGJhY2sgaW5zaWRlIHRoZSB3aW5kb3cgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2VcbiAqIG92ZXJmbG93IOKAlCBhbiBhbmNob3IgbmVhciB0aGUgcmlnaHQgb3IgYm90dG9tIGVkZ2UgaXMgZXhhY3RseSB3aGVyZSBhbiB1bmNsYW1wZWQgcG9wb3ZlciB3b3VsZFxuICogcmVuZGVyIG9mZi1zY3JlZW4uXG4gKlxuICogQHBhcmFtIHBvcG92ZXJFbCAtIFRoZSBwb3BvdmVyIHRvIHBvc2l0aW9uLlxuICogQHBhcmFtIGFuY2hvciAtIFdoZXJlIHRoZSBwb3BvdmVyIGJlbG9uZ3MuXG4gKiBAcGFyYW0gd2luIC0gVGhlIHdpbmRvdyB0aGUgYW5jaG9yIGxpdmVzIGluIChhIHBvcC1vdXQgd2luZG93IGhhcyBpdHMgb3duKS5cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb25BdEFuY2hvcihwb3BvdmVyRWw6IEhUTUxFbGVtZW50LCBhbmNob3I6IFBvcG92ZXJBbmNob3IsIHdpbjogV2luZG93KTogdm9pZCB7XG4gIGNvbnN0IG1heExlZnQgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJXaWR0aCAtIHBvcG92ZXJFbC5vZmZzZXRXaWR0aCAtIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpO1xuICBjb25zdCBtYXhUb3AgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJIZWlnaHQgLSBwb3BvdmVyRWwub2Zmc2V0SGVpZ2h0IC0gVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyk7XG5cbiAgY29uc3QgbGVmdCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5sZWZ0LCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKSwgbWF4TGVmdCk7XG4gIGNvbnN0IHRvcCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5ib3R0b20gKyBBTkNIT1JfR0FQX0lOX1BJWEVMUywgVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyksIG1heFRvcCk7XG5cbiAgcG9wb3ZlckVsLnN0eWxlLmxlZnQgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZChsZWZ0ICsgd2luLnNjcm9sbFgpKX1weGA7XG4gIHBvcG92ZXJFbC5zdHlsZS50b3AgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZCh0b3AgKyB3aW4uc2Nyb2xsWSkpfXB4YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EsMEJBQWtDO0FBQ2xDLHNCQUF3QjtBQUl4Qix1QkFBeUI7QUFDekIsa0JBQWtCO0FBQ2xCLDRCQUFvQztBQUtwQyxNQUFNLHVCQUF1QjtBQU03QixNQUFNLDRCQUE0QjtBQXlFbEMsZUFBc0IsWUFBbUIsUUFBeUQ7QUFDaEcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosUUFBTSxNQUFNLE9BQU87QUFDbkIsUUFBTSxVQUFNLHVDQUFrQixHQUFHO0FBQ2pDLFFBQU0sWUFBWSxJQUFJLEtBQUssVUFBVSxFQUFFLEtBQUssT0FBTyxDQUFDO0FBQ3BELGlEQUFvQixXQUFXLENBQUMsMEJBQVMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFFdEUsU0FBTyxNQUFNLElBQUksUUFBc0IsQ0FBQyxZQUFZO0FBQ2xELFVBQU0sUUFBUSxFQUFFLFVBQVUsTUFBTTtBQUVoQyxhQUFTLE1BQU0sUUFBNEI7QUFDekMsVUFBSSxNQUFNLFVBQVU7QUFDbEI7QUFBQSxNQUNGO0FBQ0EsWUFBTSxXQUFXO0FBQ2pCLFVBQUksb0JBQW9CLGVBQWUsbUJBQW1CLElBQUk7QUFDOUQsZ0JBQVUsT0FBTztBQUNqQixjQUFRLE1BQU07QUFBQSxJQUNoQjtBQUVBLGFBQVMsZUFBcUI7QUFDNUIsWUFBTSxJQUFJO0FBQUEsSUFDWjtBQUVBLGFBQVMsV0FBaUI7QUFDeEIsWUFBTSxTQUFTLENBQUM7QUFBQSxJQUNsQjtBQVNBLGFBQVMsa0JBQWtCLFFBQTRCO0FBQ3JELFVBQUksT0FBTyxhQUFhLEVBQUUsU0FBUyxTQUFTLEdBQUc7QUFDN0M7QUFBQSxNQUNGO0FBQ0EsWUFBTSxJQUFJO0FBQUEsSUFDWjtBQUVBLFVBQU0sV0FBVyxNQUFNO0FBQUEsTUFDckIsUUFBUTtBQUFBLE1BQ1IsU0FBUztBQUFBLE1BQ1QsV0FBVztBQUFBLElBQ2IsQ0FBQztBQUVELGNBQVUsaUJBQWlCLFdBQVcsQ0FBQyxXQUEwQjtBQUMvRCxVQUFJLE9BQU8sUUFBUSxTQUFTO0FBQzFCLGVBQU8sZUFBZTtBQUN0QixpQkFBUztBQUNUO0FBQUEsTUFDRjtBQUVBLFVBQUksT0FBTyxRQUFRLFVBQVU7QUFDM0I7QUFBQSxNQUNGO0FBRUEsYUFBTyxlQUFlO0FBQ3RCLG1CQUFhO0FBQUEsSUFDZixDQUFDO0FBRUQsVUFBTSxpQkFBaUIsSUFBSSx3QkFBUSxTQUFTO0FBQzVDLG1CQUFlLFVBQVUsQ0FBQyxXQUFXO0FBQ25DLGFBQ0csY0FBYyxvQkFBZ0IsZUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxFQUFFLENBQUMsRUFDckUsT0FBTyxFQUNQLFNBQVMsMEJBQVMsUUFBUSxFQUMxQixRQUFRLFFBQVE7QUFBQSxJQUNyQixDQUFDO0FBQ0QsbUJBQWUsVUFBVSxDQUFDLFdBQVc7QUFDbkMsYUFDRyxjQUFjLHdCQUFvQixlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLE1BQU0sQ0FBQyxFQUM3RSxTQUFTLDBCQUFTLFlBQVksRUFDOUIsUUFBUSxZQUFZO0FBQUEsSUFDekIsQ0FBQztBQUVELFFBQUksaUJBQWlCLGVBQWUsbUJBQW1CLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFDeEUscUJBQWlCLFdBQVcsUUFBUSxHQUFHO0FBQ3ZDLG9CQUFnQixTQUFTO0FBQUEsRUFDM0IsQ0FBQztBQUNIO0FBT0EsU0FBUyxnQkFBZ0IsV0FBOEI7QUFDckQsUUFBTSxVQUFVLFVBQVUsY0FBYyxPQUFPO0FBQy9DLE1BQUksQ0FBQyxTQUFTO0FBQ1o7QUFBQSxFQUNGO0FBRUEsVUFBUSxNQUFNO0FBQ2QsVUFBUSxPQUFPO0FBQ2pCO0FBV0EsU0FBUyxpQkFBaUIsV0FBd0IsUUFBdUIsS0FBbUI7QUFDMUYsUUFBTSxVQUFVLEtBQUssSUFBSSwyQkFBMkIsSUFBSSxhQUFhLFVBQVUsY0FBYyx5QkFBeUI7QUFDdEgsUUFBTSxTQUFTLEtBQUssSUFBSSwyQkFBMkIsSUFBSSxjQUFjLFVBQVUsZUFBZSx5QkFBeUI7QUFFdkgsUUFBTSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxNQUFNLHlCQUF5QixHQUFHLE9BQU87QUFDL0UsUUFBTSxNQUFNLEtBQUssSUFBSSxLQUFLLElBQUksT0FBTyxTQUFTLHNCQUFzQix5QkFBeUIsR0FBRyxNQUFNO0FBRXRHLFlBQVUsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLE1BQU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLFlBQVUsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFOyIsIm5hbWVzIjpbXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIHNtYWxsIGZsb2F0aW5nIHBhbmVsIGFuY2hvcmVkIGF0IGEgcG9pbnQsIGNvbGxlY3RpbmcgYSB2YWx1ZSBhbmQgcmVzb2x2aW5nIGEgcHJvbWlzZSB3aXRoIGl0LlxuICpcbiAqIFRoaXMgaXMgdGhlIHBvcG92ZXIgY291bnRlcnBhcnQgb2YgYG1vZGFscy9tb2RhbC50c2A6IHRoZSBzYW1lIFwiYXNrIHRoZSB1c2VyIGZvciBhIHZhbHVlLCByZXNvbHZlIGFcbiAqIHByb21pc2VcIiBzaGFwZSwgZm9yIHRoZSBjYXNlcyBhIG1vZGFsIGNhbm5vdCBzZXJ2ZS4gQSBtb2RhbCBkaW1zIHRoZSBzY3JlZW4gYW5kIGlzIHBvc2l0aW9uZWQgYnlcbiAqIE9ic2lkaWFuLCBuZWl0aGVyIG9mIHdoaWNoIHN1aXRzIGFuIGVkaXRvciB0aGF0IG11c3QgYXBwZWFyICphdCogdGhlIHRoaW5nIGl0IGVkaXRzIOKAlCBhIGNsaWNrZWRcbiAqIGxpbmssIHRoZSBjYXJldCwgb3Igd2hlcmV2ZXIgYSBjb250ZXh0IG1lbnUgd2FzIHJhaXNlZC5cbiAqXG4gKiBUaGUgcGFuZWwgcmlkZXMgT2JzaWRpYW4ncyBgLm1lbnVgIGNsYXNzIGZvciBpdHMgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzaGFkb3csIHNvIG9ubHkgbGF5b3V0IGlzXG4gKiBzdHlsZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCB7IGdldERvY3VtZW50V2luZG93IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5pbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBUaGUgZ2FwIGluIHBpeGVscyBiZXR3ZWVuIHRoZSBhbmNob3IgYW5kIHRoZSBwb3BvdmVyLlxuICovXG5jb25zdCBBTkNIT1JfR0FQX0lOX1BJWEVMUyA9IDQ7XG5cbi8qKlxuICogVGhlIG1pbmltdW0gZ2FwIGluIHBpeGVscyB0aGUgcG9wb3ZlciBrZWVwcyBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgd2luZG93IHdoZW4gaXQgaGFzIHRvIGJlIGNsYW1wZWRcbiAqIGJhY2sgaW50byB2aWV3LlxuICovXG5jb25zdCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTID0gODtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgdGhlIHBvcG92ZXIgcmVzb2x2ZXMgd2l0aCB3aGVuIGl0IGlzIGNvbmZpcm1lZC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlc29sdmVkIGJ5IHRoZSBwb3BvdmVyLlxuICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT4gPSAoKSA9PiBWYWx1ZTtcblxuLyoqXG4gKiBUaGUgdG9vbHMgaGFuZGVkIHRvIHtAbGluayBTaG93UG9wb3ZlclBhcmFtcy5idWlsZH0gZm9yIHBvcHVsYXRpbmcgYSBwb3BvdmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dQb3BvdmVyQnVpbGRQYXJhbXMge1xuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCBgbnVsbGAsIGFzIHRoZSBDYW5jZWwgYnV0dG9uIGRvZXMuXG4gICAqL1xuICByZWFkb25seSBjYW5jZWw6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIGFzIHRoZSBPSyBidXR0b24gZG9lcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpcm06ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFkZCB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgdG8uIFRoZSBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMgYXJlIGFwcGVuZGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEVsOiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvd1BvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHBvcG92ZXIncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRvb2xzIGZvciBwb3B1bGF0aW5nIHRoZSBwb3BvdmVyLlxuICAgKiBAcmV0dXJucyBBIGdldHRlciByZWFkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGQ6IChwYXJhbXM6IFNob3dQb3BvdmVyQnVpbGRQYXJhbXMpID0+IFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT47XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIHBvcG92ZXIgYXQgdGhlIGdpdmVuIGFuY2hvciBhbmQgcmVzb2x2ZXMgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIG9yIGBudWxsYCBpZiBpdCB3YXNcbiAqIGRpc21pc3NlZCB3aXRob3V0IGNvbmZpcm1pbmcuXG4gKlxuICogQHR5cGVQYXJhbSBWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSByZXNvbHZlZCBieSB0aGUgcG9wb3Zlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJ1aWx0IHZhbHVlLCBvciBgbnVsbGAgaWYgZGlzbWlzc2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd1BvcG92ZXI8VmFsdWU+KHBhcmFtczogU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+KTogUHJvbWlzZTxudWxsIHwgVmFsdWU+IHtcbiAgY29uc3Qge1xuICAgIGFuY2hvcixcbiAgICBidWlsZCxcbiAgICBjYW5jZWxCdXR0b25UZXh0LFxuICAgIGNzc0NsYXNzZXMsXG4gICAgb2tCdXR0b25UZXh0XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZG9jID0gYW5jaG9yLmRvYztcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgY29uc3QgcG9wb3ZlckVsID0gZG9jLmJvZHkuY3JlYXRlRGl2KHsgY2xzOiAnbWVudScgfSk7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMocG9wb3ZlckVsLCBbQ3NzQ2xhc3MuUG9wb3ZlciwgLi4uY3NzQ2xhc3NlcyA/PyBbXV0pO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxudWxsIHwgVmFsdWU+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IGlzQ2xvc2VkOiBmYWxzZSB9O1xuXG4gICAgZnVuY3Rpb24gY2xvc2UocmVzdWx0OiBudWxsIHwgVmFsdWUpOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZS5pc0Nsb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGF0ZS5pc0Nsb3NlZCA9IHRydWU7XG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgICBwb3BvdmVyRWwucmVtb3ZlKCk7XG4gICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlT2soKTogdm9pZCB7XG4gICAgICBjbG9zZShnZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNtaXNzZXMgdGhlIHBvcG92ZXIgd2hlbiB0aGUgbmV4dCBnZXN0dXJlIHN0YXJ0cyBvdXRzaWRlIGl0LiBMaXN0ZW5pbmcgZm9yIGBwb2ludGVyZG93bmBcbiAgICAgKiByYXRoZXIgdGhhbiBgY2xpY2tgIG1hdHRlcnM6IGEgcG9wb3ZlciBpcyB0eXBpY2FsbHkgb3BlbmVkIGZyb20gYSBgY2xpY2tgIGhhbmRsZXIsIGFuZCB0aGUgdmVyeVxuICAgICAqIHNhbWUgY2xpY2sgd291bGQgb3RoZXJ3aXNlIHJlYWNoIHRoaXMgbGlzdGVuZXIgYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHRoZSBpbnN0YW50IGl0IGFwcGVhcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gJGV2ZW50IC0gVGhlIHBvaW50ZXIgZXZlbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlUG9pbnRlckRvd24oJGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmICgkZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMocG9wb3ZlckVsKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRWYWx1ZSA9IGJ1aWxkKHtcbiAgICAgIGNhbmNlbDogaGFuZGxlQ2FuY2VsLFxuICAgICAgY29uZmlybTogaGFuZGxlT2ssXG4gICAgICBjb250ZW50RWw6IHBvcG92ZXJFbFxuICAgIH0pO1xuXG4gICAgcG9wb3ZlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoJGV2ZW50LmtleSAhPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9uc1NldHRpbmcgPSBuZXcgU2V0dGluZyhwb3BvdmVyRWwpO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQob2tCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLm9rKSlcbiAgICAgICAgLnNldEN0YSgpXG4gICAgICAgIC5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbilcbiAgICAgICAgLm9uQ2xpY2soaGFuZGxlT2spO1xuICAgIH0pO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQoY2FuY2VsQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5jYW5jZWwpKVxuICAgICAgICAuc2V0Q2xhc3MoQ3NzQ2xhc3MuQ2FuY2VsQnV0dG9uKVxuICAgICAgICAub25DbGljayhoYW5kbGVDYW5jZWwpO1xuICAgIH0pO1xuXG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24sIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICBwb3NpdGlvbkF0QW5jaG9yKHBvcG92ZXJFbCwgYW5jaG9yLCB3aW4pO1xuICAgIGZvY3VzRmlyc3RJbnB1dChwb3BvdmVyRWwpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBGb2N1c2VzIGFuZCBzZWxlY3RzIHRoZSBwb3BvdmVyJ3MgZmlyc3QgdGV4dCBpbnB1dCwgc28gdGhlIHVzZXIgY2FuIHR5cGUgc3RyYWlnaHQgYXdheS5cbiAqXG4gKiBAcGFyYW0gcG9wb3ZlckVsIC0gVGhlIHBvcG92ZXIgdG8gZm9jdXMgd2l0aGluLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0SW5wdXQocG9wb3ZlckVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICBjb25zdCBpbnB1dEVsID0gcG9wb3ZlckVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gIGlmICghaW5wdXRFbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlucHV0RWwuZm9jdXMoKTtcbiAgaW5wdXRFbC5zZWxlY3QoKTtcbn1cblxuLyoqXG4gKiBQbGFjZXMgdGhlIHBvcG92ZXIganVzdCBiZWxvdyB0aGUgYW5jaG9yLCBwdWxsaW5nIGl0IGJhY2sgaW5zaWRlIHRoZSB3aW5kb3cgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2VcbiAqIG92ZXJmbG93IOKAlCBhbiBhbmNob3IgbmVhciB0aGUgcmlnaHQgb3IgYm90dG9tIGVkZ2UgaXMgZXhhY3RseSB3aGVyZSBhbiB1bmNsYW1wZWQgcG9wb3ZlciB3b3VsZFxuICogcmVuZGVyIG9mZi1zY3JlZW4uXG4gKlxuICogQHBhcmFtIHBvcG92ZXJFbCAtIFRoZSBwb3BvdmVyIHRvIHBvc2l0aW9uLlxuICogQHBhcmFtIGFuY2hvciAtIFdoZXJlIHRoZSBwb3BvdmVyIGJlbG9uZ3MuXG4gKiBAcGFyYW0gd2luIC0gVGhlIHdpbmRvdyB0aGUgYW5jaG9yIGxpdmVzIGluIChhIHBvcC1vdXQgd2luZG93IGhhcyBpdHMgb3duKS5cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb25BdEFuY2hvcihwb3BvdmVyRWw6IEhUTUxFbGVtZW50LCBhbmNob3I6IFBvcG92ZXJBbmNob3IsIHdpbjogV2luZG93KTogdm9pZCB7XG4gIGNvbnN0IG1heExlZnQgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJXaWR0aCAtIHBvcG92ZXJFbC5vZmZzZXRXaWR0aCAtIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpO1xuICBjb25zdCBtYXhUb3AgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJIZWlnaHQgLSBwb3BvdmVyRWwub2Zmc2V0SGVpZ2h0IC0gVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyk7XG5cbiAgY29uc3QgbGVmdCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5sZWZ0LCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKSwgbWF4TGVmdCk7XG4gIGNvbnN0IHRvcCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5ib3R0b20gKyBBTkNIT1JfR0FQX0lOX1BJWEVMUywgVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyksIG1heFRvcCk7XG5cbiAgcG9wb3ZlckVsLnN0eWxlLmxlZnQgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZChsZWZ0ICsgd2luLnNjcm9sbFgpKX1weGA7XG4gIHBvcG92ZXJFbC5zdHlsZS50b3AgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZCh0b3AgKyB3aW4uc2Nyb2xsWSkpfXB4YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLDBCQUFrQztBQUNsQyxzQkFBd0I7QUFJeEIsdUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQiw0QkFBb0M7QUFLcEMsTUFBTSx1QkFBdUI7QUFNN0IsTUFBTSw0QkFBNEI7QUF5RWxDLGVBQXNCLFlBQW1CLFFBQXlEO0FBQ2hHLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sTUFBTSxPQUFPO0FBQ25CLFFBQU0sVUFBTSx1Q0FBa0IsR0FBRztBQUNqQyxRQUFNLFlBQVksSUFBSSxLQUFLLFVBQVUsRUFBRSxLQUFLLE9BQU8sQ0FBQztBQUNwRCxpREFBb0IsV0FBVyxDQUFDLDBCQUFTLFNBQVMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRXRFLFNBQU8sTUFBTSxJQUFJLFFBQXNCLENBQUMsWUFBWTtBQUNsRCxVQUFNLFFBQVEsRUFBRSxVQUFVLE1BQU07QUFFaEMsYUFBUyxNQUFNLFFBQTRCO0FBQ3pDLFVBQUksTUFBTSxVQUFVO0FBQ2xCO0FBQUEsTUFDRjtBQUNBLFlBQU0sV0FBVztBQUNqQixVQUFJLG9CQUFvQixlQUFlLG1CQUFtQixJQUFJO0FBQzlELGdCQUFVLE9BQU87QUFDakIsY0FBUSxNQUFNO0FBQUEsSUFDaEI7QUFFQSxhQUFTLGVBQXFCO0FBQzVCLFlBQU0sSUFBSTtBQUFBLElBQ1o7QUFFQSxhQUFTLFdBQWlCO0FBQ3hCLFlBQU0sU0FBUyxDQUFDO0FBQUEsSUFDbEI7QUFTQSxhQUFTLGtCQUFrQixRQUE0QjtBQUNyRCxVQUFJLE9BQU8sYUFBYSxFQUFFLFNBQVMsU0FBUyxHQUFHO0FBQzdDO0FBQUEsTUFDRjtBQUNBLFlBQU0sSUFBSTtBQUFBLElBQ1o7QUFFQSxVQUFNLFdBQVcsTUFBTTtBQUFBLE1BQ3JCLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxJQUNiLENBQUM7QUFFRCxjQUFVLGlCQUFpQixXQUFXLENBQUMsV0FBMEI7QUFDL0QsVUFBSSxPQUFPLFFBQVEsU0FBUztBQUMxQixlQUFPLGVBQWU7QUFDdEIsaUJBQVM7QUFDVDtBQUFBLE1BQ0Y7QUFFQSxVQUFJLE9BQU8sUUFBUSxVQUFVO0FBQzNCO0FBQUEsTUFDRjtBQUVBLGFBQU8sZUFBZTtBQUN0QixtQkFBYTtBQUFBLElBQ2YsQ0FBQztBQUVELFVBQU0saUJBQWlCLElBQUksd0JBQVEsU0FBUztBQUM1QyxtQkFBZSxVQUFVLENBQUMsV0FBVztBQUNuQyxhQUNHLGNBQWMsb0JBQWdCLGVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLFFBQVEsRUFBRSxDQUFDLEVBQ3JFLE9BQU8sRUFDUCxTQUFTLDBCQUFTLFFBQVEsRUFDMUIsUUFBUSxRQUFRO0FBQUEsSUFDckIsQ0FBQztBQUNELG1CQUFlLFVBQVUsQ0FBQyxXQUFXO0FBQ25DLGFBQ0csY0FBYyx3QkFBb0IsZUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxNQUFNLENBQUMsRUFDN0UsU0FBUywwQkFBUyxZQUFZLEVBQzlCLFFBQVEsWUFBWTtBQUFBLElBQ3pCLENBQUM7QUFFRCxRQUFJLGlCQUFpQixlQUFlLG1CQUFtQixFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ3hFLHFCQUFpQixXQUFXLFFBQVEsR0FBRztBQUN2QyxvQkFBZ0IsU0FBUztBQUFBLEVBQzNCLENBQUM7QUFDSDtBQU9BLFNBQVMsZ0JBQWdCLFdBQThCO0FBQ3JELFFBQU0sVUFBVSxVQUFVLGNBQWMsT0FBTztBQUMvQyxNQUFJLENBQUMsU0FBUztBQUNaO0FBQUEsRUFDRjtBQUVBLFVBQVEsTUFBTTtBQUNkLFVBQVEsT0FBTztBQUNqQjtBQVdBLFNBQVMsaUJBQWlCLFdBQXdCLFFBQXVCLEtBQW1CO0FBQzFGLFFBQU0sVUFBVSxLQUFLLElBQUksMkJBQTJCLElBQUksYUFBYSxVQUFVLGNBQWMseUJBQXlCO0FBQ3RILFFBQU0sU0FBUyxLQUFLLElBQUksMkJBQTJCLElBQUksY0FBYyxVQUFVLGVBQWUseUJBQXlCO0FBRXZILFFBQU0sT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sTUFBTSx5QkFBeUIsR0FBRyxPQUFPO0FBQy9FLFFBQU0sTUFBTSxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sU0FBUyxzQkFBc0IseUJBQXlCLEdBQUcsTUFBTTtBQUV0RyxZQUFVLE1BQU0sT0FBTyxHQUFHLE9BQU8sS0FBSyxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQztBQUNoRSxZQUFVLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQztBQUNoRTsiLCJuYW1lcyI6W119
|
|
@@ -50,7 +50,8 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
50
50
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
51
51
|
return originalRequire?.(id);
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
const app = globalThis.app;
|
|
54
|
+
if (app?.isMobile) {
|
|
54
55
|
if (id === "process" || id === "node:process") {
|
|
55
56
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
56
57
|
return process;
|
|
@@ -123,4 +124,4 @@ function isPropertyEntry(entry) {
|
|
|
123
124
|
checkPropertyEntryMatches,
|
|
124
125
|
isPropertyEntry
|
|
125
126
|
});
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1lbnRyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGBwcm9wZXJ0eTpuYW1lYCAvIGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBlbnRyeSBzeW50YXggc2hhcmVkIGJ5IHRoZSBzZXR0aW5ncyBsaXN0cyB0aGF0IGNhbiBtYXRjaCBhIG5vdGUgYnkgaXRzIGZyb250bWF0dGVyLlxuICpcbiAqIFR3byBsaXN0cyByZWFkIGl0IHRvZGF5OiBub3RlIHByaW9yaXRpZXMgKGBmaW5kTm90ZVByaW9yaXR5UmFua2ApIGFuZCB0aGUgYXR0YWNobWVudCBleHRlbnNpb25zIG9mIGBpc1RyZWF0ZWRBc0F0dGFjaG1lbnRgLlxuICogQm90aCBtYXRjaCB0aHJvdWdoIHRoZSBvbmUgZnVuY3Rpb24gaGVyZSwgc28gYW4gZW50cnkgdGhlIHVzZXIgd3JpdGVzIGluIG9uZSBsaXN0IG1lYW5zIGV4YWN0bHkgdGhlIHNhbWUgdGhpbmcgaW4gdGhlIG90aGVyLlxuICovXG5cbi8qKlxuICogVGhlIHByZWZpeCB0aGF0IG1hcmtzIGEgc2V0dGluZ3MgZW50cnkgYXMgYSBmcm9udG1hdHRlciBwcm9wZXJ0eSBtYXRjaC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0VOVFJZX1BSRUZJWCA9ICdwcm9wZXJ0eTonO1xuXG5jb25zdCBQUk9QRVJUWV9WQUxVRV9TRVBBUkFUT1IgPSAnPSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVudHJ5IHRvIG1hdGNoOiBgcHJvcGVydHk6bmFtZWAgbWF0Y2hlcyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyBwcmVzZW50LCBgcHJvcGVydHk6bmFtZT12YWx1ZWAgd2hlbiBpdCByZW5kZXJzIGFzIGB2YWx1ZWAuXG4gICAqL1xuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90ZSdzIGZyb250bWF0dGVyLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZSBvciBpdCBpcyBub3Qga25vd24uXG4gICAqL1xuICByZWFkb25seSBmcm9udG1hdHRlcjogbnVsbCB8IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vdGUncyBmcm9udG1hdHRlciBtYXRjaGVzIGEgYHByb3BlcnR5Om5hbWVgIG9yIGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBlbnRyeS5cbiAqXG4gKiBBIHZhbHVlIGlzIGNvbXBhcmVkIGJ5IGl0cyByZW5kZXJpbmcsIHNpbmNlIGZyb250bWF0dGVyIHZhbHVlcyBhcmUgd2hhdGV2ZXIgWUFNTCBwcm9kdWNlZCwgYW5kIGFuIGFycmF5IG1hdGNoZXMgd2hlbiBhbnkgb2YgaXRzIGl0ZW1zIGRvZXMsXG4gKiB3aGljaCBpcyBob3cgdGFnLWxpa2UgcHJvcGVydGllcyByZWFkLiBBbiBlbnRyeSB3aXRob3V0IHRoZSB7QGxpbmsgUFJPUEVSVFlfRU5UUllfUFJFRklYfSBtYXRjaGVzIG5vdGhpbmcuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbnRyeSBhbmQgdGhlIGZyb250bWF0dGVyIHRvIG1hdGNoIGl0IGFnYWluc3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBmcm9udG1hdHRlciBtYXRjaGVzIHRoZSBlbnRyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMocGFyYW1zOiBDaGVja1Byb3BlcnR5RW50cnlNYXRjaGVzUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHtcbiAgICBlbnRyeSxcbiAgICBmcm9udG1hdHRlclxuICB9ID0gcGFyYW1zO1xuICBpZiAoIWZyb250bWF0dGVyIHx8ICFpc1Byb3BlcnR5RW50cnkoZW50cnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc3BlY2lmaWVyID0gZW50cnkuc2xpY2UoUFJPUEVSVFlfRU5UUllfUFJFRklYLmxlbmd0aCk7XG4gIGNvbnN0IHNlcGFyYXRvckluZGV4ID0gc3BlY2lmaWVyLmluZGV4T2YoUFJPUEVSVFlfVkFMVUVfU0VQQVJBVE9SKTtcbiAgaWYgKHNlcGFyYXRvckluZGV4ID09PSAtMSkge1xuICAgIHJldHVybiBPYmplY3QuaGFzT3duKGZyb250bWF0dGVyLCBzcGVjaWZpZXIpO1xuICB9XG5cbiAgY29uc3QgcHJvcGVydHlOYW1lID0gc3BlY2lmaWVyLnNsaWNlKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgY29uc3QgZXhwZWN0ZWRWYWx1ZSA9IHNwZWNpZmllci5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpO1xuICBpZiAoIU9iamVjdC5oYXNPd24oZnJvbnRtYXR0ZXIsIHByb3BlcnR5TmFtZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBhY3R1YWxWYWx1ZSA9IGZyb250bWF0dGVyW3Byb3BlcnR5TmFtZV07XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFjdHVhbFZhbHVlKSA/IGFjdHVhbFZhbHVlLnNvbWUoKGl0ZW0pID0+
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1lbnRyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGBwcm9wZXJ0eTpuYW1lYCAvIGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBlbnRyeSBzeW50YXggc2hhcmVkIGJ5IHRoZSBzZXR0aW5ncyBsaXN0cyB0aGF0IGNhbiBtYXRjaCBhIG5vdGUgYnkgaXRzIGZyb250bWF0dGVyLlxuICpcbiAqIFR3byBsaXN0cyByZWFkIGl0IHRvZGF5OiBub3RlIHByaW9yaXRpZXMgKGBmaW5kTm90ZVByaW9yaXR5UmFua2ApIGFuZCB0aGUgYXR0YWNobWVudCBleHRlbnNpb25zIG9mIGBpc1RyZWF0ZWRBc0F0dGFjaG1lbnRgLlxuICogQm90aCBtYXRjaCB0aHJvdWdoIHRoZSBvbmUgZnVuY3Rpb24gaGVyZSwgc28gYW4gZW50cnkgdGhlIHVzZXIgd3JpdGVzIGluIG9uZSBsaXN0IG1lYW5zIGV4YWN0bHkgdGhlIHNhbWUgdGhpbmcgaW4gdGhlIG90aGVyLlxuICovXG5cbi8qKlxuICogVGhlIHByZWZpeCB0aGF0IG1hcmtzIGEgc2V0dGluZ3MgZW50cnkgYXMgYSBmcm9udG1hdHRlciBwcm9wZXJ0eSBtYXRjaC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0VOVFJZX1BSRUZJWCA9ICdwcm9wZXJ0eTonO1xuXG5jb25zdCBQUk9QRVJUWV9WQUxVRV9TRVBBUkFUT1IgPSAnPSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVudHJ5IHRvIG1hdGNoOiBgcHJvcGVydHk6bmFtZWAgbWF0Y2hlcyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyBwcmVzZW50LCBgcHJvcGVydHk6bmFtZT12YWx1ZWAgd2hlbiBpdCByZW5kZXJzIGFzIGB2YWx1ZWAuXG4gICAqL1xuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90ZSdzIGZyb250bWF0dGVyLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZSBvciBpdCBpcyBub3Qga25vd24uXG4gICAqL1xuICByZWFkb25seSBmcm9udG1hdHRlcjogbnVsbCB8IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vdGUncyBmcm9udG1hdHRlciBtYXRjaGVzIGEgYHByb3BlcnR5Om5hbWVgIG9yIGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBlbnRyeS5cbiAqXG4gKiBBIHZhbHVlIGlzIGNvbXBhcmVkIGJ5IGl0cyByZW5kZXJpbmcsIHNpbmNlIGZyb250bWF0dGVyIHZhbHVlcyBhcmUgd2hhdGV2ZXIgWUFNTCBwcm9kdWNlZCwgYW5kIGFuIGFycmF5IG1hdGNoZXMgd2hlbiBhbnkgb2YgaXRzIGl0ZW1zIGRvZXMsXG4gKiB3aGljaCBpcyBob3cgdGFnLWxpa2UgcHJvcGVydGllcyByZWFkLiBBbiBlbnRyeSB3aXRob3V0IHRoZSB7QGxpbmsgUFJPUEVSVFlfRU5UUllfUFJFRklYfSBtYXRjaGVzIG5vdGhpbmcuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbnRyeSBhbmQgdGhlIGZyb250bWF0dGVyIHRvIG1hdGNoIGl0IGFnYWluc3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBmcm9udG1hdHRlciBtYXRjaGVzIHRoZSBlbnRyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMocGFyYW1zOiBDaGVja1Byb3BlcnR5RW50cnlNYXRjaGVzUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHtcbiAgICBlbnRyeSxcbiAgICBmcm9udG1hdHRlclxuICB9ID0gcGFyYW1zO1xuICBpZiAoIWZyb250bWF0dGVyIHx8ICFpc1Byb3BlcnR5RW50cnkoZW50cnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc3BlY2lmaWVyID0gZW50cnkuc2xpY2UoUFJPUEVSVFlfRU5UUllfUFJFRklYLmxlbmd0aCk7XG4gIGNvbnN0IHNlcGFyYXRvckluZGV4ID0gc3BlY2lmaWVyLmluZGV4T2YoUFJPUEVSVFlfVkFMVUVfU0VQQVJBVE9SKTtcbiAgaWYgKHNlcGFyYXRvckluZGV4ID09PSAtMSkge1xuICAgIHJldHVybiBPYmplY3QuaGFzT3duKGZyb250bWF0dGVyLCBzcGVjaWZpZXIpO1xuICB9XG5cbiAgY29uc3QgcHJvcGVydHlOYW1lID0gc3BlY2lmaWVyLnNsaWNlKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgY29uc3QgZXhwZWN0ZWRWYWx1ZSA9IHNwZWNpZmllci5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpO1xuICBpZiAoIU9iamVjdC5oYXNPd24oZnJvbnRtYXR0ZXIsIHByb3BlcnR5TmFtZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBhY3R1YWxWYWx1ZSA9IGZyb250bWF0dGVyW3Byb3BlcnR5TmFtZV07XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFjdHVhbFZhbHVlKSA/IGFjdHVhbFZhbHVlLnNvbWUoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSA9PT0gZXhwZWN0ZWRWYWx1ZSkgOiBTdHJpbmcoYWN0dWFsVmFsdWUpID09PSBleHBlY3RlZFZhbHVlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgc2V0dGluZ3MgZW50cnkgaXMgYSBmcm9udG1hdHRlciBwcm9wZXJ0eSBtYXRjaC5cbiAqXG4gKiBAcGFyYW0gZW50cnkgLSBUaGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBlbnRyeSBzdGFydHMgd2l0aCB7QGxpbmsgUFJPUEVSVFlfRU5UUllfUFJFRklYfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvcGVydHlFbnRyeShlbnRyeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBlbnRyeS5zdGFydHNXaXRoKFBST1BFUlRZX0VOVFJZX1BSRUZJWCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWU8sTUFBTSx3QkFBd0I7QUFFckMsTUFBTSwyQkFBMkI7QUEwQjFCLFNBQVMsMEJBQTBCLFFBQWtEO0FBQzFGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEtBQUssR0FBRztBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sWUFBWSxNQUFNLE1BQU0sc0JBQXNCLE1BQU07QUFDMUQsUUFBTSxpQkFBaUIsVUFBVSxRQUFRLHdCQUF3QjtBQUNqRSxNQUFJLG1CQUFtQixJQUFJO0FBQ3pCLFdBQU8sT0FBTyxPQUFPLGFBQWEsU0FBUztBQUFBLEVBQzdDO0FBRUEsUUFBTSxlQUFlLFVBQVUsTUFBTSxHQUFHLGNBQWM7QUFDdEQsUUFBTSxnQkFBZ0IsVUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE1BQUksQ0FBQyxPQUFPLE9BQU8sYUFBYSxZQUFZLEdBQUc7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGNBQWMsWUFBWSxZQUFZO0FBQzVDLFNBQU8sTUFBTSxRQUFRLFdBQVcsSUFBSSxZQUFZLEtBQUssQ0FBQyxTQUFTLE9BQU8sSUFBSSxNQUFNLGFBQWEsSUFBSSxPQUFPLFdBQVcsTUFBTTtBQUMzSDtBQVFPLFNBQVMsZ0JBQWdCLE9BQXdCO0FBQ3RELFNBQU8sTUFBTSxXQUFXLHFCQUFxQjtBQUMvQzsiLCJuYW1lcyI6W119
|