@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.
Files changed (215) hide show
  1. package/dist/lib/cjs/__merged.cjs +9 -2
  2. package/dist/lib/cjs/__merged.d.cts +2 -2
  3. package/dist/lib/cjs/active-file-provider.cjs +3 -2
  4. package/dist/lib/cjs/app.cjs +3 -2
  5. package/dist/lib/cjs/async-with-notice.cjs +3 -2
  6. package/dist/lib/cjs/attachment-path.cjs +3 -2
  7. package/dist/lib/cjs/attachment-unit-folder.cjs +3 -2
  8. package/dist/lib/cjs/backlink-index.cjs +3 -2
  9. package/dist/lib/cjs/backlink.cjs +3 -2
  10. package/dist/lib/cjs/bases-view-registrar.cjs +3 -2
  11. package/dist/lib/cjs/callout.cjs +3 -2
  12. package/dist/lib/cjs/canvas.cjs +3 -2
  13. package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -2
  14. package/dist/lib/cjs/code-block-markdown-information.cjs +3 -2
  15. package/dist/lib/cjs/code-block-reg-exp.cjs +3 -2
  16. package/dist/lib/cjs/codemirror/index.cjs +3 -2
  17. package/dist/lib/cjs/codemirror/state-field-spec.cjs +3 -2
  18. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +3 -2
  19. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +3 -2
  20. package/dist/lib/cjs/command-handlers/command-handler.cjs +3 -2
  21. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +3 -2
  22. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -2
  23. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -2
  24. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +3 -2
  25. package/dist/lib/cjs/command-handlers/index.cjs +3 -2
  26. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +3 -2
  27. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +3 -2
  28. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +3 -2
  29. package/dist/lib/cjs/command-registrar.cjs +3 -2
  30. package/dist/lib/cjs/community-plugins.cjs +47 -4
  31. package/dist/lib/cjs/community-plugins.d.cts +36 -1
  32. package/dist/lib/cjs/components/abort-signal-component.cjs +3 -2
  33. package/dist/lib/cjs/components/all-windows-event-component.cjs +3 -2
  34. package/dist/lib/cjs/components/async-error-handler-component.cjs +3 -2
  35. package/dist/lib/cjs/components/async-events-component.cjs +3 -2
  36. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +3 -2
  37. package/dist/lib/cjs/components/component-ex.cjs +3 -2
  38. package/dist/lib/cjs/components/console-debug-component.cjs +3 -2
  39. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +3 -2
  40. package/dist/lib/cjs/components/disposable-component.cjs +3 -2
  41. package/dist/lib/cjs/components/embed-extensions-component.cjs +3 -2
  42. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +3 -2
  43. package/dist/lib/cjs/components/index.cjs +3 -2
  44. package/dist/lib/cjs/components/layout-ready-component.cjs +3 -2
  45. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +3 -2
  46. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -2
  47. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +3 -2
  48. package/dist/lib/cjs/components/plugin-context-component.cjs +3 -2
  49. package/dist/lib/cjs/components/plugin-gate-component.cjs +26 -4
  50. package/dist/lib/cjs/components/plugin-gate-component.d.cts +10 -0
  51. package/dist/lib/cjs/components/plugin-notice-component.cjs +3 -2
  52. package/dist/lib/cjs/components/plugin-settings-component.cjs +3 -2
  53. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +3 -2
  54. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +3 -2
  55. package/dist/lib/cjs/components/pointer-position-component.cjs +3 -2
  56. package/dist/lib/cjs/components/registry-component.cjs +3 -2
  57. package/dist/lib/cjs/components/release-notes-component.cjs +3 -2
  58. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +3 -2
  59. package/dist/lib/cjs/components/rmdir-guard-component.cjs +3 -2
  60. package/dist/lib/cjs/components/settings-migration-component.cjs +3 -2
  61. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -2
  62. package/dist/lib/cjs/components/templates-language-component.cjs +3 -2
  63. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +3 -2
  64. package/dist/lib/cjs/constructors/index.cjs +3 -2
  65. package/dist/lib/cjs/css-class.cjs +3 -2
  66. package/dist/lib/cjs/data-handler.cjs +3 -2
  67. package/dist/lib/cjs/dataview-link.cjs +3 -2
  68. package/dist/lib/cjs/dataview.cjs +3 -2
  69. package/dist/lib/cjs/debug.cjs +3 -2
  70. package/dist/lib/cjs/demo-vault-helper-settings.cjs +3 -2
  71. package/dist/lib/cjs/demo-vault-helper.cjs +3 -2
  72. package/dist/lib/cjs/demo-vault-naming.cjs +3 -2
  73. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +3 -2
  74. package/dist/lib/cjs/desktop-trusted-input.cjs +3 -2
  75. package/dist/lib/cjs/editor-extension-registrar.cjs +3 -2
  76. package/dist/lib/cjs/editor-suggest-registrar.cjs +3 -2
  77. package/dist/lib/cjs/editor.cjs +3 -2
  78. package/dist/lib/cjs/events.cjs +3 -2
  79. package/dist/lib/cjs/extensions-registrar.cjs +3 -2
  80. package/dist/lib/cjs/file-change.cjs +3 -2
  81. package/dist/lib/cjs/file-explorer.cjs +3 -2
  82. package/dist/lib/cjs/file-manager.cjs +3 -2
  83. package/dist/lib/cjs/file-system.cjs +3 -2
  84. package/dist/lib/cjs/folder-note.cjs +3 -2
  85. package/dist/lib/cjs/frontmatter-formatting.cjs +3 -2
  86. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +3 -2
  87. package/dist/lib/cjs/frontmatter.cjs +3 -2
  88. package/dist/lib/cjs/generated-during-build.cjs +4 -3
  89. package/dist/lib/cjs/hover-link-source-registrar.cjs +3 -2
  90. package/dist/lib/cjs/html-element.cjs +3 -2
  91. package/dist/lib/cjs/i18n/custom-type-options.cjs +3 -2
  92. package/dist/lib/cjs/i18n/default-translations.cjs +3 -2
  93. package/dist/lib/cjs/i18n/i18n.cjs +3 -2
  94. package/dist/lib/cjs/i18n/index.cjs +3 -2
  95. package/dist/lib/cjs/i18n/locales/en.cjs +7 -2
  96. package/dist/lib/cjs/i18n/locales/en.d.cts +4 -0
  97. package/dist/lib/cjs/i18n/locales/index.cjs +3 -2
  98. package/dist/lib/cjs/i18n/locales/translations-map.cjs +3 -2
  99. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +4 -0
  100. package/dist/lib/cjs/index.cjs +3 -2
  101. package/dist/lib/cjs/is-in-obsidian.cjs +3 -2
  102. package/dist/lib/cjs/library-styles.cjs +3 -2
  103. package/dist/lib/cjs/library.cjs +3 -2
  104. package/dist/lib/cjs/link-name.cjs +3 -2
  105. package/dist/lib/cjs/link-update-progress.cjs +3 -2
  106. package/dist/lib/cjs/link.cjs +3 -2
  107. package/dist/lib/cjs/logger.cjs +3 -2
  108. package/dist/lib/cjs/loop.cjs +3 -2
  109. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +3 -2
  110. package/dist/lib/cjs/markdown-code-block-processor.cjs +3 -2
  111. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +3 -2
  112. package/dist/lib/cjs/markdown-view.cjs +3 -2
  113. package/dist/lib/cjs/markdown.cjs +3 -2
  114. package/dist/lib/cjs/menu-event-registrar.cjs +3 -2
  115. package/dist/lib/cjs/metadata-cache.cjs +19 -3
  116. package/dist/lib/cjs/mobile-trusted-input.cjs +3 -2
  117. package/dist/lib/cjs/modals/alert.cjs +3 -2
  118. package/dist/lib/cjs/modals/confirm.cjs +3 -2
  119. package/dist/lib/cjs/modals/index.cjs +3 -2
  120. package/dist/lib/cjs/modals/minimizable-modal.cjs +3 -2
  121. package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -2
  122. package/dist/lib/cjs/modals/modal.cjs +3 -2
  123. package/dist/lib/cjs/modals/prompt.cjs +3 -2
  124. package/dist/lib/cjs/modals/select-item.cjs +3 -2
  125. package/dist/lib/cjs/modals/select-option.cjs +3 -2
  126. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +3 -2
  127. package/dist/lib/cjs/note-priority.cjs +3 -2
  128. package/dist/lib/cjs/notebook-navigator.cjs +3 -2
  129. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +3 -2
  130. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +3 -2
  131. package/dist/lib/cjs/obsidian-settings.cjs +3 -2
  132. package/dist/lib/cjs/parse-link.cjs +3 -2
  133. package/dist/lib/cjs/path-settings.cjs +3 -2
  134. package/dist/lib/cjs/pdf.cjs +3 -2
  135. package/dist/lib/cjs/plugin/index.cjs +3 -2
  136. package/dist/lib/cjs/plugin/plugin-api-schema.cjs +3 -2
  137. package/dist/lib/cjs/plugin/plugin-api.cjs +6 -2
  138. package/dist/lib/cjs/plugin/plugin-api.d.cts +10 -0
  139. package/dist/lib/cjs/plugin/plugin-context.cjs +3 -2
  140. package/dist/lib/cjs/plugin/plugin-event-source.cjs +3 -2
  141. package/dist/lib/cjs/plugin/plugin-install-state.cjs +31 -4
  142. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +38 -0
  143. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +3 -2
  144. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +3 -2
  145. package/dist/lib/cjs/plugin/plugin.cjs +3 -2
  146. package/dist/lib/cjs/plugin/settings-migration-api.cjs +3 -2
  147. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +3 -2
  148. package/dist/lib/cjs/popovers/field-popover.cjs +3 -2
  149. package/dist/lib/cjs/popovers/index.cjs +3 -2
  150. package/dist/lib/cjs/popovers/popover-anchor.cjs +3 -2
  151. package/dist/lib/cjs/popovers/popover.cjs +3 -2
  152. package/dist/lib/cjs/property-entry.cjs +3 -2
  153. package/dist/lib/cjs/queue.cjs +3 -2
  154. package/dist/lib/cjs/react/app-context.cjs +3 -2
  155. package/dist/lib/cjs/react/index.cjs +3 -2
  156. package/dist/lib/cjs/reference.cjs +3 -2
  157. package/dist/lib/cjs/resource-lock.cjs +3 -2
  158. package/dist/lib/cjs/resource-url.cjs +3 -2
  159. package/dist/lib/cjs/ribbon-icon-registrar.cjs +3 -2
  160. package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -2
  161. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +3 -2
  162. package/dist/lib/cjs/setting-components/date-component.cjs +3 -2
  163. package/dist/lib/cjs/setting-components/date-time-component.cjs +3 -2
  164. package/dist/lib/cjs/setting-components/email-component.cjs +3 -2
  165. package/dist/lib/cjs/setting-components/file-component.cjs +3 -2
  166. package/dist/lib/cjs/setting-components/index.cjs +3 -2
  167. package/dist/lib/cjs/setting-components/month-component.cjs +3 -2
  168. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -2
  169. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +3 -2
  170. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -2
  171. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +3 -2
  172. package/dist/lib/cjs/setting-components/number-component.cjs +3 -2
  173. package/dist/lib/cjs/setting-components/password-component.cjs +3 -2
  174. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -2
  175. package/dist/lib/cjs/setting-components/telephone-component.cjs +3 -2
  176. package/dist/lib/cjs/setting-components/text-based-component.cjs +3 -2
  177. package/dist/lib/cjs/setting-components/time-component.cjs +3 -2
  178. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -2
  179. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -2
  180. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +3 -2
  181. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +3 -2
  182. package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -2
  183. package/dist/lib/cjs/setting-components/url-component.cjs +3 -2
  184. package/dist/lib/cjs/setting-components/validator-component.cjs +3 -2
  185. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +3 -2
  186. package/dist/lib/cjs/setting-components/week-component.cjs +3 -2
  187. package/dist/lib/cjs/setting-ex.cjs +3 -2
  188. package/dist/lib/cjs/setting-group-ex.cjs +3 -2
  189. package/dist/lib/cjs/status-bar-item-registrar.cjs +3 -2
  190. package/dist/lib/cjs/templater.cjs +3 -2
  191. package/dist/lib/cjs/transformers/duration-transformer.cjs +3 -2
  192. package/dist/lib/cjs/transformers/index.cjs +3 -2
  193. package/dist/lib/cjs/trusted-input.cjs +3 -2
  194. package/dist/lib/cjs/validation.cjs +3 -2
  195. package/dist/lib/cjs/vault-delete.cjs +3 -2
  196. package/dist/lib/cjs/vault-transaction.cjs +3 -2
  197. package/dist/lib/cjs/vault.cjs +3 -2
  198. package/dist/lib/cjs/view-registrar.cjs +3 -2
  199. package/dist/lib/cjs/workspace.cjs +3 -2
  200. package/dist/lib/esm/__merged.d.mts +2 -2
  201. package/dist/lib/esm/__merged.mjs +9 -3
  202. package/dist/lib/esm/community-plugins.d.mts +36 -1
  203. package/dist/lib/esm/community-plugins.mjs +42 -2
  204. package/dist/lib/esm/components/plugin-gate-component.d.mts +10 -0
  205. package/dist/lib/esm/components/plugin-gate-component.mjs +30 -5
  206. package/dist/lib/esm/generated-during-build.mjs +1 -1
  207. package/dist/lib/esm/i18n/locales/en.d.mts +4 -0
  208. package/dist/lib/esm/i18n/locales/en.mjs +5 -1
  209. package/dist/lib/esm/i18n/locales/translations-map.d.mts +4 -0
  210. package/dist/lib/esm/metadata-cache.mjs +17 -2
  211. package/dist/lib/esm/plugin/plugin-api.d.mts +10 -0
  212. package/dist/lib/esm/plugin/plugin-api.mjs +4 -1
  213. package/dist/lib/esm/plugin/plugin-install-state.d.mts +38 -0
  214. package/dist/lib/esm/plugin/plugin-install-state.mjs +30 -3
  215. package/package.json +11 -4
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -95,4 +96,4 @@ const SuggestModalCommandBuilder = import_modal_command_builder.ModalCommandBuil
95
96
  0 && (module.exports = {
96
97
  SuggestModalCommandBuilder
97
98
  });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBmb3JtZXIgaG9tZSBvZiB0aGUgYFN1Z2dlc3RNb2RhbGAgaW5zdHJ1Y3Rpb24tYmFyIGJ1aWxkZXIuXG4gKlxuICogVGhlIGJ1aWxkZXIgaXMgbm8gbG9uZ2VyIHRpZWQgdG8gYFN1Z2dlc3RNb2RhbGAg4oCUIGl0IHJlbmRlcnMgaW50byBhIHBsYWluIGBNb2RhbGAgYW5kIGludG8gYSBiYXJlXG4gKiBlbGVtZW50ICsgYFNjb3BlYCB0b28g4oCUIHNvIGl0IG1vdmVkIHRvIGBtb2RhbC1jb21tYW5kLWJ1aWxkZXIudHNgIHVuZGVyIHRoZSBob25lc3QgbmFtZVxuICoge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9LiBUaGlzIG1vZHVsZSBzdGF5cyBhcyBhIGRlcHJlY2F0ZWQgYWxpYXMgc28gZXhpc3RpbmcgaW1wb3J0ZXJzIGtlZXAgd29ya2luZ1xuICogdW5jaGFuZ2VkOyBpdCByZS1leHBvcnRzIHRoZSB2ZXJ5IHNhbWUgY2xhc3MsIG5vdCBhIGNvcHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG5pbXBvcnQgeyBNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENoZWNrYm94Q29tbWFuZCxcbiAgRHJvcERvd25Db21tYW5kLFxuICBLZXlib2FyZENvbW1hbmRcbn0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBTdWdnZXN0TW9kYWxDb21tYW5kQnVpbGRlci5idWlsZH0uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zfSBmcm9tXG4gKiBgb2JzaWRpYW4tZGV2LXV0aWxzL29ic2lkaWFuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXJgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCB0eXBlIFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zID0gTW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucztcblxuLyoqXG4gKiBCdWlsZHMgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9IGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlcmAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyID0gTW9kYWxDb21tYW5kQnVpbGRlcjtcblxuLyoqXG4gKiBCdWlsZHMgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9IGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlcmAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgU3VnZ2VzdE1vZGFsQ29tbWFuZEJ1aWxkZXIgPSBNb2RhbENvbW1hbmRCdWlsZGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxtQ0FBb0M7QUFzQjdCLE1BQU0sNkJBQTZCOyIsIm5hbWVzIjpbXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBmb3JtZXIgaG9tZSBvZiB0aGUgYFN1Z2dlc3RNb2RhbGAgaW5zdHJ1Y3Rpb24tYmFyIGJ1aWxkZXIuXG4gKlxuICogVGhlIGJ1aWxkZXIgaXMgbm8gbG9uZ2VyIHRpZWQgdG8gYFN1Z2dlc3RNb2RhbGAg4oCUIGl0IHJlbmRlcnMgaW50byBhIHBsYWluIGBNb2RhbGAgYW5kIGludG8gYSBiYXJlXG4gKiBlbGVtZW50ICsgYFNjb3BlYCB0b28g4oCUIHNvIGl0IG1vdmVkIHRvIGBtb2RhbC1jb21tYW5kLWJ1aWxkZXIudHNgIHVuZGVyIHRoZSBob25lc3QgbmFtZVxuICoge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9LiBUaGlzIG1vZHVsZSBzdGF5cyBhcyBhIGRlcHJlY2F0ZWQgYWxpYXMgc28gZXhpc3RpbmcgaW1wb3J0ZXJzIGtlZXAgd29ya2luZ1xuICogdW5jaGFuZ2VkOyBpdCByZS1leHBvcnRzIHRoZSB2ZXJ5IHNhbWUgY2xhc3MsIG5vdCBhIGNvcHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG5pbXBvcnQgeyBNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENoZWNrYm94Q29tbWFuZCxcbiAgRHJvcERvd25Db21tYW5kLFxuICBLZXlib2FyZENvbW1hbmRcbn0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBTdWdnZXN0TW9kYWxDb21tYW5kQnVpbGRlci5idWlsZH0uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zfSBmcm9tXG4gKiBgb2JzaWRpYW4tZGV2LXV0aWxzL29ic2lkaWFuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXJgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCB0eXBlIFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zID0gTW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucztcblxuLyoqXG4gKiBCdWlsZHMgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9IGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlcmAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyID0gTW9kYWxDb21tYW5kQnVpbGRlcjtcblxuLyoqXG4gKiBCdWlsZHMgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIE1vZGFsQ29tbWFuZEJ1aWxkZXJ9IGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbW9kYWxzL21vZGFsLWNvbW1hbmQtYnVpbGRlcmAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgU3VnZ2VzdE1vZGFsQ29tbWFuZEJ1aWxkZXIgPSBNb2RhbENvbW1hbmRCdWlsZGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUEsbUNBQW9DO0FBc0I3QixNQUFNLDZCQUE2QjsiLCJuYW1lcyI6W119
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -212,4 +213,4 @@ function checkEntryMatches(entry, params) {
212
213
  findNotePriorityRank,
213
214
  pickHighestPriorityNotePath
214
215
  });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RlLXByaW9yaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEZWNpZGVzIHdoaWNoIG9mIHNldmVyYWwgbm90ZXMgcmVmZXJlbmNpbmcgdGhlIHNhbWUgYXR0YWNobWVudCBvd25zIGl0LlxuICpcbiAqIEFuIGF0dGFjaG1lbnQgcmVmZXJlbmNlZCBmcm9tIG1vcmUgdGhhbiBvbmUgbm90ZSBoYXMgbm8gc2luZ2xlIGNvcnJlY3QgaG9tZSwgc28gY29sbGVjdGluZyBpdCBmYWxsc1xuICogYmFjayB0byB3aGF0ZXZlciBgY29sbGVjdEF0dGFjaG1lbnRVc2VkQnlNdWx0aXBsZU5vdGVzTW9kZWAgc2F5cyDigJQgc2tpcCwgY29weSwgY2FuY2VsLCBvciBhc2suIEFcbiAqIHByaW9yaXR5IGxpc3QgbGV0cyB0aGUgdXNlciBhbnN3ZXIgdGhlIHF1ZXN0aW9uIG9uY2UgaW5zdGVhZDogcHV0IGAubWRgIGFib3ZlIGAuZXhjYWxpZHJhd2AgYW5kIGFuXG4gKiBpbWFnZSBzaGFyZWQgYnkgYm90aCBsYW5kcyBpbiB0aGUgbWFya2Rvd24gbm90ZSdzIGZvbGRlci5cbiAqXG4gKiBBIHRpZSBpcyBkZWxpYmVyYXRlbHkgTk9UIHJlc29sdmVkIGhlcmUuIFR3byBub3RlcyBvZiBlcXVhbCBwcmlvcml0eSBpcyBleGFjdGx5IHRoZSBhbWJpZ3VpdHkgdGhlXG4gKiBleGlzdGluZyBtb2RlIHNldHRpbmcgYWxyZWFkeSBleGlzdHMgdG8gaGFuZGxlLCBhbmQgaW52ZW50aW5nIGEgc2Vjb25kLCBzaWxlbnQgcnVsZSBmb3IgaXQgd291bGRcbiAqIG1vdmUgYSBmaWxlIHRoZSB1c2VyIG5ldmVyIG5hbWVkLlxuICpcbiAqIFRoZSB0aWUgaXMgYWxzbyB0aGUgd2hvbGUgb2Ygd2hhdCBnZXRzIFJFUE9SVEVELiBBIG5vdGUgdGhlIGxpc3QgcmFua2VkIGJlbG93IHRoZSBiZXN0IHJhbmsgY2Fubm90XG4gKiByZXNvbHZlIHRoZSBhbWJpZ3VpdHksIHNvIGxpc3RpbmcgaXQgb25seSBhZGRzIG5vaXNlIOKAlCBhbmQgd29yc2UgaW4gYSBwaWNrZXIsIHdoZXJlIG9mZmVyaW5nIGl0XG4gKiBpbnZpdGVzIGFuIGFuc3dlciB0aGUgcHJpb3JpdHkgbGlzdCBpdHNlbGYgd291bGQgbm90IGhhdmUgZ2l2ZW4uIFRoYXQgaXMgd2h5XG4gKiB7QGxpbmsgZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzfSBleGlzdHMgYWxvbmdzaWRlIHRoZSB0d28gZnVuY3Rpb25zIHRoYXQgZGVjaWRlLlxuICovXG5cbmltcG9ydCB7IGlzVmFsaWRSZWdFeHAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5cbmltcG9ydCB7XG4gIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMsXG4gIGlzUHJvcGVydHlFbnRyeVxufSBmcm9tICcuL3Byb3BlcnR5LWVudHJ5LnRzJztcblxuY29uc3QgUkVHX0VYUF9ERUxJTUlURVIgPSAnLyc7XG5jb25zdCBFWFRFTlNJT05fUFJFRklYID0gJy4nO1xuXG4vKipcbiAqIFdoeSB0aGUgcHJpb3JpdHkgbGlzdCBkaWQgbm90IHNldHRsZSB3aGljaCBub3RlIG93bnMgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBUaGUgdGhyZWUgdmFsdWVzIGFyZSBleGFjdGx5IHRoZSB0aHJlZSB3YXlzIHtAbGluayBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGh9IChwbHVzIGl0cyBlbXB0eS1saXN0XG4gKiBndWFyZCkgY2FuIGZhaWwgdG8gbmFtZSBhIHdpbm5lciwgc28gYSBjYWxsZXIgY2FuIHRlbGwgdGhlIHVzZXIgdGhlIHJlYWwgcmVhc29uIGluc3RlYWQgb2Ygb25seVxuICogcmVwb3J0aW5nIHRoYXQgdGhlIGF0dGFjaG1lbnQgaXMgcmVmZXJlbmNlZCBieSBzZXZlcmFsIG5vdGVzLlxuICovXG5leHBvcnQgZW51bSBOb1ByaW9yaXR5V2lubmVyUmVhc29uIHtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBsaXN0IGlzIGVtcHR5IOKAlCBpdHMgZGVmYXVsdC4gTm90aGluZyB3YXMgY29uZmlndXJlZCB0byBkZWNpZGUgYmV0d2VlbiB0aGUgbm90ZXMuXG4gICAqL1xuICBFbXB0eUxpc3QgPSAnRW1wdHlMaXN0JyxcblxuICAvKipcbiAgICogVGhlIGxpc3QgaGFzIGVudHJpZXMsIGJ1dCBub25lIG9mIHRoZSByZWZlcmVuY2luZyBub3RlcyBtYXRjaGVzIGFueSBvZiB0aGVtLlxuICAgKi9cbiAgTm9NYXRjaCA9ICdOb01hdGNoJyxcblxuICAvKipcbiAgICogU2V2ZXJhbCByZWZlcmVuY2luZyBub3RlcyB0aWUgZm9yIHRoZSBiZXN0IHJhbmssIHNvIHRoZSBsaXN0IG5hbWVzIG5vIHNpbmdsZSBvd25lci5cbiAgICovXG4gIFRpZSA9ICdUaWUnXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbHRlckhpZ2hlc3RQcmlvcml0eU5vdGVQYXRoc30uXG4gKlxuICogVGhlIHNhbWUgcXVlc3Rpb24gYXMge0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0gYXNrcywgc28gZGVsaWJlcmF0ZWx5IHRoZSBzYW1lIHBhcmFtZXRlcnM6XG4gKiB0aGUgdHdvIG11c3QgYmUgYW5zd2VyZWQgZnJvbSBpZGVudGljYWwgaW5wdXRzIG9yIHRoZXkgY291bGQgZGlzYWdyZWUuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlckhpZ2hlc3RQcmlvcml0eU5vdGVQYXRoc1BhcmFtcyA9IFBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aFBhcmFtcztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZmluZE5vUHJpb3JpdHlXaW5uZXJSZWFzb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uUGFyYW1zIGV4dGVuZHMgUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBsaXN0LCBoaWdoZXN0IHByaW9yaXR5IGZpcnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cmllczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmROb3RlUHJpb3JpdHlSYW5rfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJpb3JpdHkgbGlzdCwgaGlnaGVzdCBwcmlvcml0eSBmaXJzdC5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90ZSdzIGZyb250bWF0dGVyLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGZyb250bWF0dGVyOiBudWxsIHwgUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRocyBvZiB0aGUgbm90ZXMgcmVmZXJlbmNpbmcgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpb3JpdHkgcmFuayBvZiBhIG5vdGUuIExvd2VyIHdpbnM7IHtAbGluayBOT19QUklPUklUWV9NQVRDSH0gbWVhbnMgdGhlIG5vdGUgbWF0Y2hlZCBub3RoaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gbm90ZVBhdGggLSBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICogQHJldHVybnMgVGhlIHJhbmsuXG4gICAqL1xuICByZWFkb25seSByYW5rOiAobm90ZVBhdGg6IHN0cmluZykgPT4gbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSByYW5rIG9mIGEgbm90ZSB0aGF0IG1hdGNoZXMgbm8gZW50cnkgaW4gdGhlIHByaW9yaXR5IGxpc3QuIEhpZ2hlciB0aGFuIGFueSByZWFsIHJhbmssIHNvIGEgbm90ZVxuICogdGhhdCBtYXRjaGVzIG5vdGhpbmcgYWx3YXlzIGxvc2VzIHRvIG9uZSB0aGF0IG1hdGNoZXMgc29tZXRoaW5nLlxuICovXG5leHBvcnQgY29uc3QgTk9fUFJJT1JJVFlfTUFUQ0ggPSBJbmZpbml0eTtcblxuLyoqXG4gKiBOYXJyb3dzIHRoZSByZWZlcmVuY2luZyBub3RlcyB0byB0aGUgb25lcyBzaGFyaW5nIHRoZSBiZXN0IHJhbmsuXG4gKlxuICogVGhvc2Ugbm90ZXMgYXJlIHRoZSB3aG9sZSBvZiB0aGUgYW1iaWd1aXR5OiBvbmUgdGhlIGxpc3QgcmFua2VkIGJlbG93IHRoZW0gY2Fubm90IHJlc29sdmUgYW55dGhpbmcsXG4gKiBzbyByZXBvcnRpbmcgaXQgb25seSBhZGRzIG5vaXNlLiBUaGlzIG1pcnJvcnMge0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0ncyBjb25kaXRpb25zXG4gKiByYXRoZXIgdGhhbiByZS1kZWNpZGluZyBhbnl0aGluZywgc28gdGhlIHR3byBjYW4gb25seSBldmVyIGFncmVlIOKAlCB3aGVuZXZlciB0aGF0IG5hbWVzIGEgd2lubmVyLFxuICogdGhpcyByZXR1cm5zIGV4YWN0bHkgdGhhdCBvbmUgbm90ZS5cbiAqXG4gKiBBIGxpc3QgdGhhdCBkZWNpZGVzIG5vdGhpbmcgYXQgYWxsIOKAlCBlbXB0eSwgb3IgbWF0Y2hpbmcgbm8gbm90ZSDigJQgcmFua3MgZXZlcnkgbm90ZVxuICoge0BsaW5rIE5PX1BSSU9SSVRZX01BVENIfSwgc28gdGhleSBhbGwgdGllIGFuZCBldmVyeSBvbmUgb2YgdGhlbSBpcyBrZXB0LiBUaGF0IGlzIHRoZSBzYW1lIGxpc3QgdGhlXG4gKiB1c2VyIHNhdyBiZWZvcmUsIHdoaWNoIGlzIGNvcnJlY3Q6IG5vdGhpbmcgaGFzIHJ1bGVkIGFueSBvZiB0aGVtIG91dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHJlZmVyZW5jaW5nIG5vdGVzIGFuZCBob3cgdG8gcmFuayBvbmUuXG4gKiBAcmV0dXJucyBUaGUgbm90ZXMgaG9sZGluZyB0aGUgYmVzdCByYW5rLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGdpdmVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzKHBhcmFtczogRmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzUGFyYW1zKTogc3RyaW5nW10ge1xuICAvLyBSYW5raW5nIGNhbiBoaXQgdGhlIHZhdWx0IGFuZCB0aGUgbWV0YWRhdGEgY2FjaGUsIHNvIGVhY2ggbm90ZSBpcyByYW5rZWQgb25jZSBhbmQgY2FycmllZC5cbiAgY29uc3QgcmFua2VkTm90ZVBhdGhzID0gcGFyYW1zLm5vdGVQYXRocy5tYXAoKG5vdGVQYXRoKSA9PiAoe1xuICAgIG5vdGVQYXRoLFxuICAgIHJhbms6IHBhcmFtcy5yYW5rKG5vdGVQYXRoKVxuICB9KSk7XG5cbiAgbGV0IGJlc3RSYW5rID0gTk9fUFJJT1JJVFlfTUFUQ0g7XG4gIGZvciAoY29uc3QgcmFua2VkIG9mIHJhbmtlZE5vdGVQYXRocykge1xuICAgIGlmIChyYW5rZWQucmFuayA8IGJlc3RSYW5rKSB7XG4gICAgICBiZXN0UmFuayA9IHJhbmtlZC5yYW5rO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByYW5rZWROb3RlUGF0aHNcbiAgICAuZmlsdGVyKChyYW5rZWQpID0+IHJhbmtlZC5yYW5rID09PSBiZXN0UmFuaylcbiAgICAubWFwKChyYW5rZWQpID0+IHJhbmtlZC5ub3RlUGF0aCk7XG59XG5cbi8qKlxuICogRXhwbGFpbnMgd2h5IHRoZSBwcmlvcml0eSBsaXN0IG5hbWVkIG5vIG93bmVyIGZvciBhbiBhdHRhY2htZW50LlxuICpcbiAqIE9ubHkgbWVhbmluZ2Z1bCBvbmNlIHtAbGluayBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGh9IGhhcyByZXR1cm5lZCBgbnVsbGAgKG9yIHRoZSBsaXN0IHdhcyBlbXB0eVxuICogYW5kIHdhcyBuZXZlciBjb25zdWx0ZWQpOyBpdCBtaXJyb3JzIHRoYXQgZnVuY3Rpb24ncyBvd24gY29uZGl0aW9ucyByYXRoZXIgdGhhbiByZS1kZWNpZGluZ1xuICogYW55dGhpbmcsIHNvIHRoZSB0d28gY2FuIG9ubHkgZXZlciBhZ3JlZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHByaW9yaXR5IGxpc3QsIHRoZSByZWZlcmVuY2luZyBub3RlcywgYW5kIGhvdyB0byByYW5rIG9uZS5cbiAqIEByZXR1cm5zIFdoaWNoIG9mIHRoZSB0aHJlZSB3YXlzIHRoZSBsaXN0IGZhaWxlZCB0byBzZXR0bGUgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTm9Qcmlvcml0eVdpbm5lclJlYXNvbihwYXJhbXM6IEZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uUGFyYW1zKTogTm9Qcmlvcml0eVdpbm5lclJlYXNvbiB7XG4gIGlmIChwYXJhbXMuZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gTm9Qcmlvcml0eVdpbm5lclJlYXNvbi5FbXB0eUxpc3Q7XG4gIH1cblxuICBsZXQgYmVzdFJhbmsgPSBOT19QUklPUklUWV9NQVRDSDtcbiAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBwYXJhbXMubm90ZVBhdGhzKSB7XG4gICAgY29uc3QgY3VycmVudFJhbmsgPSBwYXJhbXMucmFuayhub3RlUGF0aCk7XG4gICAgaWYgKGN1cnJlbnRSYW5rIDwgYmVzdFJhbmspIHtcbiAgICAgIGJlc3RSYW5rID0gY3VycmVudFJhbms7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJlc3RSYW5rID09PSBOT19QUklPUklUWV9NQVRDSCA/IE5vUHJpb3JpdHlXaW5uZXJSZWFzb24uTm9NYXRjaCA6IE5vUHJpb3JpdHlXaW5uZXJSZWFzb24uVGllO1xufVxuXG4vKipcbiAqIEZpbmRzIGhvdyBoaWdobHkgYSBub3RlIHJhbmtzIGluIHRoZSBwcmlvcml0eSBsaXN0LlxuICpcbiAqIEFuIGVudHJ5IG1hdGNoZXMgaW4gb25lIG9mIGZvdXIgd2F5cywgcGlja2VkIGJ5IGl0cyBzaGFwZSBzbyB0aGF0IG9uZSBsaXN0IGNhbiBleHByZXNzIGFsbCBvZiB0aGVtOlxuICpcbiAqIC0gYHByb3BlcnR5Om5hbWVgIOKAlCB0aGUgbm90ZSdzIGZyb250bWF0dGVyIGhhcyBgbmFtZWA7IGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBhbHNvIGNvbXBhcmVzIHRoZSB2YWx1ZS5cbiAqIC0gYC9yZWd1bGFyIGV4cHJlc3Npb24vYCDigJQgdGVzdGVkIGFnYWluc3QgdGhlIG5vdGUncyBwYXRoLlxuICogLSBgLmV4dGAg4oCUIHRoZSBub3RlJ3MgcGF0aCBlbmRzIHdpdGggaXQsIGNhc2UtaW5zZW5zaXRpdmVseS4gVGhpcyBpcyB0aGUgZm9ybSB0aGUgcmVxdWVzdCBhc2tlZCBmb3IuXG4gKiAtIGFueXRoaW5nIGVsc2Ug4oCUIGEgcGF0aCBmcm9tIHRoZSB2YXVsdCByb290LCBtYXRjaGluZyB0aGUgdm9jYWJ1bGFyeSBvZiB0aGUgaW5jbHVkZSAvIGV4Y2x1ZGVcbiAqICAgcGF0aCBzZXR0aW5ncy5cbiAqXG4gKiBXaGVuIGEgbm90ZSBtYXRjaGVzIHNldmVyYWwgZW50cmllcyB0aGUgKipsb25nZXN0Kiogb25lIGRlY2lkZXMgaXRzIHJhbmssIHNvIHRoZSBtb3N0IHNwZWNpZmljXG4gKiBlbnRyeSB3aW5zIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGxpc3QgaXMgbGVmdCB0byBleHByZXNzIHByaW9yaXR5LiBXaXRob3V0IHRoaXMgYW4gYEV4Y2FsaWRyYXdgIG5vdGVcbiAqIGNvdWxkIG5ldmVyIHJhbmsgYmVsb3cgYSBwbGFpbiBtYXJrZG93biBvbmU6IGBkcmF3aW5nLmV4Y2FsaWRyYXcubWRgIGFsc28gZW5kcyB3aXRoIGAubWRgLCBzb1xuICogYC5tZGAgYWJvdmUgYC5leGNhbGlkcmF3Lm1kYCDigJQgdGhlIHZlcnkgZXhhbXBsZSB0aGUgcmVxdWVzdCBpcyBidWlsdCBvbiDigJQgd291bGQgdGllIGluc3RlYWQgb2ZcbiAqIHJlc29sdmluZy4gRXF1YWwtbGVuZ3RoIG1hdGNoZXMgZmFsbCB0byB0aGUgZWFybGllciBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGZpbmRpbmcgdGhlIHJhbmsuXG4gKiBAcmV0dXJucyBUaGUgaW5kZXggb2YgdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2hpbmcgZW50cnksIG9yIHtAbGluayBOT19QUklPUklUWV9NQVRDSH0gd2hlbiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vdGVQcmlvcml0eVJhbmsocGFyYW1zOiBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyk6IG51bWJlciB7XG4gIGxldCBiZXN0UmFuayA9IE5PX1BSSU9SSVRZX01BVENIO1xuICBsZXQgYmVzdExlbmd0aCA9IC0xO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBlbnRyeV0gb2YgcGFyYW1zLmVudHJpZXMuZW50cmllcygpKSB7XG4gICAgLy8gQSBzaG9ydGVyIGVudHJ5IGNhbiBuZXZlciBiZWF0IG9uZSB0aGF0IGFscmVhZHkgbWF0Y2hlZCwgc28gaXQgaXMgbm90IHdvcnRoIHRlc3RpbmcuXG4gICAgaWYgKChlbnRyeS5sZW5ndGggPD0gYmVzdExlbmd0aCkgfHwgIWNoZWNrRW50cnlNYXRjaGVzKGVudHJ5LCBwYXJhbXMpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBiZXN0UmFuayA9IGluZGV4O1xuICAgIGJlc3RMZW5ndGggPSBlbnRyeS5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gYmVzdFJhbms7XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHNpbmdsZSBoaWdoZXN0LXByaW9yaXR5IG5vdGUgYW1vbmcgdGhvc2UgcmVmZXJlbmNpbmcgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBSZXR1cm5zIGBudWxsYCB3aGVuIHRoZSBiZXN0IHJhbmsgaXMgc2hhcmVkIGJ5IG1vcmUgdGhhbiBvbmUgbm90ZSwgb3Igd2hlbiBubyBub3RlIG1hdGNoZXNcbiAqIGFueXRoaW5nLiBCb3RoIGFyZSB0aWVzLCBhbmQgYSB0aWUgaXMgdGhlIGNhbGxlcidzIHByb2JsZW06IGl0IGlzIHdoYXQgdGhlIG11bHRpcGxlLW5vdGVzIG1vZGVcbiAqIHNldHRpbmcgaXMgZm9yLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcGlja2luZyB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIFRoZSB3aW5uaW5nIG5vdGUncyBwYXRoLCBvciBgbnVsbGAgd2hlbiB0aGVyZSBpcyBubyBzaW5nbGUgd2lubmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoKHBhcmFtczogUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCBiZXN0UmFuayA9IE5PX1BSSU9SSVRZX01BVENIO1xuICBsZXQgYmVzdE5vdGVQYXRoOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgbGV0IGJlc3RDb3VudCA9IDA7XG5cbiAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBwYXJhbXMubm90ZVBhdGhzKSB7XG4gICAgY29uc3QgY3VycmVudFJhbmsgPSBwYXJhbXMucmFuayhub3RlUGF0aCk7XG4gICAgaWYgKGN1cnJlbnRSYW5rIDwgYmVzdFJhbmspIHtcbiAgICAgIGJlc3RSYW5rID0gY3VycmVudFJhbms7XG4gICAgICBiZXN0Tm90ZVBhdGggPSBub3RlUGF0aDtcbiAgICAgIGJlc3RDb3VudCA9IDE7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UmFuayA9PT0gYmVzdFJhbmspIHtcbiAgICAgIGJlc3RDb3VudCsrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBiZXN0Q291bnQgIT09IDEgfHwgYmVzdFJhbmsgPT09IE5PX1BSSU9SSVRZX01BVENIID8gbnVsbCA6IGJlc3ROb3RlUGF0aDtcbn1cblxuZnVuY3Rpb24gY2hlY2tFbnRyeU1hdGNoZXMoZW50cnk6IHN0cmluZywgcGFyYW1zOiBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyk6IGJvb2xlYW4ge1xuICBpZiAoIWVudHJ5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzUHJvcGVydHlFbnRyeShlbnRyeSkpIHtcbiAgICByZXR1cm4gY2hlY2tQcm9wZXJ0eUVudHJ5TWF0Y2hlcyh7IGVudHJ5LCBmcm9udG1hdHRlcjogcGFyYW1zLmZyb250bWF0dGVyIH0pO1xuICB9XG5cbiAgaWYgKGVudHJ5Lmxlbmd0aCA+IDEgJiYgZW50cnkuc3RhcnRzV2l0aChSRUdfRVhQX0RFTElNSVRFUikgJiYgZW50cnkuZW5kc1dpdGgoUkVHX0VYUF9ERUxJTUlURVIpKSB7XG4gICAgY29uc3Qgc291cmNlID0gZW50cnkuc2xpY2UoMSwgLTEpO1xuICAgIC8vIEFuIHVucGFyc2VhYmxlIGV4cHJlc3Npb24gbXVzdCBub3QgdGhyb3cgbWlkLWNvbGxlY3Rpb247IGl0IHNpbXBseSBtYXRjaGVzIG5vdGhpbmcuXG4gICAgcmV0dXJuIGlzVmFsaWRSZWdFeHAoc291cmNlKSAmJiBuZXcgUmVnRXhwKHNvdXJjZSkudGVzdChwYXJhbXMubm90ZVBhdGgpO1xuICB9XG5cbiAgaWYgKGVudHJ5LnN0YXJ0c1dpdGgoRVhURU5TSU9OX1BSRUZJWCkpIHtcbiAgICByZXR1cm4gcGFyYW1zLm5vdGVQYXRoLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZW50cnkudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBlbnRyeS5lbmRzV2l0aCgnLycpID8gZW50cnkgOiBgJHtlbnRyeX0vYDtcbiAgcmV0dXJuIHBhcmFtcy5ub3RlUGF0aCA9PT0gZW50cnkgfHwgcGFyYW1zLm5vdGVQYXRoLnN0YXJ0c1dpdGgocHJlZml4KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxxQkFBOEI7QUFFOUIsNEJBR087QUFFUCxNQUFNLG9CQUFvQjtBQUMxQixNQUFNLG1CQUFtQjtBQVNsQixJQUFLLHlCQUFMLGtCQUFLQSw0QkFBTDtBQUlMLEVBQUFBLHdCQUFBLGVBQVk7QUFLWixFQUFBQSx3QkFBQSxhQUFVO0FBS1YsRUFBQUEsd0JBQUEsU0FBTTtBQWRJLFNBQUFBO0FBQUEsR0FBQTtBQTZFTCxNQUFNLG9CQUFvQjtBQWlCMUIsU0FBUywrQkFBK0IsUUFBd0Q7QUFFckcsUUFBTSxrQkFBa0IsT0FBTyxVQUFVLElBQUksQ0FBQyxjQUFjO0FBQUEsSUFDMUQ7QUFBQSxJQUNBLE1BQU0sT0FBTyxLQUFLLFFBQVE7QUFBQSxFQUM1QixFQUFFO0FBRUYsTUFBSSxXQUFXO0FBQ2YsYUFBVyxVQUFVLGlCQUFpQjtBQUNwQyxRQUFJLE9BQU8sT0FBTyxVQUFVO0FBQzFCLGlCQUFXLE9BQU87QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFFQSxTQUFPLGdCQUNKLE9BQU8sQ0FBQyxXQUFXLE9BQU8sU0FBUyxRQUFRLEVBQzNDLElBQUksQ0FBQyxXQUFXLE9BQU8sUUFBUTtBQUNwQztBQVlPLFNBQVMsMkJBQTJCLFFBQWtFO0FBQzNHLE1BQUksT0FBTyxRQUFRLFdBQVcsR0FBRztBQUMvQixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksV0FBVztBQUNmLGFBQVcsWUFBWSxPQUFPLFdBQVc7QUFDdkMsVUFBTSxjQUFjLE9BQU8sS0FBSyxRQUFRO0FBQ3hDLFFBQUksY0FBYyxVQUFVO0FBQzFCLGlCQUFXO0FBQUEsSUFDYjtBQUFBLEVBQ0Y7QUFFQSxTQUFPLGFBQWEsb0JBQW9CLDBCQUFpQztBQUMzRTtBQXNCTyxTQUFTLHFCQUFxQixRQUE0QztBQUMvRSxNQUFJLFdBQVc7QUFDZixNQUFJLGFBQWE7QUFFakIsYUFBVyxDQUFDLE9BQU8sS0FBSyxLQUFLLE9BQU8sUUFBUSxRQUFRLEdBQUc7QUFFckQsUUFBSyxNQUFNLFVBQVUsY0FBZSxDQUFDLGtCQUFrQixPQUFPLE1BQU0sR0FBRztBQUNyRTtBQUFBLElBQ0Y7QUFFQSxlQUFXO0FBQ1gsaUJBQWEsTUFBTTtBQUFBLEVBQ3JCO0FBRUEsU0FBTztBQUNUO0FBWU8sU0FBUyw0QkFBNEIsUUFBMEQ7QUFDcEcsTUFBSSxXQUFXO0FBQ2YsTUFBSSxlQUE4QjtBQUNsQyxNQUFJLFlBQVk7QUFFaEIsYUFBVyxZQUFZLE9BQU8sV0FBVztBQUN2QyxVQUFNLGNBQWMsT0FBTyxLQUFLLFFBQVE7QUFDeEMsUUFBSSxjQUFjLFVBQVU7QUFDMUIsaUJBQVc7QUFDWCxxQkFBZTtBQUNmLGtCQUFZO0FBQUEsSUFDZCxXQUFXLGdCQUFnQixVQUFVO0FBQ25DO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPLGNBQWMsS0FBSyxhQUFhLG9CQUFvQixPQUFPO0FBQ3BFO0FBRUEsU0FBUyxrQkFBa0IsT0FBZSxRQUE2QztBQUNyRixNQUFJLENBQUMsT0FBTztBQUNWLFdBQU87QUFBQSxFQUNUO0FBRUEsVUFBSSx1Q0FBZ0IsS0FBSyxHQUFHO0FBQzFCLGVBQU8saURBQTBCLEVBQUUsT0FBTyxhQUFhLE9BQU8sWUFBWSxDQUFDO0FBQUEsRUFDN0U7QUFFQSxNQUFJLE1BQU0sU0FBUyxLQUFLLE1BQU0sV0FBVyxpQkFBaUIsS0FBSyxNQUFNLFNBQVMsaUJBQWlCLEdBQUc7QUFDaEcsVUFBTSxTQUFTLE1BQU0sTUFBTSxHQUFHLEVBQUU7QUFFaEMsZUFBTyw4QkFBYyxNQUFNLEtBQUssSUFBSSxPQUFPLE1BQU0sRUFBRSxLQUFLLE9BQU8sUUFBUTtBQUFBLEVBQ3pFO0FBRUEsTUFBSSxNQUFNLFdBQVcsZ0JBQWdCLEdBQUc7QUFDdEMsV0FBTyxPQUFPLFNBQVMsWUFBWSxFQUFFLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFBQSxFQUNuRTtBQUVBLFFBQU0sU0FBUyxNQUFNLFNBQVMsR0FBRyxJQUFJLFFBQVEsR0FBRyxLQUFLO0FBQ3JELFNBQU8sT0FBTyxhQUFhLFNBQVMsT0FBTyxTQUFTLFdBQVcsTUFBTTtBQUN2RTsiLCJuYW1lcyI6WyJOb1ByaW9yaXR5V2lubmVyUmVhc29uIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RlLXByaW9yaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEZWNpZGVzIHdoaWNoIG9mIHNldmVyYWwgbm90ZXMgcmVmZXJlbmNpbmcgdGhlIHNhbWUgYXR0YWNobWVudCBvd25zIGl0LlxuICpcbiAqIEFuIGF0dGFjaG1lbnQgcmVmZXJlbmNlZCBmcm9tIG1vcmUgdGhhbiBvbmUgbm90ZSBoYXMgbm8gc2luZ2xlIGNvcnJlY3QgaG9tZSwgc28gY29sbGVjdGluZyBpdCBmYWxsc1xuICogYmFjayB0byB3aGF0ZXZlciBgY29sbGVjdEF0dGFjaG1lbnRVc2VkQnlNdWx0aXBsZU5vdGVzTW9kZWAgc2F5cyDigJQgc2tpcCwgY29weSwgY2FuY2VsLCBvciBhc2suIEFcbiAqIHByaW9yaXR5IGxpc3QgbGV0cyB0aGUgdXNlciBhbnN3ZXIgdGhlIHF1ZXN0aW9uIG9uY2UgaW5zdGVhZDogcHV0IGAubWRgIGFib3ZlIGAuZXhjYWxpZHJhd2AgYW5kIGFuXG4gKiBpbWFnZSBzaGFyZWQgYnkgYm90aCBsYW5kcyBpbiB0aGUgbWFya2Rvd24gbm90ZSdzIGZvbGRlci5cbiAqXG4gKiBBIHRpZSBpcyBkZWxpYmVyYXRlbHkgTk9UIHJlc29sdmVkIGhlcmUuIFR3byBub3RlcyBvZiBlcXVhbCBwcmlvcml0eSBpcyBleGFjdGx5IHRoZSBhbWJpZ3VpdHkgdGhlXG4gKiBleGlzdGluZyBtb2RlIHNldHRpbmcgYWxyZWFkeSBleGlzdHMgdG8gaGFuZGxlLCBhbmQgaW52ZW50aW5nIGEgc2Vjb25kLCBzaWxlbnQgcnVsZSBmb3IgaXQgd291bGRcbiAqIG1vdmUgYSBmaWxlIHRoZSB1c2VyIG5ldmVyIG5hbWVkLlxuICpcbiAqIFRoZSB0aWUgaXMgYWxzbyB0aGUgd2hvbGUgb2Ygd2hhdCBnZXRzIFJFUE9SVEVELiBBIG5vdGUgdGhlIGxpc3QgcmFua2VkIGJlbG93IHRoZSBiZXN0IHJhbmsgY2Fubm90XG4gKiByZXNvbHZlIHRoZSBhbWJpZ3VpdHksIHNvIGxpc3RpbmcgaXQgb25seSBhZGRzIG5vaXNlIOKAlCBhbmQgd29yc2UgaW4gYSBwaWNrZXIsIHdoZXJlIG9mZmVyaW5nIGl0XG4gKiBpbnZpdGVzIGFuIGFuc3dlciB0aGUgcHJpb3JpdHkgbGlzdCBpdHNlbGYgd291bGQgbm90IGhhdmUgZ2l2ZW4uIFRoYXQgaXMgd2h5XG4gKiB7QGxpbmsgZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzfSBleGlzdHMgYWxvbmdzaWRlIHRoZSB0d28gZnVuY3Rpb25zIHRoYXQgZGVjaWRlLlxuICovXG5cbmltcG9ydCB7IGlzVmFsaWRSZWdFeHAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5cbmltcG9ydCB7XG4gIGNoZWNrUHJvcGVydHlFbnRyeU1hdGNoZXMsXG4gIGlzUHJvcGVydHlFbnRyeVxufSBmcm9tICcuL3Byb3BlcnR5LWVudHJ5LnRzJztcblxuY29uc3QgUkVHX0VYUF9ERUxJTUlURVIgPSAnLyc7XG5jb25zdCBFWFRFTlNJT05fUFJFRklYID0gJy4nO1xuXG4vKipcbiAqIFdoeSB0aGUgcHJpb3JpdHkgbGlzdCBkaWQgbm90IHNldHRsZSB3aGljaCBub3RlIG93bnMgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBUaGUgdGhyZWUgdmFsdWVzIGFyZSBleGFjdGx5IHRoZSB0aHJlZSB3YXlzIHtAbGluayBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGh9IChwbHVzIGl0cyBlbXB0eS1saXN0XG4gKiBndWFyZCkgY2FuIGZhaWwgdG8gbmFtZSBhIHdpbm5lciwgc28gYSBjYWxsZXIgY2FuIHRlbGwgdGhlIHVzZXIgdGhlIHJlYWwgcmVhc29uIGluc3RlYWQgb2Ygb25seVxuICogcmVwb3J0aW5nIHRoYXQgdGhlIGF0dGFjaG1lbnQgaXMgcmVmZXJlbmNlZCBieSBzZXZlcmFsIG5vdGVzLlxuICovXG5leHBvcnQgZW51bSBOb1ByaW9yaXR5V2lubmVyUmVhc29uIHtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBsaXN0IGlzIGVtcHR5IOKAlCBpdHMgZGVmYXVsdC4gTm90aGluZyB3YXMgY29uZmlndXJlZCB0byBkZWNpZGUgYmV0d2VlbiB0aGUgbm90ZXMuXG4gICAqL1xuICBFbXB0eUxpc3QgPSAnRW1wdHlMaXN0JyxcblxuICAvKipcbiAgICogVGhlIGxpc3QgaGFzIGVudHJpZXMsIGJ1dCBub25lIG9mIHRoZSByZWZlcmVuY2luZyBub3RlcyBtYXRjaGVzIGFueSBvZiB0aGVtLlxuICAgKi9cbiAgTm9NYXRjaCA9ICdOb01hdGNoJyxcblxuICAvKipcbiAgICogU2V2ZXJhbCByZWZlcmVuY2luZyBub3RlcyB0aWUgZm9yIHRoZSBiZXN0IHJhbmssIHNvIHRoZSBsaXN0IG5hbWVzIG5vIHNpbmdsZSBvd25lci5cbiAgICovXG4gIFRpZSA9ICdUaWUnXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbHRlckhpZ2hlc3RQcmlvcml0eU5vdGVQYXRoc30uXG4gKlxuICogVGhlIHNhbWUgcXVlc3Rpb24gYXMge0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0gYXNrcywgc28gZGVsaWJlcmF0ZWx5IHRoZSBzYW1lIHBhcmFtZXRlcnM6XG4gKiB0aGUgdHdvIG11c3QgYmUgYW5zd2VyZWQgZnJvbSBpZGVudGljYWwgaW5wdXRzIG9yIHRoZXkgY291bGQgZGlzYWdyZWUuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlckhpZ2hlc3RQcmlvcml0eU5vdGVQYXRoc1BhcmFtcyA9IFBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aFBhcmFtcztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZmluZE5vUHJpb3JpdHlXaW5uZXJSZWFzb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uUGFyYW1zIGV4dGVuZHMgUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBsaXN0LCBoaWdoZXN0IHByaW9yaXR5IGZpcnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cmllczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmROb3RlUHJpb3JpdHlSYW5rfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJpb3JpdHkgbGlzdCwgaGlnaGVzdCBwcmlvcml0eSBmaXJzdC5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90ZSdzIGZyb250bWF0dGVyLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGZyb250bWF0dGVyOiBudWxsIHwgUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRocyBvZiB0aGUgbm90ZXMgcmVmZXJlbmNpbmcgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpb3JpdHkgcmFuayBvZiBhIG5vdGUuIExvd2VyIHdpbnM7IHtAbGluayBOT19QUklPUklUWV9NQVRDSH0gbWVhbnMgdGhlIG5vdGUgbWF0Y2hlZCBub3RoaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gbm90ZVBhdGggLSBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICogQHJldHVybnMgVGhlIHJhbmsuXG4gICAqL1xuICByZWFkb25seSByYW5rOiAobm90ZVBhdGg6IHN0cmluZykgPT4gbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSByYW5rIG9mIGEgbm90ZSB0aGF0IG1hdGNoZXMgbm8gZW50cnkgaW4gdGhlIHByaW9yaXR5IGxpc3QuIEhpZ2hlciB0aGFuIGFueSByZWFsIHJhbmssIHNvIGEgbm90ZVxuICogdGhhdCBtYXRjaGVzIG5vdGhpbmcgYWx3YXlzIGxvc2VzIHRvIG9uZSB0aGF0IG1hdGNoZXMgc29tZXRoaW5nLlxuICovXG5leHBvcnQgY29uc3QgTk9fUFJJT1JJVFlfTUFUQ0ggPSBJbmZpbml0eTtcblxuLyoqXG4gKiBOYXJyb3dzIHRoZSByZWZlcmVuY2luZyBub3RlcyB0byB0aGUgb25lcyBzaGFyaW5nIHRoZSBiZXN0IHJhbmsuXG4gKlxuICogVGhvc2Ugbm90ZXMgYXJlIHRoZSB3aG9sZSBvZiB0aGUgYW1iaWd1aXR5OiBvbmUgdGhlIGxpc3QgcmFua2VkIGJlbG93IHRoZW0gY2Fubm90IHJlc29sdmUgYW55dGhpbmcsXG4gKiBzbyByZXBvcnRpbmcgaXQgb25seSBhZGRzIG5vaXNlLiBUaGlzIG1pcnJvcnMge0BsaW5rIHBpY2tIaWdoZXN0UHJpb3JpdHlOb3RlUGF0aH0ncyBjb25kaXRpb25zXG4gKiByYXRoZXIgdGhhbiByZS1kZWNpZGluZyBhbnl0aGluZywgc28gdGhlIHR3byBjYW4gb25seSBldmVyIGFncmVlIOKAlCB3aGVuZXZlciB0aGF0IG5hbWVzIGEgd2lubmVyLFxuICogdGhpcyByZXR1cm5zIGV4YWN0bHkgdGhhdCBvbmUgbm90ZS5cbiAqXG4gKiBBIGxpc3QgdGhhdCBkZWNpZGVzIG5vdGhpbmcgYXQgYWxsIOKAlCBlbXB0eSwgb3IgbWF0Y2hpbmcgbm8gbm90ZSDigJQgcmFua3MgZXZlcnkgbm90ZVxuICoge0BsaW5rIE5PX1BSSU9SSVRZX01BVENIfSwgc28gdGhleSBhbGwgdGllIGFuZCBldmVyeSBvbmUgb2YgdGhlbSBpcyBrZXB0LiBUaGF0IGlzIHRoZSBzYW1lIGxpc3QgdGhlXG4gKiB1c2VyIHNhdyBiZWZvcmUsIHdoaWNoIGlzIGNvcnJlY3Q6IG5vdGhpbmcgaGFzIHJ1bGVkIGFueSBvZiB0aGVtIG91dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHJlZmVyZW5jaW5nIG5vdGVzIGFuZCBob3cgdG8gcmFuayBvbmUuXG4gKiBAcmV0dXJucyBUaGUgbm90ZXMgaG9sZGluZyB0aGUgYmVzdCByYW5rLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGdpdmVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzKHBhcmFtczogRmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzUGFyYW1zKTogc3RyaW5nW10ge1xuICAvLyBSYW5raW5nIGNhbiBoaXQgdGhlIHZhdWx0IGFuZCB0aGUgbWV0YWRhdGEgY2FjaGUsIHNvIGVhY2ggbm90ZSBpcyByYW5rZWQgb25jZSBhbmQgY2FycmllZC5cbiAgY29uc3QgcmFua2VkTm90ZVBhdGhzID0gcGFyYW1zLm5vdGVQYXRocy5tYXAoKG5vdGVQYXRoKSA9PiAoe1xuICAgIG5vdGVQYXRoLFxuICAgIHJhbms6IHBhcmFtcy5yYW5rKG5vdGVQYXRoKVxuICB9KSk7XG5cbiAgbGV0IGJlc3RSYW5rID0gTk9fUFJJT1JJVFlfTUFUQ0g7XG4gIGZvciAoY29uc3QgcmFua2VkIG9mIHJhbmtlZE5vdGVQYXRocykge1xuICAgIGlmIChyYW5rZWQucmFuayA8IGJlc3RSYW5rKSB7XG4gICAgICBiZXN0UmFuayA9IHJhbmtlZC5yYW5rO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByYW5rZWROb3RlUGF0aHNcbiAgICAuZmlsdGVyKChyYW5rZWQpID0+IHJhbmtlZC5yYW5rID09PSBiZXN0UmFuaylcbiAgICAubWFwKChyYW5rZWQpID0+IHJhbmtlZC5ub3RlUGF0aCk7XG59XG5cbi8qKlxuICogRXhwbGFpbnMgd2h5IHRoZSBwcmlvcml0eSBsaXN0IG5hbWVkIG5vIG93bmVyIGZvciBhbiBhdHRhY2htZW50LlxuICpcbiAqIE9ubHkgbWVhbmluZ2Z1bCBvbmNlIHtAbGluayBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGh9IGhhcyByZXR1cm5lZCBgbnVsbGAgKG9yIHRoZSBsaXN0IHdhcyBlbXB0eVxuICogYW5kIHdhcyBuZXZlciBjb25zdWx0ZWQpOyBpdCBtaXJyb3JzIHRoYXQgZnVuY3Rpb24ncyBvd24gY29uZGl0aW9ucyByYXRoZXIgdGhhbiByZS1kZWNpZGluZ1xuICogYW55dGhpbmcsIHNvIHRoZSB0d28gY2FuIG9ubHkgZXZlciBhZ3JlZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHByaW9yaXR5IGxpc3QsIHRoZSByZWZlcmVuY2luZyBub3RlcywgYW5kIGhvdyB0byByYW5rIG9uZS5cbiAqIEByZXR1cm5zIFdoaWNoIG9mIHRoZSB0aHJlZSB3YXlzIHRoZSBsaXN0IGZhaWxlZCB0byBzZXR0bGUgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTm9Qcmlvcml0eVdpbm5lclJlYXNvbihwYXJhbXM6IEZpbmROb1ByaW9yaXR5V2lubmVyUmVhc29uUGFyYW1zKTogTm9Qcmlvcml0eVdpbm5lclJlYXNvbiB7XG4gIGlmIChwYXJhbXMuZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gTm9Qcmlvcml0eVdpbm5lclJlYXNvbi5FbXB0eUxpc3Q7XG4gIH1cblxuICBsZXQgYmVzdFJhbmsgPSBOT19QUklPUklUWV9NQVRDSDtcbiAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBwYXJhbXMubm90ZVBhdGhzKSB7XG4gICAgY29uc3QgY3VycmVudFJhbmsgPSBwYXJhbXMucmFuayhub3RlUGF0aCk7XG4gICAgaWYgKGN1cnJlbnRSYW5rIDwgYmVzdFJhbmspIHtcbiAgICAgIGJlc3RSYW5rID0gY3VycmVudFJhbms7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJlc3RSYW5rID09PSBOT19QUklPUklUWV9NQVRDSCA/IE5vUHJpb3JpdHlXaW5uZXJSZWFzb24uTm9NYXRjaCA6IE5vUHJpb3JpdHlXaW5uZXJSZWFzb24uVGllO1xufVxuXG4vKipcbiAqIEZpbmRzIGhvdyBoaWdobHkgYSBub3RlIHJhbmtzIGluIHRoZSBwcmlvcml0eSBsaXN0LlxuICpcbiAqIEFuIGVudHJ5IG1hdGNoZXMgaW4gb25lIG9mIGZvdXIgd2F5cywgcGlja2VkIGJ5IGl0cyBzaGFwZSBzbyB0aGF0IG9uZSBsaXN0IGNhbiBleHByZXNzIGFsbCBvZiB0aGVtOlxuICpcbiAqIC0gYHByb3BlcnR5Om5hbWVgIOKAlCB0aGUgbm90ZSdzIGZyb250bWF0dGVyIGhhcyBgbmFtZWA7IGBwcm9wZXJ0eTpuYW1lPXZhbHVlYCBhbHNvIGNvbXBhcmVzIHRoZSB2YWx1ZS5cbiAqIC0gYC9yZWd1bGFyIGV4cHJlc3Npb24vYCDigJQgdGVzdGVkIGFnYWluc3QgdGhlIG5vdGUncyBwYXRoLlxuICogLSBgLmV4dGAg4oCUIHRoZSBub3RlJ3MgcGF0aCBlbmRzIHdpdGggaXQsIGNhc2UtaW5zZW5zaXRpdmVseS4gVGhpcyBpcyB0aGUgZm9ybSB0aGUgcmVxdWVzdCBhc2tlZCBmb3IuXG4gKiAtIGFueXRoaW5nIGVsc2Ug4oCUIGEgcGF0aCBmcm9tIHRoZSB2YXVsdCByb290LCBtYXRjaGluZyB0aGUgdm9jYWJ1bGFyeSBvZiB0aGUgaW5jbHVkZSAvIGV4Y2x1ZGVcbiAqICAgcGF0aCBzZXR0aW5ncy5cbiAqXG4gKiBXaGVuIGEgbm90ZSBtYXRjaGVzIHNldmVyYWwgZW50cmllcyB0aGUgKipsb25nZXN0Kiogb25lIGRlY2lkZXMgaXRzIHJhbmssIHNvIHRoZSBtb3N0IHNwZWNpZmljXG4gKiBlbnRyeSB3aW5zIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGxpc3QgaXMgbGVmdCB0byBleHByZXNzIHByaW9yaXR5LiBXaXRob3V0IHRoaXMgYW4gYEV4Y2FsaWRyYXdgIG5vdGVcbiAqIGNvdWxkIG5ldmVyIHJhbmsgYmVsb3cgYSBwbGFpbiBtYXJrZG93biBvbmU6IGBkcmF3aW5nLmV4Y2FsaWRyYXcubWRgIGFsc28gZW5kcyB3aXRoIGAubWRgLCBzb1xuICogYC5tZGAgYWJvdmUgYC5leGNhbGlkcmF3Lm1kYCDigJQgdGhlIHZlcnkgZXhhbXBsZSB0aGUgcmVxdWVzdCBpcyBidWlsdCBvbiDigJQgd291bGQgdGllIGluc3RlYWQgb2ZcbiAqIHJlc29sdmluZy4gRXF1YWwtbGVuZ3RoIG1hdGNoZXMgZmFsbCB0byB0aGUgZWFybGllciBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGZpbmRpbmcgdGhlIHJhbmsuXG4gKiBAcmV0dXJucyBUaGUgaW5kZXggb2YgdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2hpbmcgZW50cnksIG9yIHtAbGluayBOT19QUklPUklUWV9NQVRDSH0gd2hlbiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vdGVQcmlvcml0eVJhbmsocGFyYW1zOiBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyk6IG51bWJlciB7XG4gIGxldCBiZXN0UmFuayA9IE5PX1BSSU9SSVRZX01BVENIO1xuICBsZXQgYmVzdExlbmd0aCA9IC0xO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBlbnRyeV0gb2YgcGFyYW1zLmVudHJpZXMuZW50cmllcygpKSB7XG4gICAgLy8gQSBzaG9ydGVyIGVudHJ5IGNhbiBuZXZlciBiZWF0IG9uZSB0aGF0IGFscmVhZHkgbWF0Y2hlZCwgc28gaXQgaXMgbm90IHdvcnRoIHRlc3RpbmcuXG4gICAgaWYgKChlbnRyeS5sZW5ndGggPD0gYmVzdExlbmd0aCkgfHwgIWNoZWNrRW50cnlNYXRjaGVzKGVudHJ5LCBwYXJhbXMpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBiZXN0UmFuayA9IGluZGV4O1xuICAgIGJlc3RMZW5ndGggPSBlbnRyeS5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gYmVzdFJhbms7XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHNpbmdsZSBoaWdoZXN0LXByaW9yaXR5IG5vdGUgYW1vbmcgdGhvc2UgcmVmZXJlbmNpbmcgYW4gYXR0YWNobWVudC5cbiAqXG4gKiBSZXR1cm5zIGBudWxsYCB3aGVuIHRoZSBiZXN0IHJhbmsgaXMgc2hhcmVkIGJ5IG1vcmUgdGhhbiBvbmUgbm90ZSwgb3Igd2hlbiBubyBub3RlIG1hdGNoZXNcbiAqIGFueXRoaW5nLiBCb3RoIGFyZSB0aWVzLCBhbmQgYSB0aWUgaXMgdGhlIGNhbGxlcidzIHByb2JsZW06IGl0IGlzIHdoYXQgdGhlIG11bHRpcGxlLW5vdGVzIG1vZGVcbiAqIHNldHRpbmcgaXMgZm9yLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcGlja2luZyB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIFRoZSB3aW5uaW5nIG5vdGUncyBwYXRoLCBvciBgbnVsbGAgd2hlbiB0aGVyZSBpcyBubyBzaW5nbGUgd2lubmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoKHBhcmFtczogUGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCBiZXN0UmFuayA9IE5PX1BSSU9SSVRZX01BVENIO1xuICBsZXQgYmVzdE5vdGVQYXRoOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgbGV0IGJlc3RDb3VudCA9IDA7XG5cbiAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBwYXJhbXMubm90ZVBhdGhzKSB7XG4gICAgY29uc3QgY3VycmVudFJhbmsgPSBwYXJhbXMucmFuayhub3RlUGF0aCk7XG4gICAgaWYgKGN1cnJlbnRSYW5rIDwgYmVzdFJhbmspIHtcbiAgICAgIGJlc3RSYW5rID0gY3VycmVudFJhbms7XG4gICAgICBiZXN0Tm90ZVBhdGggPSBub3RlUGF0aDtcbiAgICAgIGJlc3RDb3VudCA9IDE7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UmFuayA9PT0gYmVzdFJhbmspIHtcbiAgICAgIGJlc3RDb3VudCsrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBiZXN0Q291bnQgIT09IDEgfHwgYmVzdFJhbmsgPT09IE5PX1BSSU9SSVRZX01BVENIID8gbnVsbCA6IGJlc3ROb3RlUGF0aDtcbn1cblxuZnVuY3Rpb24gY2hlY2tFbnRyeU1hdGNoZXMoZW50cnk6IHN0cmluZywgcGFyYW1zOiBGaW5kTm90ZVByaW9yaXR5UmFua1BhcmFtcyk6IGJvb2xlYW4ge1xuICBpZiAoIWVudHJ5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzUHJvcGVydHlFbnRyeShlbnRyeSkpIHtcbiAgICByZXR1cm4gY2hlY2tQcm9wZXJ0eUVudHJ5TWF0Y2hlcyh7IGVudHJ5LCBmcm9udG1hdHRlcjogcGFyYW1zLmZyb250bWF0dGVyIH0pO1xuICB9XG5cbiAgaWYgKGVudHJ5Lmxlbmd0aCA+IDEgJiYgZW50cnkuc3RhcnRzV2l0aChSRUdfRVhQX0RFTElNSVRFUikgJiYgZW50cnkuZW5kc1dpdGgoUkVHX0VYUF9ERUxJTUlURVIpKSB7XG4gICAgY29uc3Qgc291cmNlID0gZW50cnkuc2xpY2UoMSwgLTEpO1xuICAgIC8vIEFuIHVucGFyc2VhYmxlIGV4cHJlc3Npb24gbXVzdCBub3QgdGhyb3cgbWlkLWNvbGxlY3Rpb247IGl0IHNpbXBseSBtYXRjaGVzIG5vdGhpbmcuXG4gICAgcmV0dXJuIGlzVmFsaWRSZWdFeHAoc291cmNlKSAmJiBuZXcgUmVnRXhwKHNvdXJjZSkudGVzdChwYXJhbXMubm90ZVBhdGgpO1xuICB9XG5cbiAgaWYgKGVudHJ5LnN0YXJ0c1dpdGgoRVhURU5TSU9OX1BSRUZJWCkpIHtcbiAgICByZXR1cm4gcGFyYW1zLm5vdGVQYXRoLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZW50cnkudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBlbnRyeS5lbmRzV2l0aCgnLycpID8gZW50cnkgOiBgJHtlbnRyeX0vYDtcbiAgcmV0dXJuIHBhcmFtcy5ub3RlUGF0aCA9PT0gZW50cnkgfHwgcGFyYW1zLm5vdGVQYXRoLnN0YXJ0c1dpdGgocHJlZml4KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEscUJBQThCO0FBRTlCLDRCQUdPO0FBRVAsTUFBTSxvQkFBb0I7QUFDMUIsTUFBTSxtQkFBbUI7QUFTbEIsSUFBSyx5QkFBTCxrQkFBS0EsNEJBQUw7QUFJTCxFQUFBQSx3QkFBQSxlQUFZO0FBS1osRUFBQUEsd0JBQUEsYUFBVTtBQUtWLEVBQUFBLHdCQUFBLFNBQU07QUFkSSxTQUFBQTtBQUFBLEdBQUE7QUE2RUwsTUFBTSxvQkFBb0I7QUFpQjFCLFNBQVMsK0JBQStCLFFBQXdEO0FBRXJHLFFBQU0sa0JBQWtCLE9BQU8sVUFBVSxJQUFJLENBQUMsY0FBYztBQUFBLElBQzFEO0FBQUEsSUFDQSxNQUFNLE9BQU8sS0FBSyxRQUFRO0FBQUEsRUFDNUIsRUFBRTtBQUVGLE1BQUksV0FBVztBQUNmLGFBQVcsVUFBVSxpQkFBaUI7QUFDcEMsUUFBSSxPQUFPLE9BQU8sVUFBVTtBQUMxQixpQkFBVyxPQUFPO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBRUEsU0FBTyxnQkFDSixPQUFPLENBQUMsV0FBVyxPQUFPLFNBQVMsUUFBUSxFQUMzQyxJQUFJLENBQUMsV0FBVyxPQUFPLFFBQVE7QUFDcEM7QUFZTyxTQUFTLDJCQUEyQixRQUFrRTtBQUMzRyxNQUFJLE9BQU8sUUFBUSxXQUFXLEdBQUc7QUFDL0IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLFdBQVc7QUFDZixhQUFXLFlBQVksT0FBTyxXQUFXO0FBQ3ZDLFVBQU0sY0FBYyxPQUFPLEtBQUssUUFBUTtBQUN4QyxRQUFJLGNBQWMsVUFBVTtBQUMxQixpQkFBVztBQUFBLElBQ2I7QUFBQSxFQUNGO0FBRUEsU0FBTyxhQUFhLG9CQUFvQiwwQkFBaUM7QUFDM0U7QUFzQk8sU0FBUyxxQkFBcUIsUUFBNEM7QUFDL0UsTUFBSSxXQUFXO0FBQ2YsTUFBSSxhQUFhO0FBRWpCLGFBQVcsQ0FBQyxPQUFPLEtBQUssS0FBSyxPQUFPLFFBQVEsUUFBUSxHQUFHO0FBRXJELFFBQUssTUFBTSxVQUFVLGNBQWUsQ0FBQyxrQkFBa0IsT0FBTyxNQUFNLEdBQUc7QUFDckU7QUFBQSxJQUNGO0FBRUEsZUFBVztBQUNYLGlCQUFhLE1BQU07QUFBQSxFQUNyQjtBQUVBLFNBQU87QUFDVDtBQVlPLFNBQVMsNEJBQTRCLFFBQTBEO0FBQ3BHLE1BQUksV0FBVztBQUNmLE1BQUksZUFBOEI7QUFDbEMsTUFBSSxZQUFZO0FBRWhCLGFBQVcsWUFBWSxPQUFPLFdBQVc7QUFDdkMsVUFBTSxjQUFjLE9BQU8sS0FBSyxRQUFRO0FBQ3hDLFFBQUksY0FBYyxVQUFVO0FBQzFCLGlCQUFXO0FBQ1gscUJBQWU7QUFDZixrQkFBWTtBQUFBLElBQ2QsV0FBVyxnQkFBZ0IsVUFBVTtBQUNuQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTyxjQUFjLEtBQUssYUFBYSxvQkFBb0IsT0FBTztBQUNwRTtBQUVBLFNBQVMsa0JBQWtCLE9BQWUsUUFBNkM7QUFDckYsTUFBSSxDQUFDLE9BQU87QUFDVixXQUFPO0FBQUEsRUFDVDtBQUVBLFVBQUksdUNBQWdCLEtBQUssR0FBRztBQUMxQixlQUFPLGlEQUEwQixFQUFFLE9BQU8sYUFBYSxPQUFPLFlBQVksQ0FBQztBQUFBLEVBQzdFO0FBRUEsTUFBSSxNQUFNLFNBQVMsS0FBSyxNQUFNLFdBQVcsaUJBQWlCLEtBQUssTUFBTSxTQUFTLGlCQUFpQixHQUFHO0FBQ2hHLFVBQU0sU0FBUyxNQUFNLE1BQU0sR0FBRyxFQUFFO0FBRWhDLGVBQU8sOEJBQWMsTUFBTSxLQUFLLElBQUksT0FBTyxNQUFNLEVBQUUsS0FBSyxPQUFPLFFBQVE7QUFBQSxFQUN6RTtBQUVBLE1BQUksTUFBTSxXQUFXLGdCQUFnQixHQUFHO0FBQ3RDLFdBQU8sT0FBTyxTQUFTLFlBQVksRUFBRSxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQUEsRUFDbkU7QUFFQSxRQUFNLFNBQVMsTUFBTSxTQUFTLEdBQUcsSUFBSSxRQUFRLEdBQUcsS0FBSztBQUNyRCxTQUFPLE9BQU8sYUFBYSxTQUFTLE9BQU8sU0FBUyxXQUFXLE1BQU07QUFDdkU7IiwibmFtZXMiOlsiTm9Qcmlvcml0eVdpbm5lclJlYXNvbiJdfQ==
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -114,4 +115,4 @@ function isNotebookNavigatorApi(value) {
114
115
  NOTEBOOK_NAVIGATOR_PLUGIN_ID,
115
116
  resolveNotebookNavigatorApi
116
117
  });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RlYm9vay1uYXZpZ2F0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzbGljZSBvZiBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIHB1YmxpYyBBUEkgdGhpcyBsaWJyYXJ5IHRhbGtzIHRvLCBhbmQgdGhlIHJ1bnRpbWUgbmFycm93aW5nIHRoYXRcbiAqIGdldHMgaG9sZCBvZiBpdC5cbiAqXG4gKiAqKmBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlLCBzbyBpdCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gKiBgZmlsZXMtbWVudWAgd29ya3NwYWNlIGV2ZW50cyoqIOKAlCB3aGljaCBpcyB3aHkgYSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgc2ltcGx5IGRpc2FwcGVhciBmb3JcbiAqIGFueW9uZSBicm93c2luZyB0aHJvdWdoIGl0LiBXaGF0IGl0IG9mZmVycyBpbnN0ZWFkIGlzIGEgZG9jdW1lbnRlZCBleHRlbnNpb24gQVBJXG4gKiAoYGRvY3MvYXBpLXJlZmVyZW5jZS5tZGAgKyBgc3JjL2FwaS9wdWJsaWMvbm90ZWJvb2stbmF2aWdhdG9yLmQudHNgIGluIGBqb2hhbnNhbi9ub3RlYm9vay1uYXZpZ2F0b3JgLFxuICogQVBJIDIuMC4wKSwgcmVhY2hhYmxlIGF0IHJ1bnRpbWUgYXMgYGFwcC5wbHVnaW5zLmdldFBsdWdpbignbm90ZWJvb2stbmF2aWdhdG9yJykuYXBpYC5cbiAqXG4gKiBUaGUgdHlwZXMgYmVsb3cgYXJlIERFQ0xBUkVEIEhFUkUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQ6IGBOb3RlYm9vayBOYXZpZ2F0b3JgIHNoaXBzIGl0cyBgLmQudHNgIGZvclxuICogZG93bmxvYWQsIG5vdCBhcyBhbiBucG0gcGFja2FnZSwgYW5kIGRlcGVuZGluZyBvbiBpdCB3b3VsZCB0dXJuIGFuIG9wdGlvbmFsIGludGVncmF0aW9uIGludG8gYVxuICogYnVpbGQtdGltZSBkZXBlbmRlbmN5LiBUaGV5IGFyZSBkZWxpYmVyYXRlbHkgdGhlIG5hcnJvd2VzdCBzaGFwZSB0aGlzIGxpYnJhcnkgdXNlcyDigJQgdGhlIEFQSSBhbHNvXG4gKiBjYXJyaWVzIGBtZXRhZGF0YWAsIGBuYXZpZ2F0aW9uYCwgYHNlbGVjdGlvbmAsIGB0YWdDb2xsZWN0aW9uc2AsIGBwcm9wZXJ0eU5vZGVzYCBhbmQgYW4gZXZlbnQgYnVzLFxuICogbm9uZSBvZiB3aGljaCBhcHBseSB0byBhIGZpbGUvZm9sZGVyIGNvbW1hbmQgc3VyZmFjZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgTWVudUl0ZW0sXG4gIFRGaWxlLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIHB1YmxpYyBBUEkgb2JqZWN0LCBuYXJyb3dlZCB0byB3aGF0IHRoaXMgbGlicmFyeSB1c2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yQXBpIHtcbiAgLyoqXG4gICAqIFRoZSBtZW51LWV4dGVuc2lvbiBuYW1lc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBtZW51czogTm90ZWJvb2tOYXZpZ2F0b3JNZW51cztcbn1cblxuLyoqXG4gKiBXaGF0IGBtZW51cy5yZWdpc3RlckZpbGVNZW51YCBoYW5kcyBhIHN1YnNjcmliZXIgd2hlbiBhIEZJTEUgaXMgcmlnaHQtY2xpY2tlZC5cbiAqXG4gKiBUaGVyZSBpcyBubyBgTWVudWAgaGVyZSDigJQgYW4gaXRlbSBpcyBjb250cmlidXRlZCB0aHJvdWdoIGBhZGRJdGVtYCBhbG9uZSwgd2hpY2ggaXMgd2h5IHRoZVxuICogZmlsZS9maWxlcyBtZW51IGhhbmRsZXJzIGNhbm5vdCBzaW1wbHkgYmUgZm9yd2FyZGVkIHRvIGl0IGFuZCBoYXZlIHRvIGJlIGJyaWRnZWQgKHNlZVxuICogYGNvbXBvbmVudHMvbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50c2ApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yRmlsZU1lbnVDb250ZXh0IGV4dGVuZHMgTm90ZWJvb2tOYXZpZ2F0b3JNZW51Q29udGV4dCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGF0IHdhcyByaWdodC1jbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZTogVEZpbGU7XG5cbiAgLyoqXG4gICAqIFdoYXQgdGhlIHRyZWUgaGFkIHNlbGVjdGVkIHdoZW4gdGhlIG1lbnUgd2FzIHJhaXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdGlvbjogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudVNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgc2VsZWN0aW9uIGEgZmlsZSBtZW51IHdhcyByYWlzZWQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudVNlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBFdmVyeSBzZWxlY3RlZCBmaWxlLCB3aGljaCBmb3IgYHNpbmdsZWAgaXMganVzdCB0aGUgcmlnaHQtY2xpY2tlZCBvbmUuXG4gICAqL1xuICByZWFkb25seSBmaWxlczogcmVhZG9ubHkgVEZpbGVbXTtcblxuICAvKipcbiAgICogV2hldGhlciBvbmUgZmlsZSBvciBzZXZlcmFsIGFyZSBzZWxlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IE5vdGVib29rTmF2aWdhdG9yRmlsZU1lbnVTZWxlY3Rpb25Nb2RlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYSBmaWxlIG1lbnUgY292ZXJzIG9uZSBmaWxlIG9yIGEgbXVsdGktc2VsZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBOb3RlYm9va05hdmlnYXRvckZpbGVNZW51U2VsZWN0aW9uTW9kZSA9ICdtdWx0aXBsZScgfCAnc2luZ2xlJztcblxuLyoqXG4gKiBXaGF0IGBtZW51cy5yZWdpc3RlckZvbGRlck1lbnVgIGhhbmRzIGEgc3Vic2NyaWJlciB3aGVuIGEgRk9MREVSIGlzIHJpZ2h0LWNsaWNrZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JGb2xkZXJNZW51Q29udGV4dCBleHRlbmRzIE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQge1xuICAvKipcbiAgICogVGhlIGZvbGRlciB0aGF0IHdhcyByaWdodC1jbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyOiBURm9sZGVyO1xufVxuXG4vKipcbiAqIFdoYXQgZXZlcnkgYE5vdGVib29rIE5hdmlnYXRvcmAgbWVudSBjb250ZXh0IGhhcyBpbiBjb21tb246IGEgd2F5IHRvIGFkZCBhbiBpdGVtLCBhbmQgbm90aGluZyBlbHNlLlxuICpcbiAqIFRoZSBhYnNlbmNlIG9mIGEgYE1lbnVgIGlzIHRoZSB3aG9sZSBzaGFwZSBvZiB0aGUgaW50ZWdyYXRpb24gcHJvYmxlbSDigJQgY29tbWFuZCBoYW5kbGVycyB3cml0ZSBpbnRvXG4gKiBhIGBNZW51YCwgc28gc29tZXRoaW5nIGhhcyB0byBzaXQgYmV0d2VlbiB0aGVtIGFuZCB0aGlzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQge1xuICAvKipcbiAgICogQWRkcyBhbiBpdGVtIHRvIHRoZSBtZW51IGBOb3RlYm9vayBOYXZpZ2F0b3JgIGlzIGJ1aWxkaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBSZWNlaXZlcyB0aGUgY3JlYXRlZCBpdGVtLCB0byBiZSBjb25maWd1cmVkIGluIHBsYWNlLlxuICAgKi9cbiAgYWRkSXRlbTogKGNhbGxiYWNrOiAoaXRlbTogTWVudUl0ZW0pID0+IHZvaWQpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVW5yZWdpc3RlcnMgYSBtZW51IGV4dGVuc2lvbi4gYE5vdGVib29rIE5hdmlnYXRvcmAgcmV0dXJucyBhIGJhcmUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBkaXNwb3NhYmxlLFxuICogc28gaXQgaXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBicmlkZ2luZyBjb21wb25lbnQncyBgcmVnaXN0ZXJgLlxuICovXG5leHBvcnQgdHlwZSBOb3RlYm9va05hdmlnYXRvck1lbnVEaXNwb3NlID0gKCkgPT4gdm9pZDtcblxuLyoqXG4gKiBUaGUgYG1lbnVzYCBuYW1lc3BhY2Ugb2YgYE5vdGVib29rIE5hdmlnYXRvcmAncyBBUEkuXG4gKlxuICogT25seSB0aGUgZmlsZSBhbmQgZm9sZGVyIHJlZ2lzdHJhcnMgYXJlIGRlY2xhcmVkOiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSByZWdpc3RyYXJzIGV4dGVuZCBtZW51c1xuICogcmFpc2VkIG9uIHRoaW5ncyBhIGZpbGUvZm9sZGVyIGNvbW1hbmQgaGFuZGxlciBoYXMgbm8gY291bnRlcnBhcnQgZm9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yTWVudXMge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY29udHJpYnV0b3IgdG8gdGhlIGZpbGUgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBJbnZva2VkIHdoaWxlIHRoZSBtZW51IGlzIGJlaW5nIGJ1aWx0LlxuICAgKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdW5yZWdpc3RlcnMgdGhlIGNvbnRyaWJ1dG9yLlxuICAgKi9cbiAgcmVnaXN0ZXJGaWxlTWVudTogKGNhbGxiYWNrOiAoY29udGV4dDogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudUNvbnRleHQpID0+IHZvaWQpID0+IE5vdGVib29rTmF2aWdhdG9yTWVudURpc3Bvc2U7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNvbnRyaWJ1dG9yIHRvIHRoZSBmb2xkZXIgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBJbnZva2VkIHdoaWxlIHRoZSBtZW51IGlzIGJlaW5nIGJ1aWx0LlxuICAgKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdW5yZWdpc3RlcnMgdGhlIGNvbnRyaWJ1dG9yLlxuICAgKi9cbiAgcmVnaXN0ZXJGb2xkZXJNZW51OiAoY2FsbGJhY2s6IChjb250ZXh0OiBOb3RlYm9va05hdmlnYXRvckZvbGRlck1lbnVDb250ZXh0KSA9PiB2b2lkKSA9PiBOb3RlYm9va05hdmlnYXRvck1lbnVEaXNwb3NlO1xufVxuXG4vKipcbiAqIFRoZSBgc291cmNlYCBoYW5kZWQgdG8gdGhlIG1lbnUgZXZlbnQgaGFuZGxlcnMgZm9yIGEgYE5vdGVib29rIE5hdmlnYXRvcmAgbWVudS5cbiAqXG4gKiBPYnNpZGlhbidzIG93biBGaWxlIEV4cGxvcmVyIHNlbmRzIGBmaWxlLWV4cGxvcmVyLWNvbnRleHQtbWVudWA7IG5vdGhpbmcgaW4gdGhpcyBsaWJyYXJ5IGdhdGVzIG9uXG4gKiB0aGUgdmFsdWUsIGJ1dCB0aGUgaGFuZGxlcnMgYXJlIGNvbnRyYWN0ZWQgdG8gcmVjZWl2ZSBvbmUsIGFuZCBhIGRpc3RpbmN0IHN0cmluZyBpcyB3aGF0IG1ha2VzIGFcbiAqIGhhbmRsZXIgYWJsZSB0byB0ZWxsIHRoZSB0d28gc3VyZmFjZXMgYXBhcnQuXG4gKi9cbmV4cG9ydCBjb25zdCBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UgPSAnbm90ZWJvb2stbmF2aWdhdG9yLWNvbnRleHQtbWVudSc7XG5cbi8qKlxuICogYE5vdGVib29rIE5hdmlnYXRvcmAncyBwbHVnaW4gaWQsIGFzIGl0cyBtYW5pZmVzdCBkZWNsYXJlcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PVEVCT09LX05BVklHQVRPUl9QTFVHSU5fSUQgPSAnbm90ZWJvb2stbmF2aWdhdG9yJztcblxuLyoqXG4gKiBHZXRzIGBOb3RlYm9vayBOYXZpZ2F0b3JgJ3MgQVBJLCB3aGVuIGl0IGlzIGluc3RhbGxlZCwgZW5hYmxlZCBhbmQgbmV3IGVub3VnaC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIEFQSSwgb3IgYG51bGxgIHdoZW4gYE5vdGVib29rIE5hdmlnYXRvcmAgaXMgbm90IHRoZXJlIHRvIHRhbGsgdG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTm90ZWJvb2tOYXZpZ2F0b3JBcGkoYXBwOiBBcHApOiBOb3RlYm9va05hdmlnYXRvckFwaSB8IG51bGwge1xuICBjb25zdCBwbHVnaW4gPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCk7XG4gIGlmICghcGx1Z2luIHx8ICEoJ2FwaScgaW4gcGx1Z2luKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXBpOiB1bmtub3duID0gcGx1Z2luLmFwaTtcbiAgcmV0dXJuIGlzTm90ZWJvb2tOYXZpZ2F0b3JBcGkoYXBpKSA/IGFwaSA6IG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHRoYXQgYSB2YWx1ZSBpcyBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIEFQSSwgYnkgdGhlIG1lbWJlcnMgdGhpcyBsaWJyYXJ5IGFjdHVhbGx5IGNhbGxzLlxuICpcbiAqIEEgcHJlZGljYXRlIHJhdGhlciB0aGFuIGEgY2FzdCBvbiBwdXJwb3NlOiBgYXBpYCBpcyBub3QgcGFydCBvZiBPYnNpZGlhbidzIGBQbHVnaW5gIHR5cGUsIHNvIHRoZVxuICogdmFsdWUgYXJyaXZlcyBhcyBgdW5rbm93bmAgYW5kIHRoZSBvbmx5IGhvbmVzdCB3YXkgdG8gdHlwZSBpdCBpcyB0byBWRVJJRlkgaXQuIEEgYE5vdGVib29rIE5hdmlnYXRvcmBcbiAqIG9sZCBlbm91Z2ggdG8gcHJlZGF0ZSB0aGUgbWVudXMgbmFtZXNwYWNlLCBvciBhIGZ1dHVyZSBvbmUgdGhhdCByZW5hbWVzIGl0LCB0aGVyZWZvcmUgcmVhZHMgYXNcbiAqIFwibm8gQVBJXCIgYW5kIHRoZSBpbnRlZ3JhdGlvbiBzdGF5cyBkb3JtYW50IGluc3RlYWQgb2YgdGhyb3dpbmcgYXQgbWVudSB0aW1lLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjYW5kaWRhdGUgYGFwaWAgb2JqZWN0LlxuICogQHJldHVybnMgV2hldGhlciBpdCBjYXJyaWVzIGJvdGggbWVudSByZWdpc3RyYXJzLlxuICovXG5mdW5jdGlvbiBpc05vdGVib29rTmF2aWdhdG9yQXBpKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgTm90ZWJvb2tOYXZpZ2F0b3JBcGkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAhKCdtZW51cycgaW4gdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbWVudXM6IHVua25vd24gPSB2YWx1ZS5tZW51cztcbiAgcmV0dXJuIHR5cGVvZiBtZW51cyA9PT0gJ29iamVjdCcgJiYgbWVudXMgIT09IG51bGxcbiAgICAmJiAncmVnaXN0ZXJGaWxlTWVudScgaW4gbWVudXMgJiYgdHlwZW9mIG1lbnVzLnJlZ2lzdGVyRmlsZU1lbnUgPT09ICdmdW5jdGlvbidcbiAgICAmJiAncmVnaXN0ZXJGb2xkZXJNZW51JyBpbiBtZW51cyAmJiB0eXBlb2YgbWVudXMucmVnaXN0ZXJGb2xkZXJNZW51ID09PSAnZnVuY3Rpb24nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUlPLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0sK0JBQStCO0FBUXJDLFNBQVMsNEJBQTRCLEtBQXVDO0FBQ2pGLFFBQU0sU0FBUyxJQUFJLFFBQVEsVUFBVSw0QkFBNEI7QUFDakUsTUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLFNBQVM7QUFDakMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLE1BQWUsT0FBTztBQUM1QixTQUFPLHVCQUF1QixHQUFHLElBQUksTUFBTTtBQUM3QztBQWFBLFNBQVMsdUJBQXVCLE9BQStDO0FBQzdFLE1BQUksT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLEVBQUUsV0FBVyxRQUFRO0FBQ3RFLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxRQUFpQixNQUFNO0FBQzdCLFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVSxRQUN6QyxzQkFBc0IsU0FBUyxPQUFPLE1BQU0scUJBQXFCLGNBQ2pFLHdCQUF3QixTQUFTLE9BQU8sTUFBTSx1QkFBdUI7QUFDNUU7IiwibmFtZXMiOltdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RlYm9vay1uYXZpZ2F0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzbGljZSBvZiBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIHB1YmxpYyBBUEkgdGhpcyBsaWJyYXJ5IHRhbGtzIHRvLCBhbmQgdGhlIHJ1bnRpbWUgbmFycm93aW5nIHRoYXRcbiAqIGdldHMgaG9sZCBvZiBpdC5cbiAqXG4gKiAqKmBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlLCBzbyBpdCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gKiBgZmlsZXMtbWVudWAgd29ya3NwYWNlIGV2ZW50cyoqIOKAlCB3aGljaCBpcyB3aHkgYSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgc2ltcGx5IGRpc2FwcGVhciBmb3JcbiAqIGFueW9uZSBicm93c2luZyB0aHJvdWdoIGl0LiBXaGF0IGl0IG9mZmVycyBpbnN0ZWFkIGlzIGEgZG9jdW1lbnRlZCBleHRlbnNpb24gQVBJXG4gKiAoYGRvY3MvYXBpLXJlZmVyZW5jZS5tZGAgKyBgc3JjL2FwaS9wdWJsaWMvbm90ZWJvb2stbmF2aWdhdG9yLmQudHNgIGluIGBqb2hhbnNhbi9ub3RlYm9vay1uYXZpZ2F0b3JgLFxuICogQVBJIDIuMC4wKSwgcmVhY2hhYmxlIGF0IHJ1bnRpbWUgYXMgYGFwcC5wbHVnaW5zLmdldFBsdWdpbignbm90ZWJvb2stbmF2aWdhdG9yJykuYXBpYC5cbiAqXG4gKiBUaGUgdHlwZXMgYmVsb3cgYXJlIERFQ0xBUkVEIEhFUkUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQ6IGBOb3RlYm9vayBOYXZpZ2F0b3JgIHNoaXBzIGl0cyBgLmQudHNgIGZvclxuICogZG93bmxvYWQsIG5vdCBhcyBhbiBucG0gcGFja2FnZSwgYW5kIGRlcGVuZGluZyBvbiBpdCB3b3VsZCB0dXJuIGFuIG9wdGlvbmFsIGludGVncmF0aW9uIGludG8gYVxuICogYnVpbGQtdGltZSBkZXBlbmRlbmN5LiBUaGV5IGFyZSBkZWxpYmVyYXRlbHkgdGhlIG5hcnJvd2VzdCBzaGFwZSB0aGlzIGxpYnJhcnkgdXNlcyDigJQgdGhlIEFQSSBhbHNvXG4gKiBjYXJyaWVzIGBtZXRhZGF0YWAsIGBuYXZpZ2F0aW9uYCwgYHNlbGVjdGlvbmAsIGB0YWdDb2xsZWN0aW9uc2AsIGBwcm9wZXJ0eU5vZGVzYCBhbmQgYW4gZXZlbnQgYnVzLFxuICogbm9uZSBvZiB3aGljaCBhcHBseSB0byBhIGZpbGUvZm9sZGVyIGNvbW1hbmQgc3VyZmFjZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgTWVudUl0ZW0sXG4gIFRGaWxlLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIHB1YmxpYyBBUEkgb2JqZWN0LCBuYXJyb3dlZCB0byB3aGF0IHRoaXMgbGlicmFyeSB1c2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yQXBpIHtcbiAgLyoqXG4gICAqIFRoZSBtZW51LWV4dGVuc2lvbiBuYW1lc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBtZW51czogTm90ZWJvb2tOYXZpZ2F0b3JNZW51cztcbn1cblxuLyoqXG4gKiBXaGF0IGBtZW51cy5yZWdpc3RlckZpbGVNZW51YCBoYW5kcyBhIHN1YnNjcmliZXIgd2hlbiBhIEZJTEUgaXMgcmlnaHQtY2xpY2tlZC5cbiAqXG4gKiBUaGVyZSBpcyBubyBgTWVudWAgaGVyZSDigJQgYW4gaXRlbSBpcyBjb250cmlidXRlZCB0aHJvdWdoIGBhZGRJdGVtYCBhbG9uZSwgd2hpY2ggaXMgd2h5IHRoZVxuICogZmlsZS9maWxlcyBtZW51IGhhbmRsZXJzIGNhbm5vdCBzaW1wbHkgYmUgZm9yd2FyZGVkIHRvIGl0IGFuZCBoYXZlIHRvIGJlIGJyaWRnZWQgKHNlZVxuICogYGNvbXBvbmVudHMvbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50c2ApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yRmlsZU1lbnVDb250ZXh0IGV4dGVuZHMgTm90ZWJvb2tOYXZpZ2F0b3JNZW51Q29udGV4dCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGF0IHdhcyByaWdodC1jbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZTogVEZpbGU7XG5cbiAgLyoqXG4gICAqIFdoYXQgdGhlIHRyZWUgaGFkIHNlbGVjdGVkIHdoZW4gdGhlIG1lbnUgd2FzIHJhaXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdGlvbjogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudVNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgc2VsZWN0aW9uIGEgZmlsZSBtZW51IHdhcyByYWlzZWQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudVNlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBFdmVyeSBzZWxlY3RlZCBmaWxlLCB3aGljaCBmb3IgYHNpbmdsZWAgaXMganVzdCB0aGUgcmlnaHQtY2xpY2tlZCBvbmUuXG4gICAqL1xuICByZWFkb25seSBmaWxlczogcmVhZG9ubHkgVEZpbGVbXTtcblxuICAvKipcbiAgICogV2hldGhlciBvbmUgZmlsZSBvciBzZXZlcmFsIGFyZSBzZWxlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IE5vdGVib29rTmF2aWdhdG9yRmlsZU1lbnVTZWxlY3Rpb25Nb2RlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYSBmaWxlIG1lbnUgY292ZXJzIG9uZSBmaWxlIG9yIGEgbXVsdGktc2VsZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBOb3RlYm9va05hdmlnYXRvckZpbGVNZW51U2VsZWN0aW9uTW9kZSA9ICdtdWx0aXBsZScgfCAnc2luZ2xlJztcblxuLyoqXG4gKiBXaGF0IGBtZW51cy5yZWdpc3RlckZvbGRlck1lbnVgIGhhbmRzIGEgc3Vic2NyaWJlciB3aGVuIGEgRk9MREVSIGlzIHJpZ2h0LWNsaWNrZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JGb2xkZXJNZW51Q29udGV4dCBleHRlbmRzIE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQge1xuICAvKipcbiAgICogVGhlIGZvbGRlciB0aGF0IHdhcyByaWdodC1jbGlja2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyOiBURm9sZGVyO1xufVxuXG4vKipcbiAqIFdoYXQgZXZlcnkgYE5vdGVib29rIE5hdmlnYXRvcmAgbWVudSBjb250ZXh0IGhhcyBpbiBjb21tb246IGEgd2F5IHRvIGFkZCBhbiBpdGVtLCBhbmQgbm90aGluZyBlbHNlLlxuICpcbiAqIFRoZSBhYnNlbmNlIG9mIGEgYE1lbnVgIGlzIHRoZSB3aG9sZSBzaGFwZSBvZiB0aGUgaW50ZWdyYXRpb24gcHJvYmxlbSDigJQgY29tbWFuZCBoYW5kbGVycyB3cml0ZSBpbnRvXG4gKiBhIGBNZW51YCwgc28gc29tZXRoaW5nIGhhcyB0byBzaXQgYmV0d2VlbiB0aGVtIGFuZCB0aGlzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQge1xuICAvKipcbiAgICogQWRkcyBhbiBpdGVtIHRvIHRoZSBtZW51IGBOb3RlYm9vayBOYXZpZ2F0b3JgIGlzIGJ1aWxkaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBSZWNlaXZlcyB0aGUgY3JlYXRlZCBpdGVtLCB0byBiZSBjb25maWd1cmVkIGluIHBsYWNlLlxuICAgKi9cbiAgYWRkSXRlbTogKGNhbGxiYWNrOiAoaXRlbTogTWVudUl0ZW0pID0+IHZvaWQpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVW5yZWdpc3RlcnMgYSBtZW51IGV4dGVuc2lvbi4gYE5vdGVib29rIE5hdmlnYXRvcmAgcmV0dXJucyBhIGJhcmUgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBkaXNwb3NhYmxlLFxuICogc28gaXQgaXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBicmlkZ2luZyBjb21wb25lbnQncyBgcmVnaXN0ZXJgLlxuICovXG5leHBvcnQgdHlwZSBOb3RlYm9va05hdmlnYXRvck1lbnVEaXNwb3NlID0gKCkgPT4gdm9pZDtcblxuLyoqXG4gKiBUaGUgYG1lbnVzYCBuYW1lc3BhY2Ugb2YgYE5vdGVib29rIE5hdmlnYXRvcmAncyBBUEkuXG4gKlxuICogT25seSB0aGUgZmlsZSBhbmQgZm9sZGVyIHJlZ2lzdHJhcnMgYXJlIGRlY2xhcmVkOiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSByZWdpc3RyYXJzIGV4dGVuZCBtZW51c1xuICogcmFpc2VkIG9uIHRoaW5ncyBhIGZpbGUvZm9sZGVyIGNvbW1hbmQgaGFuZGxlciBoYXMgbm8gY291bnRlcnBhcnQgZm9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVib29rTmF2aWdhdG9yTWVudXMge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY29udHJpYnV0b3IgdG8gdGhlIGZpbGUgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBJbnZva2VkIHdoaWxlIHRoZSBtZW51IGlzIGJlaW5nIGJ1aWx0LlxuICAgKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdW5yZWdpc3RlcnMgdGhlIGNvbnRyaWJ1dG9yLlxuICAgKi9cbiAgcmVnaXN0ZXJGaWxlTWVudTogKGNhbGxiYWNrOiAoY29udGV4dDogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudUNvbnRleHQpID0+IHZvaWQpID0+IE5vdGVib29rTmF2aWdhdG9yTWVudURpc3Bvc2U7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNvbnRyaWJ1dG9yIHRvIHRoZSBmb2xkZXIgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBJbnZva2VkIHdoaWxlIHRoZSBtZW51IGlzIGJlaW5nIGJ1aWx0LlxuICAgKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdW5yZWdpc3RlcnMgdGhlIGNvbnRyaWJ1dG9yLlxuICAgKi9cbiAgcmVnaXN0ZXJGb2xkZXJNZW51OiAoY2FsbGJhY2s6IChjb250ZXh0OiBOb3RlYm9va05hdmlnYXRvckZvbGRlck1lbnVDb250ZXh0KSA9PiB2b2lkKSA9PiBOb3RlYm9va05hdmlnYXRvck1lbnVEaXNwb3NlO1xufVxuXG4vKipcbiAqIFRoZSBgc291cmNlYCBoYW5kZWQgdG8gdGhlIG1lbnUgZXZlbnQgaGFuZGxlcnMgZm9yIGEgYE5vdGVib29rIE5hdmlnYXRvcmAgbWVudS5cbiAqXG4gKiBPYnNpZGlhbidzIG93biBGaWxlIEV4cGxvcmVyIHNlbmRzIGBmaWxlLWV4cGxvcmVyLWNvbnRleHQtbWVudWA7IG5vdGhpbmcgaW4gdGhpcyBsaWJyYXJ5IGdhdGVzIG9uXG4gKiB0aGUgdmFsdWUsIGJ1dCB0aGUgaGFuZGxlcnMgYXJlIGNvbnRyYWN0ZWQgdG8gcmVjZWl2ZSBvbmUsIGFuZCBhIGRpc3RpbmN0IHN0cmluZyBpcyB3aGF0IG1ha2VzIGFcbiAqIGhhbmRsZXIgYWJsZSB0byB0ZWxsIHRoZSB0d28gc3VyZmFjZXMgYXBhcnQuXG4gKi9cbmV4cG9ydCBjb25zdCBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UgPSAnbm90ZWJvb2stbmF2aWdhdG9yLWNvbnRleHQtbWVudSc7XG5cbi8qKlxuICogYE5vdGVib29rIE5hdmlnYXRvcmAncyBwbHVnaW4gaWQsIGFzIGl0cyBtYW5pZmVzdCBkZWNsYXJlcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PVEVCT09LX05BVklHQVRPUl9QTFVHSU5fSUQgPSAnbm90ZWJvb2stbmF2aWdhdG9yJztcblxuLyoqXG4gKiBHZXRzIGBOb3RlYm9vayBOYXZpZ2F0b3JgJ3MgQVBJLCB3aGVuIGl0IGlzIGluc3RhbGxlZCwgZW5hYmxlZCBhbmQgbmV3IGVub3VnaC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIEFQSSwgb3IgYG51bGxgIHdoZW4gYE5vdGVib29rIE5hdmlnYXRvcmAgaXMgbm90IHRoZXJlIHRvIHRhbGsgdG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTm90ZWJvb2tOYXZpZ2F0b3JBcGkoYXBwOiBBcHApOiBOb3RlYm9va05hdmlnYXRvckFwaSB8IG51bGwge1xuICBjb25zdCBwbHVnaW4gPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCk7XG4gIGlmICghcGx1Z2luIHx8ICEoJ2FwaScgaW4gcGx1Z2luKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXBpOiB1bmtub3duID0gcGx1Z2luLmFwaTtcbiAgcmV0dXJuIGlzTm90ZWJvb2tOYXZpZ2F0b3JBcGkoYXBpKSA/IGFwaSA6IG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHRoYXQgYSB2YWx1ZSBpcyBgTm90ZWJvb2sgTmF2aWdhdG9yYCdzIEFQSSwgYnkgdGhlIG1lbWJlcnMgdGhpcyBsaWJyYXJ5IGFjdHVhbGx5IGNhbGxzLlxuICpcbiAqIEEgcHJlZGljYXRlIHJhdGhlciB0aGFuIGEgY2FzdCBvbiBwdXJwb3NlOiBgYXBpYCBpcyBub3QgcGFydCBvZiBPYnNpZGlhbidzIGBQbHVnaW5gIHR5cGUsIHNvIHRoZVxuICogdmFsdWUgYXJyaXZlcyBhcyBgdW5rbm93bmAgYW5kIHRoZSBvbmx5IGhvbmVzdCB3YXkgdG8gdHlwZSBpdCBpcyB0byBWRVJJRlkgaXQuIEEgYE5vdGVib29rIE5hdmlnYXRvcmBcbiAqIG9sZCBlbm91Z2ggdG8gcHJlZGF0ZSB0aGUgbWVudXMgbmFtZXNwYWNlLCBvciBhIGZ1dHVyZSBvbmUgdGhhdCByZW5hbWVzIGl0LCB0aGVyZWZvcmUgcmVhZHMgYXNcbiAqIFwibm8gQVBJXCIgYW5kIHRoZSBpbnRlZ3JhdGlvbiBzdGF5cyBkb3JtYW50IGluc3RlYWQgb2YgdGhyb3dpbmcgYXQgbWVudSB0aW1lLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjYW5kaWRhdGUgYGFwaWAgb2JqZWN0LlxuICogQHJldHVybnMgV2hldGhlciBpdCBjYXJyaWVzIGJvdGggbWVudSByZWdpc3RyYXJzLlxuICovXG5mdW5jdGlvbiBpc05vdGVib29rTmF2aWdhdG9yQXBpKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgTm90ZWJvb2tOYXZpZ2F0b3JBcGkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAhKCdtZW51cycgaW4gdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbWVudXM6IHVua25vd24gPSB2YWx1ZS5tZW51cztcbiAgcmV0dXJuIHR5cGVvZiBtZW51cyA9PT0gJ29iamVjdCcgJiYgbWVudXMgIT09IG51bGxcbiAgICAmJiAncmVnaXN0ZXJGaWxlTWVudScgaW4gbWVudXMgJiYgdHlwZW9mIG1lbnVzLnJlZ2lzdGVyRmlsZU1lbnUgPT09ICdmdW5jdGlvbidcbiAgICAmJiAncmVnaXN0ZXJGb2xkZXJNZW51JyBpbiBtZW51cyAmJiB0eXBlb2YgbWVudXMucmVnaXN0ZXJGb2xkZXJNZW51ID09PSAnZnVuY3Rpb24nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlJTyxNQUFNLGlDQUFpQztBQUt2QyxNQUFNLCtCQUErQjtBQVFyQyxTQUFTLDRCQUE0QixLQUF1QztBQUNqRixRQUFNLFNBQVMsSUFBSSxRQUFRLFVBQVUsNEJBQTRCO0FBQ2pFLE1BQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxTQUFTO0FBQ2pDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFlLE9BQU87QUFDNUIsU0FBTyx1QkFBdUIsR0FBRyxJQUFJLE1BQU07QUFDN0M7QUFhQSxTQUFTLHVCQUF1QixPQUErQztBQUM3RSxNQUFJLE9BQU8sVUFBVSxZQUFZLFVBQVUsUUFBUSxFQUFFLFdBQVcsUUFBUTtBQUN0RSxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sUUFBaUIsTUFBTTtBQUM3QixTQUFPLE9BQU8sVUFBVSxZQUFZLFVBQVUsUUFDekMsc0JBQXNCLFNBQVMsT0FBTyxNQUFNLHFCQUFxQixjQUNqRSx3QkFBd0IsU0FBUyxPQUFPLE1BQU0sdUJBQXVCO0FBQzVFOyIsIm5hbWVzIjpbXX0=
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -153,4 +154,4 @@ function getObsidianDevUtilsBag() {
153
154
  resetObsidianDevUtilsState,
154
155
  shareTypescriptLibStateWithObsidianDevUtilsState
155
156
  });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhIHByb2Nlc3Mtd2lkZSBzaGFyZWQtc3RhdGUgYmFnIHVzZWQgaW50ZXJuYWxseSBieSBgb2JzaWRpYW4tZGV2LXV0aWxzYC5cbiAqXG4gKiBUaGUgYmFnIGlzIHN0b3JlZCBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLCBpLmUuIG9uIHRoZSBnbG9iYWwgb2JqZWN0IG9mIHRoZSByZWFsbSBpblxuICogd2hpY2ggYG9ic2lkaWFuLWRldi11dGlsc2AgaXMgbG9hZGVkLiBCZWNhdXNlIGEgZnVuY3Rpb24ncyBgZ2xvYmFsVGhpc2AgcmVzb2x2ZXMgdG8gaXRzIGRlZmluaW5nXG4gKiByZWFsbSAobm90IHRoZSBjYWxsZXIncyksIGV2ZXJ5IGNvbnN1bWVyIHRoYXQgYnVuZGxlcyB0aGUgbGlicmFyeSBpbiB0aGUgbWFpbiBPYnNpZGlhbiByZW5kZXJlclxuICogc2hhcmVzIHRoZSBzYW1lIGJhZywgcmVnYXJkbGVzcyBvZiB3aGljaCB3aW5kb3cgaXMgY3VycmVudGx5IGFjdGl2ZS4gVGhpcyBpbnRlbnRpb25hbGx5IHJlcGxhY2VzXG4gKiB0aGUgcHJldmlvdXMgYEFwcGAtc2NvcGVkIHN0b3JhZ2UsIHNvIGNhbGxlcnMgbm8gbG9uZ2VyIG5lZWQgdG8gcGFzcyBhbiBgQXBwYCBpbnN0YW5jZS5cbiAqXG4gKiBUaGUgZ2VuZXJpYywgbm9uLU9ic2lkaWFuIHN0YXRlICh0aGUgZGVidWdnZXJzLCB0aGUgYGRlYnVnYCBpbnN0YW5jZSBhbmQgdGhlIHNoYXJlZCBhYm9ydCBjb250cm9sbGVyKSBsaXZlcyBpblxuICogYHR5cGVzY3JpcHQtbGliLXN0YXRlLnRzYCBpbnN0ZWFkLiB7QGxpbmsgc2hhcmVUeXBlc2NyaXB0TGliU3RhdGVXaXRoT2JzaWRpYW5EZXZVdGlsc1N0YXRlfSBsaW5rcyB0aGUgdHdvLCBzb1xuICogcGx1Z2lucyBidW5kbGluZyBhbiBvbGRlciBjb3B5IG9mIHRoaXMgbGlicmFyeSwgd2hpY2ggc3RpbGwga2VlcCB0aGF0IHN0YXRlIGhlcmUsIHNoYXJlIGl0IHdpdGggbmV3ZXIgb25lcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgeyBnZXRUeXBlc2NyaXB0TGliU3RhdGVTbG90IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGVzY3JpcHQtbGliLXN0YXRlJztcbmltcG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcblxuaW50ZXJmYWNlIE9ic2lkaWFuRGV2VXRpbHNXcmFwcGVyIHtcbiAgX19vYnNpZGlhbkRldlV0aWxzOiBHZW5lcmljT2JqZWN0O1xufVxuXG4vKipcbiAqIFRoZSBrZXlzIHdob3NlIHN0YXRlIG1vdmVkIGZyb20gYF9fb2JzaWRpYW5EZXZVdGlsc2AgdG8gdGhlIGdlbmVyaWMgc2hhcmVkIHN0YXRlLCBhbmQgd2hpY2ggb2xkZXIgY29waWVzIG9mXG4gKiB0aGlzIGxpYnJhcnkgc3RpbGwga2VlcCB1bmRlciBgX19vYnNpZGlhbkRldlV0aWxzYC5cbiAqL1xuY29uc3QgU0hBUkVEX1dJVEhfVFlQRVNDUklQVF9MSUJfU1RBVEVfS0VZUyA9IFsnZGVidWcnLCAnZGVidWdnZXJzJywgJ3NoYXJlZEFib3J0Q29udHJvbGxlciddIGFzIGNvbnN0O1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBjcmVhdGVzIGEgc2hhcmVkLXN0YXRlIHtAbGluayBWYWx1ZVdyYXBwZXJ9IGZvciBhIGdpdmVuIGtleSBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBzaGFyZWQgc3RhdGUgdmFsdWUuXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSBvciByZXRyaWV2ZSB0aGUgc2hhcmVkIHN0YXRlIHVuZGVyLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSBpZiB0aGUgc2hhcmVkIHN0YXRlIGRvZXMgbm90IGV4aXN0IHlldC5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgVmFsdWVXcmFwcGVyfSB0aGF0IHN0b3JlcyB0aGUgc2hhcmVkIHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlPFQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBWYWx1ZVdyYXBwZXI8VD4ge1xuICByZXR1cm4gKGdldE9ic2lkaWFuRGV2VXRpbHNCYWcoKVtrZXldID8/PSBWYWx1ZVdyYXBwZXIub2YoZGVmYXVsdFZhbHVlKSkgYXMgVmFsdWVXcmFwcGVyPFQ+O1xufVxuXG4vKipcbiAqIENsZWFycyB0aGUgc2hhcmVkLXN0YXRlIGJhZyBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLlxuICpcbiAqIEludGVuZGVkIGZvciB0ZXN0IGlzb2xhdGlvbjogY2FsbCBpdCBiZWZvcmUgZWFjaCB0ZXN0IHNvIGFjY3VtdWxhdGVkIHN0YXRlIChkZWJ1Z2dlcnMsIHF1ZXVlcyxcbiAqIHJlZ2lzdGVyZWQgaGFuZGxlcnMsIGV0Yy4pIGRvZXMgbm90IGxlYWsgYmV0d2VlbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKCk6IHZvaWQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgc2hhcmVkIHN0YXRlIGludGVudGlvbmFsbHkgbGl2ZXMgb24gdGhlIHJlYWxtIGdsb2JhbC5cbiAgKGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkRldlV0aWxzV3JhcHBlcj4pLl9fb2JzaWRpYW5EZXZVdGlscyA9IHt9O1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSBnZW5lcmljIHNoYXJlZCBzdGF0ZSBhbmQgYF9fb2JzaWRpYW5EZXZVdGlsc2AgaG9sZCB0aGUgc2FtZSB7QGxpbmsgVmFsdWVXcmFwcGVyfSBmb3IgZWFjaCBrZXkgdGhhdFxuICogbW92ZWQgYmV0d2VlbiB0aGVtLlxuICpcbiAqIEEgd3JhcHBlciBhbHJlYWR5IHVuZGVyIGBfX29ic2lkaWFuRGV2VXRpbHNgIHdpbnMsIGJlY2F1c2UgYW4gb2xkZXIgY29weSBvZiB0aGlzIGxpYnJhcnkgbG9hZGVkIGZpcnN0IGFuZCBpdHNcbiAqIGNhbGxlcnMgYWxyZWFkeSBob2xkIHRoYXQgaW5zdGFuY2UuIE90aGVyd2lzZSB0aGUgZ2VuZXJpYyB3cmFwcGVyIGlzIHB1Ymxpc2hlZCB1bmRlciBgX19vYnNpZGlhbkRldlV0aWxzYCwgZm9yXG4gKiBvbGRlciBjb3BpZXMgbG9hZGVkIGxhdGVyIGFuZCBmb3IgdGhlIGRldnRvb2xzIGNvbnNvbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGFyZVR5cGVzY3JpcHRMaWJTdGF0ZVdpdGhPYnNpZGlhbkRldlV0aWxzU3RhdGUoKTogdm9pZCB7XG4gIGNvbnN0IGJhZyA9IGdldE9ic2lkaWFuRGV2VXRpbHNCYWcoKTtcbiAgY29uc3QgdmFsdWVzID0gZ2V0VHlwZXNjcmlwdExpYlN0YXRlU2xvdCgpLnZhbHVlcztcbiAgZm9yIChjb25zdCBrZXkgb2YgU0hBUkVEX1dJVEhfVFlQRVNDUklQVF9MSUJfU1RBVEVfS0VZUykge1xuICAgIGNvbnN0IGxlZ2FjeVdyYXBwZXIgPSBiYWdba2V5XSBhcyB1bmRlZmluZWQgfCBWYWx1ZVdyYXBwZXI7XG4gICAgaWYgKGxlZ2FjeVdyYXBwZXIpIHtcbiAgICAgIHZhbHVlc1trZXldID0gbGVnYWN5V3JhcHBlcjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwZXIgPSB2YWx1ZXNba2V5XTtcbiAgICBpZiAod3JhcHBlcikge1xuICAgICAgYmFnW2tleV0gPSB3cmFwcGVyO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkRldlV0aWxzQmFnKCk6IEdlbmVyaWNPYmplY3Qge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgc2hhcmVkIHN0YXRlIGludGVudGlvbmFsbHkgbGl2ZXMgb24gdGhlIHJlYWxtIGdsb2JhbC5cbiAgY29uc3Qgd3JhcHBlciA9IGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkRldlV0aWxzV3JhcHBlcj47XG4gIHdyYXBwZXIuX19vYnNpZGlhbkRldlV0aWxzID8/PSB7fTtcbiAgcmV0dXJuIHdyYXBwZXIuX19vYnNpZGlhbkRldlV0aWxzO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0JBLGtDQUEwQztBQUMxQywyQkFBNkI7QUFVN0IsTUFBTSx3Q0FBd0MsQ0FBQyxTQUFTLGFBQWEsdUJBQXVCO0FBVXJGLFNBQVMseUJBQTRCLEtBQWEsY0FBa0M7QUFDekYsU0FBUSx1QkFBdUIsRUFBRSxHQUFHLE1BQU0sa0NBQWEsR0FBRyxZQUFZO0FBQ3hFO0FBUU8sU0FBUyw2QkFBbUM7QUFFakQsRUFBQyxXQUFnRCxxQkFBcUIsQ0FBQztBQUN6RTtBQVVPLFNBQVMsbURBQXlEO0FBQ3ZFLFFBQU0sTUFBTSx1QkFBdUI7QUFDbkMsUUFBTSxhQUFTLHVEQUEwQixFQUFFO0FBQzNDLGFBQVcsT0FBTyx1Q0FBdUM7QUFDdkQsVUFBTSxnQkFBZ0IsSUFBSSxHQUFHO0FBQzdCLFFBQUksZUFBZTtBQUNqQixhQUFPLEdBQUcsSUFBSTtBQUNkO0FBQUEsSUFDRjtBQUVBLFVBQU0sVUFBVSxPQUFPLEdBQUc7QUFDMUIsUUFBSSxTQUFTO0FBQ1gsVUFBSSxHQUFHLElBQUk7QUFBQSxJQUNiO0FBQUEsRUFDRjtBQUNGO0FBRUEsU0FBUyx5QkFBd0M7QUFFL0MsUUFBTSxVQUFVO0FBQ2hCLFVBQVEsdUJBQXVCLENBQUM7QUFDaEMsU0FBTyxRQUFRO0FBQ2pCOyIsIm5hbWVzIjpbXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhIHByb2Nlc3Mtd2lkZSBzaGFyZWQtc3RhdGUgYmFnIHVzZWQgaW50ZXJuYWxseSBieSBgb2JzaWRpYW4tZGV2LXV0aWxzYC5cbiAqXG4gKiBUaGUgYmFnIGlzIHN0b3JlZCBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLCBpLmUuIG9uIHRoZSBnbG9iYWwgb2JqZWN0IG9mIHRoZSByZWFsbSBpblxuICogd2hpY2ggYG9ic2lkaWFuLWRldi11dGlsc2AgaXMgbG9hZGVkLiBCZWNhdXNlIGEgZnVuY3Rpb24ncyBgZ2xvYmFsVGhpc2AgcmVzb2x2ZXMgdG8gaXRzIGRlZmluaW5nXG4gKiByZWFsbSAobm90IHRoZSBjYWxsZXIncyksIGV2ZXJ5IGNvbnN1bWVyIHRoYXQgYnVuZGxlcyB0aGUgbGlicmFyeSBpbiB0aGUgbWFpbiBPYnNpZGlhbiByZW5kZXJlclxuICogc2hhcmVzIHRoZSBzYW1lIGJhZywgcmVnYXJkbGVzcyBvZiB3aGljaCB3aW5kb3cgaXMgY3VycmVudGx5IGFjdGl2ZS4gVGhpcyBpbnRlbnRpb25hbGx5IHJlcGxhY2VzXG4gKiB0aGUgcHJldmlvdXMgYEFwcGAtc2NvcGVkIHN0b3JhZ2UsIHNvIGNhbGxlcnMgbm8gbG9uZ2VyIG5lZWQgdG8gcGFzcyBhbiBgQXBwYCBpbnN0YW5jZS5cbiAqXG4gKiBUaGUgZ2VuZXJpYywgbm9uLU9ic2lkaWFuIHN0YXRlICh0aGUgZGVidWdnZXJzLCB0aGUgYGRlYnVnYCBpbnN0YW5jZSBhbmQgdGhlIHNoYXJlZCBhYm9ydCBjb250cm9sbGVyKSBsaXZlcyBpblxuICogYHR5cGVzY3JpcHQtbGliLXN0YXRlLnRzYCBpbnN0ZWFkLiB7QGxpbmsgc2hhcmVUeXBlc2NyaXB0TGliU3RhdGVXaXRoT2JzaWRpYW5EZXZVdGlsc1N0YXRlfSBsaW5rcyB0aGUgdHdvLCBzb1xuICogcGx1Z2lucyBidW5kbGluZyBhbiBvbGRlciBjb3B5IG9mIHRoaXMgbGlicmFyeSwgd2hpY2ggc3RpbGwga2VlcCB0aGF0IHN0YXRlIGhlcmUsIHNoYXJlIGl0IHdpdGggbmV3ZXIgb25lcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgeyBnZXRUeXBlc2NyaXB0TGliU3RhdGVTbG90IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGVzY3JpcHQtbGliLXN0YXRlJztcbmltcG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcblxuaW50ZXJmYWNlIE9ic2lkaWFuRGV2VXRpbHNXcmFwcGVyIHtcbiAgX19vYnNpZGlhbkRldlV0aWxzOiBHZW5lcmljT2JqZWN0O1xufVxuXG4vKipcbiAqIFRoZSBrZXlzIHdob3NlIHN0YXRlIG1vdmVkIGZyb20gYF9fb2JzaWRpYW5EZXZVdGlsc2AgdG8gdGhlIGdlbmVyaWMgc2hhcmVkIHN0YXRlLCBhbmQgd2hpY2ggb2xkZXIgY29waWVzIG9mXG4gKiB0aGlzIGxpYnJhcnkgc3RpbGwga2VlcCB1bmRlciBgX19vYnNpZGlhbkRldlV0aWxzYC5cbiAqL1xuY29uc3QgU0hBUkVEX1dJVEhfVFlQRVNDUklQVF9MSUJfU1RBVEVfS0VZUyA9IFsnZGVidWcnLCAnZGVidWdnZXJzJywgJ3NoYXJlZEFib3J0Q29udHJvbGxlciddIGFzIGNvbnN0O1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBjcmVhdGVzIGEgc2hhcmVkLXN0YXRlIHtAbGluayBWYWx1ZVdyYXBwZXJ9IGZvciBhIGdpdmVuIGtleSBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBzaGFyZWQgc3RhdGUgdmFsdWUuXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSBvciByZXRyaWV2ZSB0aGUgc2hhcmVkIHN0YXRlIHVuZGVyLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSBpZiB0aGUgc2hhcmVkIHN0YXRlIGRvZXMgbm90IGV4aXN0IHlldC5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgVmFsdWVXcmFwcGVyfSB0aGF0IHN0b3JlcyB0aGUgc2hhcmVkIHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlPFQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBWYWx1ZVdyYXBwZXI8VD4ge1xuICByZXR1cm4gKGdldE9ic2lkaWFuRGV2VXRpbHNCYWcoKVtrZXldID8/PSBWYWx1ZVdyYXBwZXIub2YoZGVmYXVsdFZhbHVlKSkgYXMgVmFsdWVXcmFwcGVyPFQ+O1xufVxuXG4vKipcbiAqIENsZWFycyB0aGUgc2hhcmVkLXN0YXRlIGJhZyBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgLlxuICpcbiAqIEludGVuZGVkIGZvciB0ZXN0IGlzb2xhdGlvbjogY2FsbCBpdCBiZWZvcmUgZWFjaCB0ZXN0IHNvIGFjY3VtdWxhdGVkIHN0YXRlIChkZWJ1Z2dlcnMsIHF1ZXVlcyxcbiAqIHJlZ2lzdGVyZWQgaGFuZGxlcnMsIGV0Yy4pIGRvZXMgbm90IGxlYWsgYmV0d2VlbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKCk6IHZvaWQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgc2hhcmVkIHN0YXRlIGludGVudGlvbmFsbHkgbGl2ZXMgb24gdGhlIHJlYWxtIGdsb2JhbC5cbiAgKGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkRldlV0aWxzV3JhcHBlcj4pLl9fb2JzaWRpYW5EZXZVdGlscyA9IHt9O1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSBnZW5lcmljIHNoYXJlZCBzdGF0ZSBhbmQgYF9fb2JzaWRpYW5EZXZVdGlsc2AgaG9sZCB0aGUgc2FtZSB7QGxpbmsgVmFsdWVXcmFwcGVyfSBmb3IgZWFjaCBrZXkgdGhhdFxuICogbW92ZWQgYmV0d2VlbiB0aGVtLlxuICpcbiAqIEEgd3JhcHBlciBhbHJlYWR5IHVuZGVyIGBfX29ic2lkaWFuRGV2VXRpbHNgIHdpbnMsIGJlY2F1c2UgYW4gb2xkZXIgY29weSBvZiB0aGlzIGxpYnJhcnkgbG9hZGVkIGZpcnN0IGFuZCBpdHNcbiAqIGNhbGxlcnMgYWxyZWFkeSBob2xkIHRoYXQgaW5zdGFuY2UuIE90aGVyd2lzZSB0aGUgZ2VuZXJpYyB3cmFwcGVyIGlzIHB1Ymxpc2hlZCB1bmRlciBgX19vYnNpZGlhbkRldlV0aWxzYCwgZm9yXG4gKiBvbGRlciBjb3BpZXMgbG9hZGVkIGxhdGVyIGFuZCBmb3IgdGhlIGRldnRvb2xzIGNvbnNvbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGFyZVR5cGVzY3JpcHRMaWJTdGF0ZVdpdGhPYnNpZGlhbkRldlV0aWxzU3RhdGUoKTogdm9pZCB7XG4gIGNvbnN0IGJhZyA9IGdldE9ic2lkaWFuRGV2VXRpbHNCYWcoKTtcbiAgY29uc3QgdmFsdWVzID0gZ2V0VHlwZXNjcmlwdExpYlN0YXRlU2xvdCgpLnZhbHVlcztcbiAgZm9yIChjb25zdCBrZXkgb2YgU0hBUkVEX1dJVEhfVFlQRVNDUklQVF9MSUJfU1RBVEVfS0VZUykge1xuICAgIGNvbnN0IGxlZ2FjeVdyYXBwZXIgPSBiYWdba2V5XSBhcyB1bmRlZmluZWQgfCBWYWx1ZVdyYXBwZXI7XG4gICAgaWYgKGxlZ2FjeVdyYXBwZXIpIHtcbiAgICAgIHZhbHVlc1trZXldID0gbGVnYWN5V3JhcHBlcjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwZXIgPSB2YWx1ZXNba2V5XTtcbiAgICBpZiAod3JhcHBlcikge1xuICAgICAgYmFnW2tleV0gPSB3cmFwcGVyO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkRldlV0aWxzQmFnKCk6IEdlbmVyaWNPYmplY3Qge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgc2hhcmVkIHN0YXRlIGludGVudGlvbmFsbHkgbGl2ZXMgb24gdGhlIHJlYWxtIGdsb2JhbC5cbiAgY29uc3Qgd3JhcHBlciA9IGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkRldlV0aWxzV3JhcHBlcj47XG4gIHdyYXBwZXIuX19vYnNpZGlhbkRldlV0aWxzID8/PSB7fTtcbiAgcmV0dXJuIHdyYXBwZXIuX19vYnNpZGlhbkRldlV0aWxzO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxrQ0FBMEM7QUFDMUMsMkJBQTZCO0FBVTdCLE1BQU0sd0NBQXdDLENBQUMsU0FBUyxhQUFhLHVCQUF1QjtBQVVyRixTQUFTLHlCQUE0QixLQUFhLGNBQWtDO0FBQ3pGLFNBQVEsdUJBQXVCLEVBQUUsR0FBRyxNQUFNLGtDQUFhLEdBQUcsWUFBWTtBQUN4RTtBQVFPLFNBQVMsNkJBQW1DO0FBRWpELEVBQUMsV0FBZ0QscUJBQXFCLENBQUM7QUFDekU7QUFVTyxTQUFTLG1EQUF5RDtBQUN2RSxRQUFNLE1BQU0sdUJBQXVCO0FBQ25DLFFBQU0sYUFBUyx1REFBMEIsRUFBRTtBQUMzQyxhQUFXLE9BQU8sdUNBQXVDO0FBQ3ZELFVBQU0sZ0JBQWdCLElBQUksR0FBRztBQUM3QixRQUFJLGVBQWU7QUFDakIsYUFBTyxHQUFHLElBQUk7QUFDZDtBQUFBLElBQ0Y7QUFFQSxVQUFNLFVBQVUsT0FBTyxHQUFHO0FBQzFCLFFBQUksU0FBUztBQUNYLFVBQUksR0FBRyxJQUFJO0FBQUEsSUFDYjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMseUJBQXdDO0FBRS9DLFFBQU0sVUFBVTtBQUNoQixVQUFRLHVCQUF1QixDQUFDO0FBQ2hDLFNBQU8sUUFBUTtBQUNqQjsiLCJuYW1lcyI6W119
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -143,4 +144,4 @@ class PluginObsidianProtocolHandlerRegistrar {
143
144
  0 && (module.exports = {
144
145
  PluginObsidianProtocolHandlerRegistrar
145
146
  });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlciByZWdpc3RyYXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5Qcm90b2NvbERhdGEsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBub3JtYWxpemVQcm9taXNhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIE9ic2lkaWFuIHByb3RvY29sIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIE9ic2lkaWFuIHByb3RvY29sIGhhbmRsZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlcjogKHBhcmFtczogT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXJSZWdpc3Rlck9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUGFyYW1zKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXJSZWdpc3Rlck9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIGhhbmRsZXIgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gb2JzaWRpYW5Qcm90b2NvbERhdGEgLSBUaGUgZGF0YSBwYXNzZWQgdG8gdGhlIGhhbmRsZXIuXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGhhbmRsZXIuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyOiAob2JzaWRpYW5Qcm90b2NvbERhdGE6IE9ic2lkaWFuUHJvdG9jb2xEYXRhKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xufVxuXG50eXBlIFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcyA9IE9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcztcblxuLyoqXG4gKiBPYnNpZGlhbiBwcm90b2NvbCBoYW5kbGVyIHJlZ2lzdHJhciBpbiBhbiBPYnNpZGlhbiBwbHVnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhciBpbXBsZW1lbnRzIE9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UgdGhlIHByb3RvY29sIGhhbmRsZXJzIGFyZSByZWdpc3RlcmVkIHdpdGguXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhcn0gY2xhc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlZ2lzdGVyIHRoZSBwcm90b2NvbCBoYW5kbGVyIHdpdGguXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGx1Z2luOiBQbHVnaW4pIHtcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlcihwYXJhbXM6IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXIocGFyYW1zLmFjdGlvbiwgKG9ic2lkaWFuUHJvdG9jb2xEYXRhKSA9PiBub3JtYWxpemVQcm9taXNhYmxlKHBhcmFtcy5oYW5kbGVyKG9ic2lkaWFuUHJvdG9jb2xEYXRhKSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLG1CQUFvQztBQWtDN0IsTUFBTSx1Q0FBbUY7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUkzRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksUUFBZ0I7QUFDakMsU0FBSyxTQUFTO0FBQUEsRUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxnQ0FBZ0MsUUFBMkY7QUFDaEksU0FBSyxPQUFPLGdDQUFnQyxPQUFPLFFBQVEsQ0FBQyw2QkFBeUIsa0NBQW9CLE9BQU8sUUFBUSxvQkFBb0IsQ0FBQyxDQUFDO0FBQUEsRUFDaEo7QUFDRjsiLCJuYW1lcyI6W119
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlciByZWdpc3RyYXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5Qcm90b2NvbERhdGEsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBub3JtYWxpemVQcm9taXNhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcblxuLyoqXG4gKiBBIHJlZ2lzdHJhciBmb3IgT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIE9ic2lkaWFuIHByb3RvY29sIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIE9ic2lkaWFuIHByb3RvY29sIGhhbmRsZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlcjogKHBhcmFtczogT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXJSZWdpc3Rlck9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUGFyYW1zKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXJSZWdpc3RyYXJSZWdpc3Rlck9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIGhhbmRsZXIgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gb2JzaWRpYW5Qcm90b2NvbERhdGEgLSBUaGUgZGF0YSBwYXNzZWQgdG8gdGhlIGhhbmRsZXIuXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGhhbmRsZXIuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyOiAob2JzaWRpYW5Qcm90b2NvbERhdGE6IE9ic2lkaWFuUHJvdG9jb2xEYXRhKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xufVxuXG50eXBlIFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcyA9IE9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcztcblxuLyoqXG4gKiBPYnNpZGlhbiBwcm90b2NvbCBoYW5kbGVyIHJlZ2lzdHJhciBpbiBhbiBPYnNpZGlhbiBwbHVnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhciBpbXBsZW1lbnRzIE9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UgdGhlIHByb3RvY29sIGhhbmRsZXJzIGFyZSByZWdpc3RlcmVkIHdpdGguXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhcn0gY2xhc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlZ2lzdGVyIHRoZSBwcm90b2NvbCBoYW5kbGVyIHdpdGguXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGx1Z2luOiBQbHVnaW4pIHtcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgT2JzaWRpYW4gcHJvdG9jb2wgaGFuZGxlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlcihwYXJhbXM6IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyUmVnaXN0ZXJPYnNpZGlhblByb3RvY29sSGFuZGxlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXIocGFyYW1zLmFjdGlvbiwgKG9ic2lkaWFuUHJvdG9jb2xEYXRhKSA9PiBub3JtYWxpemVQcm9taXNhYmxlKHBhcmFtcy5oYW5kbGVyKG9ic2lkaWFuUHJvdG9jb2xEYXRhKSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxtQkFBb0M7QUFrQzdCLE1BQU0sdUNBQW1GO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJM0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPWixZQUFZLFFBQWdCO0FBQ2pDLFNBQUssU0FBUztBQUFBLEVBQ2hCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sZ0NBQWdDLFFBQTJGO0FBQ2hJLFNBQUssT0FBTyxnQ0FBZ0MsT0FBTyxRQUFRLENBQUMsNkJBQXlCLGtDQUFvQixPQUFPLFFBQVEsb0JBQW9CLENBQUMsQ0FBQztBQUFBLEVBQ2hKO0FBQ0Y7IiwibmFtZXMiOltdfQ==
@@ -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
- if (globalThis.app.isMobile) {
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 shouldUseWikilinks(app) {
160
161
  isSpellcheckEnabledForMode,
161
162
  shouldUseWikilinks
162
163
  });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1zZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG4vKipcbiAqIEEgd2F5IGFuIGlucHV0IGRlY2lkZXMgd2hldGhlciBpdCBpcyBzcGVsbC1jaGVja2VkLlxuICpcbiAqIFRoZSBgc3BlbGxjaGVja2AgYXR0cmlidXRlIGlzIHRoZSB3aG9sZSBtZWNoYW5pc206IE9ic2lkaWFuIG5ldmVyIGNhbGxzIEVsZWN0cm9uJ3NcbiAqIGBzZXRTcGVsbENoZWNrZXJFbmFibGVkYCwgaXQgb25seSBzZXRzIHRoZSBhdHRyaWJ1dGUgcGVyIGVsZW1lbnQuIFNvIGBBbHdheXNPbmAgcmVhbGx5IGRvZXMgc3BlbGwtY2hlY2tcbiAqIHdpdGggYEVkaXRvciA+IFNwZWxsY2hlY2tgIG9mZiwgYW5kIHdoYXQgaXQgaW52b2tlcyBpcyBDaHJvbWl1bSdzIGJ1aWx0LWluIGNoZWNrZXIuXG4gKi9cbmV4cG9ydCBlbnVtIFNwZWxsY2hlY2tNb2RlIHtcbiAgLyoqXG4gICAqIEFsd2F5cyBzcGVsbC1jaGVjayB0aGUgaW5wdXQsIHdoYXRldmVyIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBzYXlzLlxuICAgKi9cbiAgQWx3YXlzT24gPSAnQWx3YXlzT24nLFxuXG4gIC8qKlxuICAgKiBGb2xsb3cgYEVkaXRvciA+IFNwZWxsY2hlY2tgLCB0aGUgd2F5IE9ic2lkaWFuJ3Mgb3duIG5hbWUtZW50cnkgc3VyZmFjZXMgZG8g4oCUIHRoZSBpbmxpbmUgbm90ZSB0aXRsZSxcbiAgICogdGhlIGZpbGUgZXhwbG9yZXIncyBpbmxpbmUgcmVuYW1lLCB0aGUgcHJvcGVydGllcyBmaWVsZHMuXG4gICAqL1xuICBGb2xsb3dPYnNpZGlhblNldHRpbmcgPSAnRm9sbG93T2JzaWRpYW5TZXR0aW5nJyxcblxuICAvKipcbiAgICogTmV2ZXIgc3BlbGwtY2hlY2sgdGhlIGlucHV0LCB3aGF0ZXZlciBgRWRpdG9yID4gU3BlbGxjaGVja2Agc2F5cy5cbiAgICovXG4gIE9mZiA9ICdPZmYnXG59XG5cbi8qKlxuICogQSBmb3JtYXQgb2YgdGhlIG5ldyBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBOZXdMaW5rRm9ybWF0ID0gJ2Fic29sdXRlJyB8ICdyZWxhdGl2ZScgfCAnc2hvcnRlc3QnO1xuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRvIHVzZSByZWxhdGl2ZSBsaW5rcyBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRvIHVzZSByZWxhdGl2ZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ld0xpbmtGb3JtYXQoYXBwOiBBcHApOiBOZXdMaW5rRm9ybWF0IHtcbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRDb25maWcoJ25ld0xpbmtGb3JtYXQnKSBhcyBOZXdMaW5rRm9ybWF0O1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRoZSBzcGVsbGNoZWNrIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgc3BlbGxjaGVjayBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTcGVsbGNoZWNrRW5hYmxlZChhcHA6IEFwcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihhcHAudmF1bHQuZ2V0Q29uZmlnKCdzcGVsbGNoZWNrJykpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEge0BsaW5rIFNwZWxsY2hlY2tNb2RlfSBhZ2FpbnN0IHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzcGVsbGNoZWNrTW9kZSAtIFRoZSBtb2RlIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBpbnB1dCBzaG91bGQgYmUgc3BlbGwtY2hlY2tlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3BlbGxjaGVja0VuYWJsZWRGb3JNb2RlKGFwcDogQXBwLCBzcGVsbGNoZWNrTW9kZTogU3BlbGxjaGVja01vZGUpOiBib29sZWFuIHtcbiAgc3dpdGNoIChzcGVsbGNoZWNrTW9kZSkge1xuICAgIGNhc2UgU3BlbGxjaGVja01vZGUuQWx3YXlzT246IHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlIFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZzoge1xuICAgICAgcmV0dXJuIGlzU3BlbGxjaGVja0VuYWJsZWQoYXBwKTtcbiAgICB9XG4gICAgY2FzZSBTcGVsbGNoZWNrTW9kZS5PZmY6IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYXNzZXJ0TmV2ZXIoc3BlbGxjaGVja01vZGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRvIHVzZSB3aWtpbGlua3MgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0byB1c2Ugd2lraWxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkVXNlV2lraWxpbmtzKGFwcDogQXBwKTogYm9vbGVhbiB7XG4gIHJldHVybiAhYXBwLnZhdWx0LmdldENvbmZpZygndXNlTWFya2Rvd25MaW5rcycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHlCQUE0QjtBQVNyQixJQUFLLGlCQUFMLGtCQUFLQSxvQkFBTDtBQUlMLEVBQUFBLGdCQUFBLGNBQVc7QUFNWCxFQUFBQSxnQkFBQSwyQkFBd0I7QUFLeEIsRUFBQUEsZ0JBQUEsU0FBTTtBQWZJLFNBQUFBO0FBQUEsR0FBQTtBQTZCTCxTQUFTLGlCQUFpQixLQUF5QjtBQUN4RCxTQUFPLElBQUksTUFBTSxVQUFVLGVBQWU7QUFDNUM7QUFRTyxTQUFTLG9CQUFvQixLQUFtQjtBQUNyRCxTQUFPLFFBQVEsSUFBSSxNQUFNLFVBQVUsWUFBWSxDQUFDO0FBQ2xEO0FBU08sU0FBUywyQkFBMkIsS0FBVSxnQkFBeUM7QUFDNUYsVUFBUSxnQkFBZ0I7QUFBQSxJQUN0QixLQUFLLDJCQUF5QjtBQUM1QixhQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsS0FBSyxxREFBc0M7QUFDekMsYUFBTyxvQkFBb0IsR0FBRztBQUFBLElBQ2hDO0FBQUEsSUFDQSxLQUFLLGlCQUFvQjtBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsU0FBUztBQUNQLDBDQUFZLGNBQWM7QUFBQSxJQUM1QjtBQUFBLEVBQ0Y7QUFDRjtBQVFPLFNBQVMsbUJBQW1CLEtBQW1CO0FBQ3BELFNBQU8sQ0FBQyxJQUFJLE1BQU0sVUFBVSxrQkFBa0I7QUFDaEQ7IiwibmFtZXMiOlsiU3BlbGxjaGVja01vZGUiXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1zZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG4vKipcbiAqIEEgd2F5IGFuIGlucHV0IGRlY2lkZXMgd2hldGhlciBpdCBpcyBzcGVsbC1jaGVja2VkLlxuICpcbiAqIFRoZSBgc3BlbGxjaGVja2AgYXR0cmlidXRlIGlzIHRoZSB3aG9sZSBtZWNoYW5pc206IE9ic2lkaWFuIG5ldmVyIGNhbGxzIEVsZWN0cm9uJ3NcbiAqIGBzZXRTcGVsbENoZWNrZXJFbmFibGVkYCwgaXQgb25seSBzZXRzIHRoZSBhdHRyaWJ1dGUgcGVyIGVsZW1lbnQuIFNvIGBBbHdheXNPbmAgcmVhbGx5IGRvZXMgc3BlbGwtY2hlY2tcbiAqIHdpdGggYEVkaXRvciA+IFNwZWxsY2hlY2tgIG9mZiwgYW5kIHdoYXQgaXQgaW52b2tlcyBpcyBDaHJvbWl1bSdzIGJ1aWx0LWluIGNoZWNrZXIuXG4gKi9cbmV4cG9ydCBlbnVtIFNwZWxsY2hlY2tNb2RlIHtcbiAgLyoqXG4gICAqIEFsd2F5cyBzcGVsbC1jaGVjayB0aGUgaW5wdXQsIHdoYXRldmVyIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBzYXlzLlxuICAgKi9cbiAgQWx3YXlzT24gPSAnQWx3YXlzT24nLFxuXG4gIC8qKlxuICAgKiBGb2xsb3cgYEVkaXRvciA+IFNwZWxsY2hlY2tgLCB0aGUgd2F5IE9ic2lkaWFuJ3Mgb3duIG5hbWUtZW50cnkgc3VyZmFjZXMgZG8g4oCUIHRoZSBpbmxpbmUgbm90ZSB0aXRsZSxcbiAgICogdGhlIGZpbGUgZXhwbG9yZXIncyBpbmxpbmUgcmVuYW1lLCB0aGUgcHJvcGVydGllcyBmaWVsZHMuXG4gICAqL1xuICBGb2xsb3dPYnNpZGlhblNldHRpbmcgPSAnRm9sbG93T2JzaWRpYW5TZXR0aW5nJyxcblxuICAvKipcbiAgICogTmV2ZXIgc3BlbGwtY2hlY2sgdGhlIGlucHV0LCB3aGF0ZXZlciBgRWRpdG9yID4gU3BlbGxjaGVja2Agc2F5cy5cbiAgICovXG4gIE9mZiA9ICdPZmYnXG59XG5cbi8qKlxuICogQSBmb3JtYXQgb2YgdGhlIG5ldyBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBOZXdMaW5rRm9ybWF0ID0gJ2Fic29sdXRlJyB8ICdyZWxhdGl2ZScgfCAnc2hvcnRlc3QnO1xuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRvIHVzZSByZWxhdGl2ZSBsaW5rcyBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRvIHVzZSByZWxhdGl2ZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ld0xpbmtGb3JtYXQoYXBwOiBBcHApOiBOZXdMaW5rRm9ybWF0IHtcbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRDb25maWcoJ25ld0xpbmtGb3JtYXQnKSBhcyBOZXdMaW5rRm9ybWF0O1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRoZSBzcGVsbGNoZWNrIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgc3BlbGxjaGVjayBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTcGVsbGNoZWNrRW5hYmxlZChhcHA6IEFwcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihhcHAudmF1bHQuZ2V0Q29uZmlnKCdzcGVsbGNoZWNrJykpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEge0BsaW5rIFNwZWxsY2hlY2tNb2RlfSBhZ2FpbnN0IHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzcGVsbGNoZWNrTW9kZSAtIFRoZSBtb2RlIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBpbnB1dCBzaG91bGQgYmUgc3BlbGwtY2hlY2tlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3BlbGxjaGVja0VuYWJsZWRGb3JNb2RlKGFwcDogQXBwLCBzcGVsbGNoZWNrTW9kZTogU3BlbGxjaGVja01vZGUpOiBib29sZWFuIHtcbiAgc3dpdGNoIChzcGVsbGNoZWNrTW9kZSkge1xuICAgIGNhc2UgU3BlbGxjaGVja01vZGUuQWx3YXlzT246IHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlIFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZzoge1xuICAgICAgcmV0dXJuIGlzU3BlbGxjaGVja0VuYWJsZWQoYXBwKTtcbiAgICB9XG4gICAgY2FzZSBTcGVsbGNoZWNrTW9kZS5PZmY6IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYXNzZXJ0TmV2ZXIoc3BlbGxjaGVja01vZGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRvIHVzZSB3aWtpbGlua3MgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0byB1c2Ugd2lraWxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkVXNlV2lraWxpbmtzKGFwcDogQXBwKTogYm9vbGVhbiB7XG4gIHJldHVybiAhYXBwLnZhdWx0LmdldENvbmZpZygndXNlTWFya2Rvd25MaW5rcycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSx5QkFBNEI7QUFTckIsSUFBSyxpQkFBTCxrQkFBS0Esb0JBQUw7QUFJTCxFQUFBQSxnQkFBQSxjQUFXO0FBTVgsRUFBQUEsZ0JBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLGdCQUFBLFNBQU07QUFmSSxTQUFBQTtBQUFBLEdBQUE7QUE2QkwsU0FBUyxpQkFBaUIsS0FBeUI7QUFDeEQsU0FBTyxJQUFJLE1BQU0sVUFBVSxlQUFlO0FBQzVDO0FBUU8sU0FBUyxvQkFBb0IsS0FBbUI7QUFDckQsU0FBTyxRQUFRLElBQUksTUFBTSxVQUFVLFlBQVksQ0FBQztBQUNsRDtBQVNPLFNBQVMsMkJBQTJCLEtBQVUsZ0JBQXlDO0FBQzVGLFVBQVEsZ0JBQWdCO0FBQUEsSUFDdEIsS0FBSywyQkFBeUI7QUFDNUIsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLEtBQUsscURBQXNDO0FBQ3pDLGFBQU8sb0JBQW9CLEdBQUc7QUFBQSxJQUNoQztBQUFBLElBQ0EsS0FBSyxpQkFBb0I7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLFNBQVM7QUFDUCwwQ0FBWSxjQUFjO0FBQUEsSUFDNUI7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxTQUFTLG1CQUFtQixLQUFtQjtBQUNwRCxTQUFPLENBQUMsSUFBSSxNQUFNLFVBQVUsa0JBQWtCO0FBQ2hEOyIsIm5hbWVzIjpbIlNwZWxsY2hlY2tNb2RlIl19
@@ -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
- if (globalThis.app.isMobile) {
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;
@@ -516,4 +517,4 @@ function trimWwwAutolinkLiteralEnd(literal) {
516
517
  toParseLinkReference,
517
518
  unescapeAlias
518
519
  });
519
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJzZS1saW5rLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIHBhcnNpbmcgbWFya2Rvd24gYW5kIHdpa2kgbGlua3MgaW50byBzdHJ1Y3R1cmVkIGRhdGEsIGFuZCBmb3JcbiAqIGVzY2FwaW5nLCB1bmVzY2FwaW5nLCBhbmQgZW5jb2RpbmcgbGluayBjb21wb25lbnRzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7IExpbmsgfSBmcm9tICdtZGFzdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBMb2MsXG4gIFJlZmVyZW5jZSxcbiAgUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSAndW5pc3QnO1xuXG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGlzRmlsZVVybCxcbiAgaXNVcmxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3VybCc7XG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuaW1wb3J0IHsgcmVtYXJrIH0gZnJvbSAncmVtYXJrJztcbmltcG9ydCByZW1hcmtQYXJzZSBmcm9tICdyZW1hcmstcGFyc2UnO1xuaW1wb3J0IHsgd2lraUxpbmtQbHVnaW4gfSBmcm9tICdyZW1hcmstd2lraS1saW5rJztcbmltcG9ydCB7IHZpc2l0IH0gZnJvbSAndW5pc3QtdXRpbC12aXNpdCc7XG5cbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIGZvciBzcGVjaWFsIG1hcmtkb3duIGxpbmsgc3ltYm9scy5cbiAqL1xuY29uc3QgU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVggPSAvW1xcXFxbXFxdPD5fKn49YCRdL2c7XG5cbmNvbnN0IFdJS0lMSU5LX0RJVklERVIgPSAnfCc7XG5cbi8qKlxuICogTWF0Y2hlcyBhIGNhbmRpZGF0ZSBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rIGxpdGVyYWw6IGB3d3cuYCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgb3IgYWZ0ZXJcbiAqIHdoaXRlc3BhY2UsIGAqYCwgYF9gLCBgfmAsIGAoYCBvciBgPGAsIHJ1bm5pbmcgdXAgdG8gdGhlIG5leHQgd2hpdGVzcGFjZSwgYDxgIG9yIGA+YC4gR0ZNIGl0c2VsZlxuICoga2VlcHMgYSBjbG9zaW5nIGA+YCBpbiB0aGUgbGl0ZXJhbCAoT2JzaWRpYW4gcmVuZGVycyBgPHd3dy5leGFtcGxlLmNvbT5gIHdpdGggYW4gaHJlZiBlbmRpbmcgaW5cbiAqIGAlM0VgKTsgc3RvcHBpbmcgYmVmb3JlIGl0IGlzIGRlbGliZXJhdGUsIHNvIHRoZSBicmFja2V0cyBjYW4gYmUgcmVwb3J0ZWQgYXJvdW5kIHRoZSBsaXRlcmFsIGluc3RlYWQuXG4gKlxuICogVGhlIHByZWNlZGluZyBjaGFyYWN0ZXIgaXMgY29uc3VtZWQgYW5kIHRoZSBsaXRlcmFsIGNhcHR1cmVkIGFzIGBMaXRlcmFsYCwgYmVjYXVzZSBhIGxvb2tiZWhpbmQgaXMgYVxuICogc3ludGF4IGVycm9yIG9uIGlPUyBiZWZvcmUgMTYuNCwgYmVsb3cgdGhlIGlPUyAxNSBPYnNpZGlhbiBtb2JpbGUgc3RpbGwgc3VwcG9ydHMuIENvbnN1bWluZyBpdCBsb3NlcyBub1xuICogY2FuZGlkYXRlOiBhIG1hdGNoIGVuZHMgYmVmb3JlIHdoaXRlc3BhY2UsIGA8YCwgYD5gIG9yIHRoZSBlbmQsIHNvIHRoZSBjaGFyYWN0ZXIgYSBmb2xsb3dpbmcgY2FuZGlkYXRlXG4gKiBuZWVkcyBpcyBuZXZlciBwYXJ0IG9mIHRoZSBwcmV2aW91cyBtYXRjaC5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfQ0FORElEQVRFX1JFR19FWFAgPSAvKD86XnxbXFxzKCo8X35dKSg/PExpdGVyYWw+d3d3XFwuW15cXHM8Pl0qKS9nO1xuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGRvbWFpbiBvZiBhIEdGTSBleHRlbmRlZCBgd3d3LmAgYXV0b2xpbmsgbGl0ZXJhbDogc2VnbWVudHMgb2YgbGV0dGVycywgZGlnaXRzLFxuICogdW5kZXJzY29yZXMgYW5kIGh5cGhlbnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMuXG4gKi9cbmNvbnN0IFdXV19BVVRPTElOS19MSVRFUkFMX0RPTUFJTl9SRUdfRVhQID0gL153d3coPzpcXC5bXFxwe0x9XFxwe059Xy1dKykrL3U7XG5cbi8qKlxuICogVGhlIGNoYXJhY3RlcnMgR0ZNIGRyb3BzIGZyb20gdGhlIGVuZCBvZiBhbiBleHRlbmRlZCBhdXRvbGluay5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfVFJBSUxJTkdfUFVOQ1RVQVRJT04gPSBuZXcgU2V0KFsnXycsICcsJywgJzonLCAnIScsICc/JywgJy4nLCAnKicsICd+J10pO1xuXG4vKipcbiAqIE1hdGNoZXMgYW4gZW50aXR5IHJlZmVyZW5jZSBhdCB0aGUgZW5kIG9mIGFuIGV4dGVuZGVkIGF1dG9saW5rLCB3aGljaCBHRk0gZHJvcHMuXG4gKi9cbmNvbnN0IFRSQUlMSU5HX0VOVElUWV9SRUZFUkVOQ0VfUkVHX0VYUCA9IC8mW1xcZEEtWmEtel0rOyQvO1xuXG4vKipcbiAqIFRoZSBzY2hlbWUgT2JzaWRpYW4gb3BlbnMgYSBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rIGxpdGVyYWwgd2l0aC5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfU0NIRU1FID0gJ2h0dHA6Ly8nO1xuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgbGlua3MgZnJvbSBhIG5vdGUncyBmcm9udG1hdHRlciB2aWEge0BsaW5rIHBhcnNlRnJvbnRtYXR0ZXJMaW5rc30uIEludGVybmFsXG4gKiBzaW5nbGUtbGluayBmcm9udG1hdHRlciB2YWx1ZXMgYXJlIG9taXR0ZWQsIGFzIE9ic2lkaWFuIG5hdGl2ZWx5IGNhY2hlcyB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgZXh0ZXJuYWwgbGlua3MgcGFyc2VkIGZyb20gc2luZ2xlLWxpbmsgKHNpbmdsZS12YWx1ZSkgZnJvbnRtYXR0ZXIgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZXh0ZXJuYWwgbGlua3MgcGFyc2VkIGZyb20gbXVsdGktbGluayAobXVsdGktdmFsdWUpIGZyb250bWF0dGVyIHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpVmFsdWVGcm9udG1hdHRlckV4dGVybmFsTGlua3M6IFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlV2l0aE9mZnNldHNbXTtcblxuICAvKipcbiAgICogVGhlIGludGVybmFsIGxpbmtzIHBhcnNlZCBmcm9tIG11bHRpLWxpbmsgKG11bHRpLXZhbHVlKSBmcm9udG1hdHRlciB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rczogUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0c1tdO1xufVxuXG4vKipcbiAqIEEge0BsaW5rIEZyb250bWF0dGVyTGlua0NhY2hlfSBmb3IgYSBsaW5rIHBhcnNlZCBmcm9tIGEgc2luZ2xlLWxpbmsgZnJvbnRtYXR0ZXIgdmFsdWUgdmlhXG4gKiB7QGxpbmsgcGFyc2VMaW5rc30uIEl0IGNhcnJpZXMgdGhlIGZ1bGwge0BsaW5rIFBhcnNlTGlua1Jlc3VsdH0gc28gY29uc3VtZXJzIGNhbiBpbnNwZWN0IHRoZSBwYXJzZVxuICogZGV0YWlscyB3aXRob3V0IHJlLXBhcnNpbmcgdGhlIGxpbmsuIFVzZSB0aGlzIHdoZW4gdGhlIHdob2xlIGZyb250bWF0dGVyIHZhbHVlIGlzIGEgc2luZ2xlIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2UgZXh0ZW5kcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBwYXJzZUxpbmtSZXN1bHQ6IFBhcnNlTGlua1Jlc3VsdDtcbn1cblxuLyoqXG4gKiBBIHtAbGluayBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZX0gZm9yIGEgbGluayBwYXJzZWQgZnJvbSBhIG11bHRpLWxpbmsgZnJvbnRtYXR0ZXIgdmFsdWUgdmlhXG4gKiB7QGxpbmsgcGFyc2VMaW5rc30sIGFkZGl0aW9uYWxseSBjYXJyeWluZyB0aGUgb2Zmc2V0cyBvZiB0aGUgbGluayB3aXRoaW4gdGhlIGZyb250bWF0dGVyIHZhbHVlLiBVc2VcbiAqIHRoaXMgd2hlbiB0aGUgZnJvbnRtYXR0ZXIgdmFsdWUgaG9sZHMgbXVsdGlwbGUgbGlua3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0cyBleHRlbmRzIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIEFuIGVuZCBvZmZzZXQgb2YgdGhlIGxpbmsgaW4gdGhlIGZyb250bWF0dGVyIHZhbHVlLlxuICAgKi9cbiAgZW5kT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgc3RhcnQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICovXG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHBhcnNlTGlua30uIFRoZSBzYW1lIGFzIHtAbGluayBQYXJzZUxpbmtzT3B0aW9uc30uXG4gKi9cbmV4cG9ydCB0eXBlIFBhcnNlTGlua09wdGlvbnMgPSBQYXJzZUxpbmtzT3B0aW9ucztcblxuLyoqXG4gKiBBIHtAbGluayBSZWZlcmVuY2VDYWNoZX0gZm9yIGEgbGluayBwYXJzZWQgZnJvbSBjb250ZW50IHZpYSB7QGxpbmsgcGFyc2VMaW5rc30uIEl0IGNhcnJpZXMgdGhlIGZ1bGxcbiAqIHtAbGluayBQYXJzZUxpbmtSZXN1bHR9IHNvIGNvbnN1bWVycyBjYW4gaW5zcGVjdCB0aGUgcGFyc2UgZGV0YWlscyB3aXRob3V0IHJlLXBhcnNpbmcgdGhlIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVmZXJlbmNlIGV4dGVuZHMgUmVmZXJlbmNlQ2FjaGUge1xuICAvKipcbiAgICogVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBsaW5rLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VMaW5rUmVzdWx0OiBQYXJzZUxpbmtSZXN1bHQ7XG59XG5cbi8qKlxuICogQSByZXN1bHQgb2YgcGFyc2luZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVzdWx0IHtcbiAgLyoqXG4gICAqIEFuIGFsaWFzIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW1xcKmFsaWFzXFwqXShsaW5rLm1kKSAtPiBcXCphbGlhc1xcKlxuICAgKiBgYGBcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmNvZGVkIFVSTCBvZiB0aGUgbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oPGxpbmsgd2l0aCBzcGFjZS5tZD4pIC0+IGxpbmslMjB3aXRoJTIwc3BhY2UubWRcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBlbmNvZGVkVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBvcmlnaW5hbCB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBoYXMgYW5nbGUgYnJhY2tldHMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBbYWxpYXNdKDxsaW5rLm1kPikgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGxpbmsubWQpIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaGFzQW5nbGVCcmFja2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhbiBlbWJlZCBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogIVtbYWxpYXNdXSAtPiB0cnVlXG4gICAqIFtbYWxpYXNdXSAtPiBmYWxzZVxuICAgKiBgYGBcbiAgICovXG4gIHJlYWRvbmx5IGlzRW1iZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBleHRlcm5hbC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oaHR0cHM6Ly9leGFtcGxlLmNvbSkgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGZpbGUubWQpIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIGlzIGEgYGZpbGU6Ly9gIFVSTC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oZmlsZTovLy9DOi94LnR4dCkgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGh0dHBzOi8vZXhhbXBsZS5jb20pIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNGaWxlVXJsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaXMgYSB3aWtpbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFtbYWxpYXNdXSAtPiB0cnVlXG4gICAqIFthbGlhc10obGluay5tZCkgLT4gZmFsc2VcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBpc1dpa2lsaW5rOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHJhdyBsaW5rIHRleHQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBbYWxpYXNdKGxpbmsubWQpIC0+IFthbGlhc10obGluay5tZClcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSByYXc6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdGFydCBvZmZzZXQgb2YgdGhlIGxpbmsgaW4gdGhlIG9yaWdpbmFsIHRleHQuXG4gICAqL1xuICByZWFkb25seSBzdGFydE9mZnNldDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW2FsaWFzXShsaW5rLm1kIFwidGl0bGVcIikgLT4gdGl0bGVcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gdW5lc2NhcGVkIGFsaWFzIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW1xcKmFsaWFzXFwqXShsaW5rLm1kKSAtPiAqYWxpYXMqXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgdW5lc2NhcGVkQWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIFVSTCBvZiB0aGUgbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10obGluayUyMHdpdGglMjBzcGFjZS5tZCkgLT4gbGluayB3aXRoIHNwYWNlLm1kXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHBhcnNlTGlua3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlTGlua3NPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb2duaXplIEdGTSBleHRlbmRlZCBgd3d3LmAgYXV0b2xpbmsgbGl0ZXJhbHMgKGB3d3cuZXhhbXBsZS5jb21gLCBhbHNvIGluc2lkZVxuICAgKiBgPC4uLj5gKSBhcyBleHRlcm5hbCBsaW5rcywgYXMgT2JzaWRpYW4gZG9lcyBpbiBhIG5vdGUncyBib2R5LiBPYnNpZGlhbiBkb2VzIG5vdCBsaW5rIHRoZW0gaW5cbiAgICogZnJvbnRtYXR0ZXIgdmFsdWVzLCBzbyB7QGxpbmsgcGFyc2VGcm9udG1hdHRlckxpbmtzfSB0dXJucyB0aGlzIG9mZi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgdG9QYXJzZUxpbmtSZWZlcmVuY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvUGFyc2VMaW5rUmVmZXJlbmNlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRoZSBwYXJzZWQgbGluaydzIG9mZnNldHMgaW5kZXggaW50by4gVXNlZCB0byBjb21wdXRlIHRoZSBsaW5lIGFuZCBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJzZWQgbGluayB0byB3cmFwLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VMaW5rUmVzdWx0OiBQYXJzZUxpbmtSZXN1bHQ7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlci5jYXRlZ29yaXplfS5cbiAqL1xuaW50ZXJmYWNlIENhdGVnb3JpemVGcm9udG1hdHRlckxpbmtQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgd2hvbGUgZnJvbnRtYXR0ZXIgdmFsdWUgaXMgYSBzaW5nbGUgbGluay5cbiAgICovXG4gIHJlYWRvbmx5IGlzU2luZ2xlTGluazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGtleSBwYXRoIG9mIHRoZSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyc2VkIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBwYXJzZUxpbmtSZXN1bHQ6IFBhcnNlTGlua1Jlc3VsdDtcblxuICAvKipcbiAgICogVGhlIGZyb250bWF0dGVyIHZhbHVlIHRoZSBsaW5rIHdhcyBwYXJzZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZGVjb2RlVXJsU2FmZWx5fS5cbiAqL1xuaW50ZXJmYWNlIERlY29kZVVybFNhZmVseVBhcmFtcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsaW5rIHVzZXMgYW5nbGUgYnJhY2tldHMuXG4gICAqL1xuICByZWFkb25seSBoYXNBbmdsZUJyYWNrZXRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsaW5rIGlzIGV4dGVybmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBVUkwgdG8gZGVjb2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZXh0cmFjdEFsaWFzfS5cbiAqL1xuaW50ZXJmYWNlIEV4dHJhY3RBbGlhc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIHN0cmluZyB0byBleHRyYWN0IHRoZSBhbGlhcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgJHN0cmluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBhbGlhcyBpbiB0aGUgc3RyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNFbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQSBzdGFydCBvZmZzZXQgb2YgdGhlIGFsaWFzIGluIHRoZSBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBhbGlhc1N0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZXh0cmFjdFRleHRMaW5rc30uXG4gKi9cbmludGVyZmFjZSBFeHRyYWN0VGV4dExpbmtzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRvIGV4dHJhY3QgdGhlIHRleHQgbGlua3MgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5ICRzdHJpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gZW5kIG9mZnNldCBvZiB0aGUgdGV4dCBwYXJ0IGluIHRoZSBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBlbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZWNvZ25pemUgR0ZNIGV4dGVuZGVkIGB3d3cuYCBhdXRvbGluayBsaXRlcmFscy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgc3RhcnQgb2Zmc2V0IG9mIHRoZSB0ZXh0IHBhcnQgaW4gdGhlIHN0cmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXJzZWQgbGlua3MgdG8gYXBwZW5kIHRoZSBleHRyYWN0ZWQgdGV4dCBsaW5rcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRleHRMaW5rczogUGFyc2VMaW5rUmVzdWx0W107XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgaGFzQW5nbGVCcmFja2V0c0luTGlua30uXG4gKi9cbmludGVyZmFjZSBIYXNBbmdsZUJyYWNrZXRzSW5MaW5rUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgcmF3IGxpbmsgdGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHJhdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHJhdyBVUkwgb2YgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSByYXdVcmw6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFdpa2lMaW5rTm9kZSBleHRlbmRzIE5vZGUge1xuICBkYXRhOiBXaWtpTGlua05vZGVEYXRhO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgV2lraUxpbmtOb2RlRGF0YSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgYWxpYXM6IHN0cmluZztcbn1cblxuY2xhc3MgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlWYWx1ZUZyb250bWF0dGVyRXh0ZXJuYWxMaW5rczogUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0c1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlWYWx1ZUZyb250bWF0dGVyTGlua3M6IFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlV2l0aE9mZnNldHNbXSA9IFtdO1xuXG4gIHB1YmxpYyBwYXJzZShmcm9udG1hdHRlcjogdW5rbm93bik6IFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gICAgdGhpcy5wYXJzZVZhbHVlKGZyb250bWF0dGVyLCAnJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb250bWF0dGVyRXh0ZXJuYWxMaW5rczogdGhpcy5mcm9udG1hdHRlckV4dGVybmFsTGlua3MsXG4gICAgICBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiB0aGlzLm11bHRpVmFsdWVGcm9udG1hdHRlckV4dGVybmFsTGlua3MsXG4gICAgICBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rczogdGhpcy5tdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rc1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNhdGVnb3JpemUocGFyYW1zOiBDYXRlZ29yaXplRnJvbnRtYXR0ZXJMaW5rUGFyYW1zKTogdm9pZCB7XG4gICAgY29uc3QgeyBpc1NpbmdsZUxpbmssIGtleSwgcGFyc2VMaW5rUmVzdWx0LCB2YWx1ZSB9ID0gcGFyYW1zO1xuICAgIGlmICghcGFyc2VMaW5rUmVzdWx0LmlzRXh0ZXJuYWwgJiYgaXNTaW5nbGVMaW5rKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVmZXJlbmNlOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZSA9IHtcbiAgICAgIGRpc3BsYXlUZXh0OiBwYXJzZUxpbmtSZXN1bHQuYWxpYXMgPz8gcGFyc2VMaW5rUmVzdWx0LnVybCxcbiAgICAgIGtleSxcbiAgICAgIGxpbms6IHBhcnNlTGlua1Jlc3VsdC51cmwsXG4gICAgICBvcmlnaW5hbDogdmFsdWUsXG4gICAgICBwYXJzZUxpbmtSZXN1bHRcbiAgICB9O1xuXG4gICAgaWYgKGlzU2luZ2xlTGluaykge1xuICAgICAgdGhpcy5mcm9udG1hdHRlckV4dGVybmFsTGlua3MucHVzaChyZWZlcmVuY2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlZmVyZW5jZVdpdGhPZmZzZXRzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVdpdGhPZmZzZXRzID0ge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgZW5kT2Zmc2V0OiBwYXJzZUxpbmtSZXN1bHQuZW5kT2Zmc2V0LFxuICAgICAgc3RhcnRPZmZzZXQ6IHBhcnNlTGlua1Jlc3VsdC5zdGFydE9mZnNldFxuICAgIH07XG5cbiAgICBpZiAocGFyc2VMaW5rUmVzdWx0LmlzRXh0ZXJuYWwpIHtcbiAgICAgIHRoaXMubXVsdGlWYWx1ZUZyb250bWF0dGVyRXh0ZXJuYWxMaW5rcy5wdXNoKHJlZmVyZW5jZVdpdGhPZmZzZXRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rcy5wdXNoKHJlZmVyZW5jZVdpdGhPZmZzZXRzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVmFsdWUodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIE9ic2lkaWFuIGxpbmtzIGEgc2NoZW1lLWxlc3MgYHd3dy5gIGxpdGVyYWwgaW4gdGhlIGJvZHkgb25seSwgbmV2ZXIgaW4gYSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICAgIGNvbnN0IHBhcnNlTGlua1Jlc3VsdHMgPSBwYXJzZUxpbmtzKHZhbHVlLCB7IHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHM6IGZhbHNlIH0pO1xuICAgICAgY29uc3QgaXNTaW5nbGVMaW5rID0gcGFyc2VMaW5rUmVzdWx0c1swXT8ucmF3ID09PSB2YWx1ZTtcbiAgICAgIGZvciAoY29uc3QgcGFyc2VMaW5rUmVzdWx0IG9mIHBhcnNlTGlua1Jlc3VsdHMpIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaXplKHsgaXNTaW5nbGVMaW5rLCBrZXksIHBhcnNlTGlua1Jlc3VsdCwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtjaGlsZEtleSwgY2hpbGRWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUgYXMgR2VuZXJpY09iamVjdCkpIHtcbiAgICAgIHRoaXMucGFyc2VWYWx1ZShjaGlsZFZhbHVlLCBrZXkgPyBgJHtrZXl9LiR7Y2hpbGRLZXl9YCA6IGNoaWxkS2V5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFc2NhcGVzIHRoZSBhbGlhcyBvZiBhIG1hcmtkb3duIGxpbmsuXG4gKlxuICogQHBhcmFtIGFsaWFzIC0gQW4gYWxpYXMgb2YgYSBtYXJrZG93biBsaW5rLlxuICogQHJldHVybnMgQW4gZXNjYXBlZCBhbGlhcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGVzY2FwZUFsaWFzKCcqKmFsaWFzKionKSAvLyAnXFxcXCpcXFxcKmFsaWFzXFxcXCpcXFxcKidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQWxpYXMoYWxpYXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBhbGlhcyxcbiAgICByZXBsYWNlcjogU3RyaW5nLnJhd2BcXCQmYCxcbiAgICBzZWFyY2hWYWx1ZTogU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVhcbiAgfSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlfS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlfSwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUocmVmZXJlbmNlKSAmJiAncGFyc2VMaW5rUmVzdWx0JyBpbiByZWZlcmVuY2U7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua1JlZmVyZW5jZX0uXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIHtAbGluayBQYXJzZUxpbmtSZWZlcmVuY2V9LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGFyc2VMaW5rUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIFBhcnNlTGlua1JlZmVyZW5jZSB7XG4gIHJldHVybiAncGFyc2VMaW5rUmVzdWx0JyBpbiByZWZlcmVuY2U7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBsaW5rcyBmcm9tIGEgbm90ZSdzIGZyb250bWF0dGVyLiBFYWNoIHN0cmluZyB2YWx1ZSBpcyBwYXJzZWQgdmlhIHtAbGluayBwYXJzZUxpbmtzfTogYSB2YWx1ZVxuICogdGhhdCBpcyBhIHNpbmdsZSBsaW5rIHlpZWxkcyBhbiBlbnRyeSB3aXRob3V0IG9mZnNldHMsIGFuZCBhIHZhbHVlIHRoYXQgaG9sZHMgbXVsdGlwbGUgbGlua3MgeWllbGRzXG4gKiBvZmZzZXQtY2FycnlpbmcgZW50cmllcy4gSW50ZXJuYWwgc2luZ2xlLWxpbmsgdmFsdWVzIGFyZSBvbWl0dGVkLCBhcyBPYnNpZGlhbiBuYXRpdmVseSBjYWNoZXMgdGhlbS5cbiAqXG4gKiBAcGFyYW0gZnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnRtYXR0ZXIgdG8gcGFyc2UgKGEgdmFsdWUsIG9iamVjdCwgb3IgYXJyYXkpLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBmcm9udG1hdHRlciBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXJMaW5rcyhmcm9udG1hdHRlcjogdW5rbm93bik6IFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gIHJldHVybiBuZXcgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlcigpLnBhcnNlKGZyb250bWF0dGVyKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBsaW5rIGludG8gaXRzIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgbGluayB0byBwYXJzZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcnNlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGxpbmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxpbmsoJHN0cmluZzogc3RyaW5nLCBvcHRpb25zPzogUGFyc2VMaW5rT3B0aW9ucyk6IG51bGwgfCBQYXJzZUxpbmtSZXN1bHQge1xuICBjb25zdCBsaW5rcyA9IHBhcnNlTGlua3MoJHN0cmluZywgb3B0aW9ucyk7XG4gIHJldHVybiBsaW5rc1swXT8ucmF3ID09PSAkc3RyaW5nID8gbGlua3NbMF0gOiBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhbGwgbGlua3MgaW4gYSBzdHJpbmcuXG4gKlxuICogQmVzaWRlcyBtYXJrZG93biBsaW5rcywgd2lraWxpbmtzIGFuZCBhdXRvbGlua3MsIHRoZSBwbGFpbiB0ZXh0IGJldHdlZW4gdGhlbSBpcyBzY2FubmVkIGZvciBiYXJlXG4gKiBVUkxzIHdpdGggYSBzY2hlbWUgKGBodHRwczovL2V4YW1wbGUuY29tYCkgYW5kLCB1bmxlc3MgdHVybmVkIG9mZiB0aHJvdWdoXG4gKiB7QGxpbmsgUGFyc2VMaW5rc09wdGlvbnMuc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFsc30sIGZvciBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rXG4gKiBsaXRlcmFscyAoYHd3dy5leGFtcGxlLmNvbWApLiBTdWNoIGEgbGl0ZXJhbCBpcyByZXBvcnRlZCBhcyBhbiBleHRlcm5hbCBsaW5rIHdob3NlIGB1cmxgIGNhcnJpZXMgdGhlXG4gKiBgaHR0cDovL2Agc2NoZW1lIE9ic2lkaWFuIG9wZW5zIGl0IHdpdGgsIHNvIGEgbGluayByZWJ1aWx0IGZyb20gaXQgc3RheXMgZXh0ZXJuYWw6IGEgc2NoZW1lLWxlc3NcbiAqIGBbYWxpYXNdKHd3dy5leGFtcGxlLmNvbSlgIGlzIGFuIGludGVybmFsIGxpbmsgaW4gT2JzaWRpYW4uIEEgbGl0ZXJhbCB3cmFwcGVkIGluIGA8Li4uPmAgcmVwb3J0cyB0aGVcbiAqIGJyYWNrZXRzIGFzIHBhcnQgb2YgYHJhd2AsIHNvIHJlcGxhY2luZyBgcmF3YCBsZWF2ZXMgbm8gc3RyYXkgYnJhY2tldCBiZWhpbmQuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIHBhcnNlIHRoZSBsaW5rcyBpbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcnNlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMaW5rcygkc3RyaW5nOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJzZUxpbmtzT3B0aW9ucyk6IFBhcnNlTGlua1Jlc3VsdFtdIHtcbiAgY29uc3Qgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscyA9IG9wdGlvbnM/LnNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMgPz8gdHJ1ZTtcbiAgY29uc3QgZW1iZWRTeW1ib2xPZmZzZXRzID0gbmV3IFNldDxudW1iZXI+KCk7XG5cbiAgY29uc3QgRU1CRURfTElOS19QUkVGSVggPSAnIVsnO1xuICBjb25zdCBOT19FTUJFRF9MSU5LX1BSRUZJWCA9ICdAWyc7XG4gIGNvbnN0IERVTU1ZX0NIQVJBQ1RFUiA9ICdAJztcblxuICBjb25zdCBFTUJFRF9JTlNJREVfTElOS19SRUdfRVhQID0gL1xcWyg/PExpbmtBbGlhcz4hXFxbLio/XFxdXFwoLis/XFwpKVxcXVxcKCg/PExpbms+Lis/KVxcKS9nO1xuICBjb25zdCBub0luc2lkZUVtYmVkc0xpbmtzU3RyaW5nID0gcmVwbGFjZUFsbCh7XG4gICAgJHN0cmluZyxcbiAgICByZXBsYWNlcjogKHsgY2FwdHVyZWRHcm91cEFyZ3VtZW50czogW2xpbmtBbGlhcyA9ICcnLCBsaW5rID0gJyddIH0pID0+IHtcbiAgICAgIGNvbnN0IGR1bW15QWxpYXMgPSBEVU1NWV9DSEFSQUNURVIucmVwZWF0KGxpbmtBbGlhcy5sZW5ndGgpO1xuICAgICAgcmV0dXJuIGBbJHtkdW1teUFsaWFzfV0oJHtsaW5rfSlgO1xuICAgIH0sXG4gICAgc2VhcmNoVmFsdWU6IEVNQkVEX0lOU0lERV9MSU5LX1JFR19FWFBcbiAgfSk7XG5cbiAgY29uc3Qgbm9FbWJlZFN0cmluZyA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IG5vSW5zaWRlRW1iZWRzTGlua3NTdHJpbmcsXG4gICAgcmVwbGFjZXI6ICgkYXJndW1lbnRzKSA9PiB7XG4gICAgICBlbWJlZFN5bWJvbE9mZnNldHMuYWRkKCRhcmd1bWVudHMub2Zmc2V0KTtcbiAgICAgIHJldHVybiBOT19FTUJFRF9MSU5LX1BSRUZJWDtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiBFTUJFRF9MSU5LX1BSRUZJWFxuICB9KTtcblxuICBjb25zdCBwcm9jZXNzb3IgPSByZW1hcmsoKS51c2UocmVtYXJrUGFyc2UpLnVzZSh3aWtpTGlua1BsdWdpbiwgeyBhbGlhc0RpdmlkZXI6IFdJS0lMSU5LX0RJVklERVIgfSk7XG4gIGNvbnN0IHJvb3QgPSBwcm9jZXNzb3IucGFyc2Uobm9FbWJlZFN0cmluZyk7XG5cbiAgY29uc3QgbGlua3M6IFBhcnNlTGlua1Jlc3VsdFtdID0gW107XG4gIGNvbnN0IHRleHRMaW5rczogUGFyc2VMaW5rUmVzdWx0W10gPSBbXTtcblxuICB2aXNpdChyb290LCAobm9kZTogTm9kZSkgPT4ge1xuICAgIGxldCBsaW5rOiBQYXJzZUxpbmtSZXN1bHQ7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpbmsnOiB7XG4gICAgICAgIGxpbmsgPSBwYXJzZUxpbmtOb2RlKG5vZGUgYXMgTGluaywgJHN0cmluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnd2lraUxpbmsnOiB7XG4gICAgICAgIGxpbmsgPSBwYXJzZVdpa2lsaW5rTm9kZShub2RlIGFzIFdpa2lMaW5rTm9kZSwgJHN0cmluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVtYmVkU3ltYm9sT2Zmc2V0cy5oYXMobGluay5zdGFydE9mZnNldCAtIDEpKSB7XG4gICAgICBsaW5rID0ge1xuICAgICAgICAuLi5saW5rLFxuICAgICAgICBpc0VtYmVkOiB0cnVlLFxuICAgICAgICByYXc6IGAhJHtsaW5rLnJhd31gLFxuICAgICAgICBzdGFydE9mZnNldDogbGluay5zdGFydE9mZnNldCAtIDFcbiAgICAgIH07XG4gICAgfVxuICAgIGxpbmtzLnB1c2gobGluayk7XG4gIH0pO1xuXG4gIGxpbmtzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnRPZmZzZXQgLSBiLnN0YXJ0T2Zmc2V0KTtcblxuICBsZXQgdGV4dFN0YXJ0T2Zmc2V0ID0gMDtcblxuICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcbiAgICBleHRyYWN0VGV4dExpbmtzKHtcbiAgICAgICRzdHJpbmcsXG4gICAgICBlbmRPZmZzZXQ6IGxpbmsuc3RhcnRPZmZzZXQgLSAxLFxuICAgICAgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscyxcbiAgICAgIHN0YXJ0T2Zmc2V0OiB0ZXh0U3RhcnRPZmZzZXQsXG4gICAgICB0ZXh0TGlua3NcbiAgICB9KTtcbiAgICB0ZXh0U3RhcnRPZmZzZXQgPSBsaW5rLmVuZE9mZnNldCArIDE7XG4gIH1cblxuICBleHRyYWN0VGV4dExpbmtzKHtcbiAgICAkc3RyaW5nLFxuICAgIGVuZE9mZnNldDogJHN0cmluZy5sZW5ndGggLSAxLFxuICAgIHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMsXG4gICAgc3RhcnRPZmZzZXQ6IHRleHRTdGFydE9mZnNldCxcbiAgICB0ZXh0TGlua3NcbiAgfSk7XG5cbiAgbGlua3MucHVzaCguLi50ZXh0TGlua3MpO1xuICBsaW5rcy5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0T2Zmc2V0IC0gYi5zdGFydE9mZnNldCk7XG5cbiAgcmV0dXJuIGxpbmtzO1xufVxuXG4vKipcbiAqIFdyYXBzIGEge0BsaW5rIFBhcnNlTGlua1Jlc3VsdH0gaW50byBhIHtAbGluayBQYXJzZUxpbmtSZWZlcmVuY2V9IHNvIGl0IGNhbiBmbG93IHRocm91Z2ggdGhlXG4gKiByZWZlcmVuY2UtYmFzZWQgZmlsZS1jaGFuZ2UgcGlwZWxpbmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB3cmFwcGluZyB0aGUgcGFyc2VkIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFBhcnNlTGlua1JlZmVyZW5jZX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcnNlTGlua1JlZmVyZW5jZShwYXJhbXM6IFRvUGFyc2VMaW5rUmVmZXJlbmNlUGFyYW1zKTogUGFyc2VMaW5rUmVmZXJlbmNlIHtcbiAgY29uc3QgeyBjb250ZW50LCBwYXJzZUxpbmtSZXN1bHQgfSA9IHBhcmFtcztcbiAgcmV0dXJuIHtcbiAgICAuLi4ocGFyc2VMaW5rUmVzdWx0LmFsaWFzICE9PSB1bmRlZmluZWQgJiYgeyBkaXNwbGF5VGV4dDogcGFyc2VMaW5rUmVzdWx0LmFsaWFzIH0pLFxuICAgIGxpbms6IHBhcnNlTGlua1Jlc3VsdC51cmwsXG4gICAgb3JpZ2luYWw6IHBhcnNlTGlua1Jlc3VsdC5yYXcsXG4gICAgcGFyc2VMaW5rUmVzdWx0LFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICBlbmQ6IG9mZnNldFRvTG9jKGNvbnRlbnQsIHBhcnNlTGlua1Jlc3VsdC5lbmRPZmZzZXQpLFxuICAgICAgc3RhcnQ6IG9mZnNldFRvTG9jKGNvbnRlbnQsIHBhcnNlTGlua1Jlc3VsdC5zdGFydE9mZnNldClcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVW5lc2NhcGVzIHRoZSBhbGlhcyBvZiBhIG1hcmtkb3duIGxpbmsuXG4gKlxuICogQHBhcmFtIGVzY2FwZWRBbGlhcyAtIEFuIGVzY2FwZWQgYWxpYXMuXG4gKiBAcmV0dXJucyBBbiB1bmVzY2FwZWQgYWxpYXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB1bmVzY2FwZUFsaWFzKCdcXFxcKlxcXFwqYWxpYXNcXFxcKlxcXFwqJykgLy8gJyoqYWxpYXMqKidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5lc2NhcGVBbGlhcyhlc2NhcGVkQWxpYXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBlc2NhcGVkQWxpYXMsXG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmd1bWVudHM6IFtiYWNrc2xhc2hlcyA9ICcnLCBzcGVjaWFsQ2hhciA9ICcnXSB9KSA9PiB7XG4gICAgICBjb25zdCBFU0NBUEVEX0JBQ0tTTEFTSF9MRU5HVEggPSAyO1xuICAgICAgY29uc3QgYmFja3NsYXNoQ291bnQgPSBiYWNrc2xhc2hlcy5sZW5ndGg7XG4gICAgICBjb25zdCBrZWVwQ291bnQgPSBNYXRoLmZsb29yKGJhY2tzbGFzaENvdW50IC8gRVNDQVBFRF9CQUNLU0xBU0hfTEVOR1RIKTtcbiAgICAgIHJldHVybiAnXFxcXCcucmVwZWF0KGtlZXBDb3VudCkgKyBzcGVjaWFsQ2hhcjtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiAvKD88QmFja3NsYXNoZXM+XFxcXCspKD88U3BlY2lhbENoYXJhY3Rlcj5bIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxcXFxcXV5fYHt8fX5dKS9nXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb3VudE9jY3VycmVuY2VzKCRzdHJpbmc6IHN0cmluZywgY2hhcmFjdGVyOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gJHN0cmluZy5zcGxpdChjaGFyYWN0ZXIpLmxlbmd0aCAtIDE7XG59XG5cbmZ1bmN0aW9uIGRlY29kZVVybFNhZmVseShwYXJhbXM6IERlY29kZVVybFNhZmVseVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgaGFzQW5nbGVCcmFja2V0cywgaXNFeHRlcm5hbCwgdXJsIH0gPSBwYXJhbXM7XG4gIC8vIGBmaWxlOi8vYCBVUkxzIGFyZSBleHRlcm5hbCwgYnV0IHRoZWlyIHBlcmNlbnQtZW5jb2RpbmcgaXMgcHVyZWx5IGNvc21ldGljLCBzbyBkZWNvZGUgdGhlbSBsaWtlXG4gIC8vIGludGVybmFsIGxpbmtzLiBFdmVyeSBvdGhlciBleHRlcm5hbCBVUkwgaXMgbGVmdCB1bnRvdWNoZWQgKGl0cyBlbmNvZGluZyBtYXkgYmUgc2lnbmlmaWNhbnQpLlxuICBpZiAoKGlzRXh0ZXJuYWwgfHwgaGFzQW5nbGVCcmFja2V0cykgJiYgIWlzRmlsZVVybCh1cmwpKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1cmwpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgVVJMICR7dXJsfWAsIGVycm9yKTtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBbGlhcyhwYXJhbXM6IEV4dHJhY3RBbGlhc1BhcmFtcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgJHN0cmluZywgYWxpYXNFbmRPZmZzZXQsIGFsaWFzU3RhcnRPZmZzZXQgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGFsaWFzU3RhcnRPZmZzZXQgPCBhbGlhc0VuZE9mZnNldFxuICAgID8gJHN0cmluZy5zbGljZShhbGlhc1N0YXJ0T2Zmc2V0LCBhbGlhc0VuZE9mZnNldClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRleHRMaW5rcyhwYXJhbXM6IEV4dHJhY3RUZXh0TGlua3NQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyAkc3RyaW5nLCBlbmRPZmZzZXQsIHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMsIHN0YXJ0T2Zmc2V0LCB0ZXh0TGlua3MgfSA9IHBhcmFtcztcbiAgaWYgKHN0YXJ0T2Zmc2V0ID4gZW5kT2Zmc2V0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdGV4dFBhcnQgPSAkc3RyaW5nLnNsaWNlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgKyAxKTtcbiAgY29uc3Qgc2NoZW1lTGlua3M6IFBhcnNlTGlua1Jlc3VsdFtdID0gW107XG4gIHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHRleHRQYXJ0LFxuICAgIHJlcGxhY2VyOiAoeyBjYXB0dXJlZEdyb3VwQXJndW1lbnRzOiBbcmF3VXJsID0gJyddLCBvZmZzZXQgfSkgPT4ge1xuICAgICAgaWYgKCFpc1VybChyYXdVcmwpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gRGVjb2RlIGJhcmUgYGZpbGU6Ly9gIFVSTHMgbGlrZSB0aGUgYnJhY2tldGVkIHBhdGggKGBwYXJzZUxpbmtOb2RlYCkgZG9lcy5cbiAgICAgIC8vIE9mZnNldHMgYW5kIGByYXdgIHN0YXkgYmFzZWQgb24gdGhlIG9yaWdpbmFsIChwb3NzaWJseSBwZXJjZW50LWVuY29kZWQpIHRleHQuXG4gICAgICBjb25zdCB1cmwgPSBkZWNvZGVVcmxTYWZlbHkoe1xuICAgICAgICBoYXNBbmdsZUJyYWNrZXRzOiBmYWxzZSxcbiAgICAgICAgaXNFeHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgdXJsOiByYXdVcmxcbiAgICAgIH0pO1xuICAgICAgc2NoZW1lTGlua3MucHVzaCh7XG4gICAgICAgIGVuY29kZWRVcmw6IGVuY29kZVVybCh1cmwpLFxuICAgICAgICBlbmRPZmZzZXQ6IHN0YXJ0T2Zmc2V0ICsgb2Zmc2V0ICsgcmF3VXJsLmxlbmd0aCxcbiAgICAgICAgaGFzQW5nbGVCcmFja2V0czogZmFsc2UsXG4gICAgICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgICAgICBpc0V4dGVybmFsOiB0cnVlLFxuICAgICAgICBpc0ZpbGVVcmw6IGlzRmlsZVVybCh1cmwpLFxuICAgICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgICAgcmF3OiByYXdVcmwsXG4gICAgICAgIHN0YXJ0T2Zmc2V0OiBzdGFydE9mZnNldCArIG9mZnNldCxcbiAgICAgICAgdXJsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiAvKD88VXJsPlxcUyspL2dcbiAgfSk7XG4gIHRleHRMaW5rcy5wdXNoKC4uLnNjaGVtZUxpbmtzKTtcblxuICBpZiAoIXNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBmb3IgKGNvbnN0IG1hdGNoIG9mIHRleHRQYXJ0Lm1hdGNoQWxsKFdXV19BVVRPTElOS19MSVRFUkFMX0NBTkRJREFURV9SRUdfRVhQKSkge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdMaXRlcmFsJyk7XG4gICAgY29uc3QgbGl0ZXJhbCA9IHRyaW1Xd3dBdXRvbGlua0xpdGVyYWwoY2FuZGlkYXRlKTtcbiAgICBpZiAoIWlzVmFsaWRXd3dBdXRvbGlua0xpdGVyYWwobGl0ZXJhbCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdGVyYWxTdGFydE9mZnNldCA9IHN0YXJ0T2Zmc2V0ICsgbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggLSBjYW5kaWRhdGUubGVuZ3RoO1xuICAgIGNvbnN0IGxpdGVyYWxFbmRPZmZzZXQgPSBsaXRlcmFsU3RhcnRPZmZzZXQgKyBsaXRlcmFsLmxlbmd0aDtcbiAgICBpZiAoc2NoZW1lTGlua3Muc29tZSgobGluaykgPT4gbGluay5zdGFydE9mZnNldCA8IGxpdGVyYWxFbmRPZmZzZXQgJiYgbGl0ZXJhbFN0YXJ0T2Zmc2V0IDwgbGluay5lbmRPZmZzZXQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNBbmdsZUJyYWNrZXRzID0gJHN0cmluZ1tsaXRlcmFsU3RhcnRPZmZzZXQgLSAxXSA9PT0gJzwnICYmICRzdHJpbmdbbGl0ZXJhbEVuZE9mZnNldF0gPT09ICc+JztcbiAgICBjb25zdCBsaW5rU3RhcnRPZmZzZXQgPSBoYXNBbmdsZUJyYWNrZXRzID8gbGl0ZXJhbFN0YXJ0T2Zmc2V0IC0gMSA6IGxpdGVyYWxTdGFydE9mZnNldDtcbiAgICBjb25zdCBsaW5rRW5kT2Zmc2V0ID0gaGFzQW5nbGVCcmFja2V0cyA/IGxpdGVyYWxFbmRPZmZzZXQgKyAxIDogbGl0ZXJhbEVuZE9mZnNldDtcbiAgICBjb25zdCB1cmwgPSBXV1dfQVVUT0xJTktfTElURVJBTF9TQ0hFTUUgKyBsaXRlcmFsO1xuICAgIHRleHRMaW5rcy5wdXNoKHtcbiAgICAgIGVuY29kZWRVcmw6IGVuY29kZVVybCh1cmwpLFxuICAgICAgZW5kT2Zmc2V0OiBsaW5rRW5kT2Zmc2V0LFxuICAgICAgaGFzQW5nbGVCcmFja2V0cyxcbiAgICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgICAgaXNFeHRlcm5hbDogdHJ1ZSxcbiAgICAgIGlzRmlsZVVybDogZmFsc2UsXG4gICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgIHJhdzogJHN0cmluZy5zbGljZShsaW5rU3RhcnRPZmZzZXQsIGxpbmtFbmRPZmZzZXQpLFxuICAgICAgc3RhcnRPZmZzZXQ6IGxpbmtTdGFydE9mZnNldCxcbiAgICAgIHVybFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJhd0xpbmsobm9kZTogTm9kZSwgJHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcG9zID0gZW5zdXJlTm9uTnVsbGFibGUobm9kZS5wb3NpdGlvbik7XG4gIHJldHVybiAkc3RyaW5nLnNsaWNlKHBvcy5zdGFydC5vZmZzZXQsIHBvcy5lbmQub2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gaGFzQW5nbGVCcmFja2V0c0luTGluayhwYXJhbXM6IEhhc0FuZ2xlQnJhY2tldHNJbkxpbmtQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyByYXcsIHJhd1VybCB9ID0gcGFyYW1zO1xuICBjb25zdCBPUEVOX0FOR0xFX0JSQUNLRVQgPSAnPCc7XG4gIHJldHVybiByYXcuc3RhcnRzV2l0aChPUEVOX0FOR0xFX0JSQUNLRVQpIHx8IHJhd1VybC5zdGFydHNXaXRoKE9QRU5fQU5HTEVfQlJBQ0tFVCk7XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWRXd3dBdXRvbGlua0xpdGVyYWwobGl0ZXJhbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbWFpbiA9IFdXV19BVVRPTElOS19MSVRFUkFMX0RPTUFJTl9SRUdfRVhQLmV4ZWMobGl0ZXJhbCk/LlswXTtcbiAgaWYgKGRvbWFpbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gR0ZNOiBubyB1bmRlcnNjb3JlIGluIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgZG9tYWluLlxuICBjb25zdCBMQVNUX1NFR01FTlRTX0NPVU5UID0gMjtcbiAgcmV0dXJuIGRvbWFpbi5zcGxpdCgnLicpLnNsaWNlKC1MQVNUX1NFR01FTlRTX0NPVU5UKS5ldmVyeSgoc2VnbWVudCkgPT4gIXNlZ21lbnQuaW5jbHVkZXMoJ18nKSk7XG59XG5cbmZ1bmN0aW9uIG9mZnNldFRvTG9jKGNvbnRlbnQ6IHN0cmluZywgb2Zmc2V0OiBudW1iZXIpOiBMb2Mge1xuICBjb25zdCBwcmVjZWRpbmdDb250ZW50ID0gY29udGVudC5zbGljZSgwLCBvZmZzZXQpO1xuICBjb25zdCBsaW5lID0gKHByZWNlZGluZ0NvbnRlbnQubWF0Y2goL1xcbi9nKSA/PyBbXSkubGVuZ3RoO1xuICBjb25zdCBsYXN0TmV3bGluZU9mZnNldCA9IHByZWNlZGluZ0NvbnRlbnQubGFzdEluZGV4T2YoJ1xcbicpO1xuICByZXR1cm4ge1xuICAgIGNvbDogb2Zmc2V0IC0gKGxhc3ROZXdsaW5lT2Zmc2V0ICsgMSksXG4gICAgbGluZSxcbiAgICBvZmZzZXRcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VMaW5rTm9kZShub2RlOiBMaW5rLCAkc3RyaW5nOiBzdHJpbmcpOiBQYXJzZUxpbmtSZXN1bHQge1xuICBjb25zdCBMSU5LX0FMSUFTX1NVRkZJWCA9ICddKCc7XG4gIGNvbnN0IExJTktfU1VGRklYID0gJyknO1xuICBjb25zdCByYXcgPSBnZXRSYXdMaW5rKG5vZGUsICRzdHJpbmcpO1xuICBjb25zdCBwb3NpdGlvbiA9IGVuc3VyZU5vbk51bGxhYmxlKG5vZGUucG9zaXRpb24pO1xuICBjb25zdCBub2RlRW5kT2Zmc2V0ID0gZW5zdXJlTm9uTnVsbGFibGUocG9zaXRpb24uZW5kLm9mZnNldCk7XG4gIGNvbnN0IG5vZGVTdGFydE9mZnNldCA9IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLnN0YXJ0Lm9mZnNldCk7XG4gIC8vIEFuIGVtcHR5IGxhYmVsIChgW10oLi4uKWApIGhhcyBubyBjaGlsZHJlbiwgc28gaXQgc3RhcnRzIGFuZCBlbmRzIGp1c3QgYWZ0ZXIgdGhlIG5vZGUncyBvd24gYFtgLiBBbiBlbWJlZCdzIGAhYCBpcyBvdXRzaWRlIHRoZSBub2RlLCBzaW5jZSBgcGFyc2VMaW5rc2AgbWFza3MgaXQgYmVmb3JlIHBhcnNpbmcuXG4gIGNvbnN0IGVtcHR5QWxpYXNPZmZzZXQgPSBub2RlU3RhcnRPZmZzZXQgKyAxO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9iZXR0ZXItZG9tLXRyYXZlcnNpbmcgLS0gYG5vZGVgIGlzIGFuIG1kYXN0IG5vZGUsIG5vdCBhIERPTSBub2RlLiBJdCBoYXMgbm8gYGZpcnN0RWxlbWVudENoaWxkYDsgdGhlIHJ1bGUgbWF0Y2hlcyB0aGUgYC5jaGlsZHJlblswXWAgc2hhcGUgd2l0aG91dCBjaGVja2luZyB3aGF0IGl0IGlzIG9uLlxuICBjb25zdCBhbGlhc05vZGVTdGFydE9mZnNldCA9IG5vZGUuY2hpbGRyZW5bMF0/LnBvc2l0aW9uPy5zdGFydC5vZmZzZXQgPz8gZW1wdHlBbGlhc09mZnNldDtcbiAgY29uc3QgYWxpYXNOb2RlRW5kT2Zmc2V0ID0gbm9kZS5jaGlsZHJlbi5hdCgtMSk/LnBvc2l0aW9uPy5lbmQub2Zmc2V0ID8/IGVtcHR5QWxpYXNPZmZzZXQ7XG4gIGNvbnN0IHJhd1VybCA9ICRzdHJpbmcuc2xpY2UoYWxpYXNOb2RlRW5kT2Zmc2V0ICsgTElOS19BTElBU19TVUZGSVgubGVuZ3RoLCBub2RlRW5kT2Zmc2V0IC0gTElOS19TVUZGSVgubGVuZ3RoKTtcbiAgY29uc3QgaGFzQW5nbGVCcmFja2V0cyA9IGhhc0FuZ2xlQnJhY2tldHNJbkxpbmsoe1xuICAgIHJhdyxcbiAgICByYXdVcmxcbiAgfSk7XG4gIGNvbnN0IGlzRXh0ZXJuYWwgPSBpc1VybChub2RlLnVybCk7XG4gIGNvbnN0IHVybCA9IGRlY29kZVVybFNhZmVseSh7XG4gICAgaGFzQW5nbGVCcmFja2V0cyxcbiAgICBpc0V4dGVybmFsLFxuICAgIHVybDogbm9kZS51cmxcbiAgfSk7XG4gIGNvbnN0IGFsaWFzID0gZXh0cmFjdEFsaWFzKHtcbiAgICAkc3RyaW5nLFxuICAgIGFsaWFzRW5kT2Zmc2V0OiBhbGlhc05vZGVFbmRPZmZzZXQsXG4gICAgYWxpYXNTdGFydE9mZnNldDogYWxpYXNOb2RlU3RhcnRPZmZzZXRcbiAgfSk7XG4gIHJldHVybiBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8UGFyc2VMaW5rUmVzdWx0Pih7XG4gICAgYWxpYXMsXG4gICAgZW5jb2RlZFVybDogaXNFeHRlcm5hbCA/IGVuY29kZVVybCh1cmwpIDogdW5kZWZpbmVkLFxuICAgIGVuZE9mZnNldDogbm9kZUVuZE9mZnNldCxcbiAgICBoYXNBbmdsZUJyYWNrZXRzLFxuICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgIGlzRXh0ZXJuYWwsXG4gICAgaXNGaWxlVXJsOiBpc0ZpbGVVcmwodXJsKSxcbiAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICByYXcsXG4gICAgc3RhcnRPZmZzZXQ6IG5vZGVTdGFydE9mZnNldCxcbiAgICB0aXRsZTogbm9kZS50aXRsZSA/PyB1bmRlZmluZWQsXG4gICAgdW5lc2NhcGVkQWxpYXM6IGFsaWFzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB1bmVzY2FwZUFsaWFzKGFsaWFzKSxcbiAgICB1cmxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlV2lraWxpbmtOb2RlKG5vZGU6IFdpa2lMaW5rTm9kZSwgJHN0cmluZzogc3RyaW5nKTogUGFyc2VMaW5rUmVzdWx0IHtcbiAgY29uc3QgcG9zaXRpb24gPSBlbnN1cmVOb25OdWxsYWJsZShub2RlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxQYXJzZUxpbmtSZXN1bHQ+KHtcbiAgICBhbGlhczogJHN0cmluZy5pbmNsdWRlcyhXSUtJTElOS19ESVZJREVSKSA/IG5vZGUuZGF0YS5hbGlhcyA6IHVuZGVmaW5lZCxcbiAgICBlbmRPZmZzZXQ6IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLmVuZC5vZmZzZXQpLFxuICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgIGlzRXh0ZXJuYWw6IGZhbHNlLFxuICAgIGlzRmlsZVVybDogZmFsc2UsXG4gICAgaXNXaWtpbGluazogdHJ1ZSxcbiAgICByYXc6IGdldFJhd0xpbmsobm9kZSwgJHN0cmluZyksXG4gICAgc3RhcnRPZmZzZXQ6IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLnN0YXJ0Lm9mZnNldCksXG4gICAgdXJsOiBub2RlLnZhbHVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsKGxpdGVyYWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHRyaW1tZWQgPSB0cmltV3d3QXV0b2xpbmtMaXRlcmFsRW5kKGxpdGVyYWwpO1xuICByZXR1cm4gdHJpbW1lZCA9PT0gbGl0ZXJhbCA/IGxpdGVyYWwgOiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsRW5kKGxpdGVyYWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxhc3RDaGFyYWN0ZXIgPSBsaXRlcmFsLnNsaWNlKC0xKTtcbiAgaWYgKFdXV19BVVRPTElOS19MSVRFUkFMX1RSQUlMSU5HX1BVTkNUVUFUSU9OLmhhcyhsYXN0Q2hhcmFjdGVyKSkge1xuICAgIHJldHVybiBsaXRlcmFsLnNsaWNlKDAsIC0xKTtcbiAgfVxuXG4gIC8vIEdGTTogYSBjbG9zaW5nIHBhcmVudGhlc2lzIHdpdGggbm8gb3BlbmluZyBvbmUgdG8gbWF0Y2ggaXMgbm90IHBhcnQgb2YgdGhlIGxpdGVyYWwuXG4gIHJldHVybiBsYXN0Q2hhcmFjdGVyID09PSAnKScgJiYgY291bnRPY2N1cnJlbmNlcyhsaXRlcmFsLCAnKScpID4gY291bnRPY2N1cnJlbmNlcyhsaXRlcmFsLCAnKCcpXG4gICAgPyBsaXRlcmFsLnNsaWNlKDAsIC0xKVxuICAgIDogbGl0ZXJhbC5yZXBsYWNlKFRSQUlMSU5HX0VOVElUWV9SRUZFUkVOQ0VfUkVHX0VYUCwgJycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkEsMEJBQTRDO0FBQzVDLHFCQUF1QztBQUN2QyxvQkFBMkI7QUFDM0IseUJBQWtDO0FBQ2xDLGlCQUlPO0FBQ1AsNkJBQXVDO0FBQ3ZDLG9CQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQStCO0FBQy9CLDhCQUFzQjtBQUt0QixNQUFNLHNDQUFzQztBQUU1QyxNQUFNLG1CQUFtQjtBQWF6QixNQUFNLHlDQUF5QztBQU0vQyxNQUFNLHNDQUFzQztBQUs1QyxNQUFNLDRDQUE0QyxvQkFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLENBQUM7QUFLbEcsTUFBTSxvQ0FBb0M7QUFLMUMsTUFBTSw4QkFBOEI7QUEwVnBDLE1BQU0sdUJBQXVCO0FBQUEsRUFDViwyQkFBNEQsQ0FBQztBQUFBLEVBQzdELHFDQUFpRixDQUFDO0FBQUEsRUFDbEYsNkJBQXlFLENBQUM7QUFBQSxFQUVwRixNQUFNLGFBQW1EO0FBQzlELFNBQUssV0FBVyxhQUFhLEVBQUU7QUFDL0IsV0FBTztBQUFBLE1BQ0wsMEJBQTBCLEtBQUs7QUFBQSxNQUMvQixvQ0FBb0MsS0FBSztBQUFBLE1BQ3pDLDRCQUE0QixLQUFLO0FBQUEsSUFDbkM7QUFBQSxFQUNGO0FBQUEsRUFFUSxXQUFXLFFBQStDO0FBQ2hFLFVBQU0sRUFBRSxjQUFjLEtBQUssaUJBQWlC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
520
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJzZS1saW5rLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIHBhcnNpbmcgbWFya2Rvd24gYW5kIHdpa2kgbGlua3MgaW50byBzdHJ1Y3R1cmVkIGRhdGEsIGFuZCBmb3JcbiAqIGVzY2FwaW5nLCB1bmVzY2FwaW5nLCBhbmQgZW5jb2RpbmcgbGluayBjb21wb25lbnRzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7IExpbmsgfSBmcm9tICdtZGFzdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBMb2MsXG4gIFJlZmVyZW5jZSxcbiAgUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSAndW5pc3QnO1xuXG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGlzRmlsZVVybCxcbiAgaXNVcmxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3VybCc7XG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuaW1wb3J0IHsgcmVtYXJrIH0gZnJvbSAncmVtYXJrJztcbmltcG9ydCByZW1hcmtQYXJzZSBmcm9tICdyZW1hcmstcGFyc2UnO1xuaW1wb3J0IHsgd2lraUxpbmtQbHVnaW4gfSBmcm9tICdyZW1hcmstd2lraS1saW5rJztcbmltcG9ydCB7IHZpc2l0IH0gZnJvbSAndW5pc3QtdXRpbC12aXNpdCc7XG5cbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIGZvciBzcGVjaWFsIG1hcmtkb3duIGxpbmsgc3ltYm9scy5cbiAqL1xuY29uc3QgU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVggPSAvW1xcXFxbXFxdPD5fKn49YCRdL2c7XG5cbmNvbnN0IFdJS0lMSU5LX0RJVklERVIgPSAnfCc7XG5cbi8qKlxuICogTWF0Y2hlcyBhIGNhbmRpZGF0ZSBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rIGxpdGVyYWw6IGB3d3cuYCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgb3IgYWZ0ZXJcbiAqIHdoaXRlc3BhY2UsIGAqYCwgYF9gLCBgfmAsIGAoYCBvciBgPGAsIHJ1bm5pbmcgdXAgdG8gdGhlIG5leHQgd2hpdGVzcGFjZSwgYDxgIG9yIGA+YC4gR0ZNIGl0c2VsZlxuICoga2VlcHMgYSBjbG9zaW5nIGA+YCBpbiB0aGUgbGl0ZXJhbCAoT2JzaWRpYW4gcmVuZGVycyBgPHd3dy5leGFtcGxlLmNvbT5gIHdpdGggYW4gaHJlZiBlbmRpbmcgaW5cbiAqIGAlM0VgKTsgc3RvcHBpbmcgYmVmb3JlIGl0IGlzIGRlbGliZXJhdGUsIHNvIHRoZSBicmFja2V0cyBjYW4gYmUgcmVwb3J0ZWQgYXJvdW5kIHRoZSBsaXRlcmFsIGluc3RlYWQuXG4gKlxuICogVGhlIHByZWNlZGluZyBjaGFyYWN0ZXIgaXMgY29uc3VtZWQgYW5kIHRoZSBsaXRlcmFsIGNhcHR1cmVkIGFzIGBMaXRlcmFsYCwgYmVjYXVzZSBhIGxvb2tiZWhpbmQgaXMgYVxuICogc3ludGF4IGVycm9yIG9uIGlPUyBiZWZvcmUgMTYuNCwgYmVsb3cgdGhlIGlPUyAxNSBPYnNpZGlhbiBtb2JpbGUgc3RpbGwgc3VwcG9ydHMuIENvbnN1bWluZyBpdCBsb3NlcyBub1xuICogY2FuZGlkYXRlOiBhIG1hdGNoIGVuZHMgYmVmb3JlIHdoaXRlc3BhY2UsIGA8YCwgYD5gIG9yIHRoZSBlbmQsIHNvIHRoZSBjaGFyYWN0ZXIgYSBmb2xsb3dpbmcgY2FuZGlkYXRlXG4gKiBuZWVkcyBpcyBuZXZlciBwYXJ0IG9mIHRoZSBwcmV2aW91cyBtYXRjaC5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfQ0FORElEQVRFX1JFR19FWFAgPSAvKD86XnxbXFxzKCo8X35dKSg/PExpdGVyYWw+d3d3XFwuW15cXHM8Pl0qKS9nO1xuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGRvbWFpbiBvZiBhIEdGTSBleHRlbmRlZCBgd3d3LmAgYXV0b2xpbmsgbGl0ZXJhbDogc2VnbWVudHMgb2YgbGV0dGVycywgZGlnaXRzLFxuICogdW5kZXJzY29yZXMgYW5kIGh5cGhlbnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMuXG4gKi9cbmNvbnN0IFdXV19BVVRPTElOS19MSVRFUkFMX0RPTUFJTl9SRUdfRVhQID0gL153d3coPzpcXC5bXFxwe0x9XFxwe059Xy1dKykrL3U7XG5cbi8qKlxuICogVGhlIGNoYXJhY3RlcnMgR0ZNIGRyb3BzIGZyb20gdGhlIGVuZCBvZiBhbiBleHRlbmRlZCBhdXRvbGluay5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfVFJBSUxJTkdfUFVOQ1RVQVRJT04gPSBuZXcgU2V0KFsnXycsICcsJywgJzonLCAnIScsICc/JywgJy4nLCAnKicsICd+J10pO1xuXG4vKipcbiAqIE1hdGNoZXMgYW4gZW50aXR5IHJlZmVyZW5jZSBhdCB0aGUgZW5kIG9mIGFuIGV4dGVuZGVkIGF1dG9saW5rLCB3aGljaCBHRk0gZHJvcHMuXG4gKi9cbmNvbnN0IFRSQUlMSU5HX0VOVElUWV9SRUZFUkVOQ0VfUkVHX0VYUCA9IC8mW1xcZEEtWmEtel0rOyQvO1xuXG4vKipcbiAqIFRoZSBzY2hlbWUgT2JzaWRpYW4gb3BlbnMgYSBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rIGxpdGVyYWwgd2l0aC5cbiAqL1xuY29uc3QgV1dXX0FVVE9MSU5LX0xJVEVSQUxfU0NIRU1FID0gJ2h0dHA6Ly8nO1xuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgbGlua3MgZnJvbSBhIG5vdGUncyBmcm9udG1hdHRlciB2aWEge0BsaW5rIHBhcnNlRnJvbnRtYXR0ZXJMaW5rc30uIEludGVybmFsXG4gKiBzaW5nbGUtbGluayBmcm9udG1hdHRlciB2YWx1ZXMgYXJlIG9taXR0ZWQsIGFzIE9ic2lkaWFuIG5hdGl2ZWx5IGNhY2hlcyB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgZXh0ZXJuYWwgbGlua3MgcGFyc2VkIGZyb20gc2luZ2xlLWxpbmsgKHNpbmdsZS12YWx1ZSkgZnJvbnRtYXR0ZXIgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZXh0ZXJuYWwgbGlua3MgcGFyc2VkIGZyb20gbXVsdGktbGluayAobXVsdGktdmFsdWUpIGZyb250bWF0dGVyIHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpVmFsdWVGcm9udG1hdHRlckV4dGVybmFsTGlua3M6IFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlV2l0aE9mZnNldHNbXTtcblxuICAvKipcbiAgICogVGhlIGludGVybmFsIGxpbmtzIHBhcnNlZCBmcm9tIG11bHRpLWxpbmsgKG11bHRpLXZhbHVlKSBmcm9udG1hdHRlciB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rczogUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0c1tdO1xufVxuXG4vKipcbiAqIEEge0BsaW5rIEZyb250bWF0dGVyTGlua0NhY2hlfSBmb3IgYSBsaW5rIHBhcnNlZCBmcm9tIGEgc2luZ2xlLWxpbmsgZnJvbnRtYXR0ZXIgdmFsdWUgdmlhXG4gKiB7QGxpbmsgcGFyc2VMaW5rc30uIEl0IGNhcnJpZXMgdGhlIGZ1bGwge0BsaW5rIFBhcnNlTGlua1Jlc3VsdH0gc28gY29uc3VtZXJzIGNhbiBpbnNwZWN0IHRoZSBwYXJzZVxuICogZGV0YWlscyB3aXRob3V0IHJlLXBhcnNpbmcgdGhlIGxpbmsuIFVzZSB0aGlzIHdoZW4gdGhlIHdob2xlIGZyb250bWF0dGVyIHZhbHVlIGlzIGEgc2luZ2xlIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2UgZXh0ZW5kcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gIC8qKlxuICAgKiBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBwYXJzZUxpbmtSZXN1bHQ6IFBhcnNlTGlua1Jlc3VsdDtcbn1cblxuLyoqXG4gKiBBIHtAbGluayBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZX0gZm9yIGEgbGluayBwYXJzZWQgZnJvbSBhIG11bHRpLWxpbmsgZnJvbnRtYXR0ZXIgdmFsdWUgdmlhXG4gKiB7QGxpbmsgcGFyc2VMaW5rc30sIGFkZGl0aW9uYWxseSBjYXJyeWluZyB0aGUgb2Zmc2V0cyBvZiB0aGUgbGluayB3aXRoaW4gdGhlIGZyb250bWF0dGVyIHZhbHVlLiBVc2VcbiAqIHRoaXMgd2hlbiB0aGUgZnJvbnRtYXR0ZXIgdmFsdWUgaG9sZHMgbXVsdGlwbGUgbGlua3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0cyBleHRlbmRzIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIEFuIGVuZCBvZmZzZXQgb2YgdGhlIGxpbmsgaW4gdGhlIGZyb250bWF0dGVyIHZhbHVlLlxuICAgKi9cbiAgZW5kT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgc3RhcnQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICovXG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHBhcnNlTGlua30uIFRoZSBzYW1lIGFzIHtAbGluayBQYXJzZUxpbmtzT3B0aW9uc30uXG4gKi9cbmV4cG9ydCB0eXBlIFBhcnNlTGlua09wdGlvbnMgPSBQYXJzZUxpbmtzT3B0aW9ucztcblxuLyoqXG4gKiBBIHtAbGluayBSZWZlcmVuY2VDYWNoZX0gZm9yIGEgbGluayBwYXJzZWQgZnJvbSBjb250ZW50IHZpYSB7QGxpbmsgcGFyc2VMaW5rc30uIEl0IGNhcnJpZXMgdGhlIGZ1bGxcbiAqIHtAbGluayBQYXJzZUxpbmtSZXN1bHR9IHNvIGNvbnN1bWVycyBjYW4gaW5zcGVjdCB0aGUgcGFyc2UgZGV0YWlscyB3aXRob3V0IHJlLXBhcnNpbmcgdGhlIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVmZXJlbmNlIGV4dGVuZHMgUmVmZXJlbmNlQ2FjaGUge1xuICAvKipcbiAgICogVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBsaW5rLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VMaW5rUmVzdWx0OiBQYXJzZUxpbmtSZXN1bHQ7XG59XG5cbi8qKlxuICogQSByZXN1bHQgb2YgcGFyc2luZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVzdWx0IHtcbiAgLyoqXG4gICAqIEFuIGFsaWFzIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW1xcKmFsaWFzXFwqXShsaW5rLm1kKSAtPiBcXCphbGlhc1xcKlxuICAgKiBgYGBcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmNvZGVkIFVSTCBvZiB0aGUgbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oPGxpbmsgd2l0aCBzcGFjZS5tZD4pIC0+IGxpbmslMjB3aXRoJTIwc3BhY2UubWRcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBlbmNvZGVkVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBvcmlnaW5hbCB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBoYXMgYW5nbGUgYnJhY2tldHMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBbYWxpYXNdKDxsaW5rLm1kPikgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGxpbmsubWQpIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaGFzQW5nbGVCcmFja2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhbiBlbWJlZCBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogIVtbYWxpYXNdXSAtPiB0cnVlXG4gICAqIFtbYWxpYXNdXSAtPiBmYWxzZVxuICAgKiBgYGBcbiAgICovXG4gIHJlYWRvbmx5IGlzRW1iZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBleHRlcm5hbC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oaHR0cHM6Ly9leGFtcGxlLmNvbSkgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGZpbGUubWQpIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIGlzIGEgYGZpbGU6Ly9gIFVSTC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10oZmlsZTovLy9DOi94LnR4dCkgLT4gdHJ1ZVxuICAgKiBbYWxpYXNdKGh0dHBzOi8vZXhhbXBsZS5jb20pIC0+IGZhbHNlXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgaXNGaWxlVXJsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaXMgYSB3aWtpbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFtbYWxpYXNdXSAtPiB0cnVlXG4gICAqIFthbGlhc10obGluay5tZCkgLT4gZmFsc2VcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBpc1dpa2lsaW5rOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHJhdyBsaW5rIHRleHQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBbYWxpYXNdKGxpbmsubWQpIC0+IFthbGlhc10obGluay5tZClcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSByYXc6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdGFydCBvZmZzZXQgb2YgdGhlIGxpbmsgaW4gdGhlIG9yaWdpbmFsIHRleHQuXG4gICAqL1xuICByZWFkb25seSBzdGFydE9mZnNldDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW2FsaWFzXShsaW5rLm1kIFwidGl0bGVcIikgLT4gdGl0bGVcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gdW5lc2NhcGVkIGFsaWFzIG9mIHRoZSBsaW5rLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogW1xcKmFsaWFzXFwqXShsaW5rLm1kKSAtPiAqYWxpYXMqXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgdW5lc2NhcGVkQWxpYXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIFVSTCBvZiB0aGUgbGluay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIFthbGlhc10obGluayUyMHdpdGglMjBzcGFjZS5tZCkgLT4gbGluayB3aXRoIHNwYWNlLm1kXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHBhcnNlTGlua3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlTGlua3NPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb2duaXplIEdGTSBleHRlbmRlZCBgd3d3LmAgYXV0b2xpbmsgbGl0ZXJhbHMgKGB3d3cuZXhhbXBsZS5jb21gLCBhbHNvIGluc2lkZVxuICAgKiBgPC4uLj5gKSBhcyBleHRlcm5hbCBsaW5rcywgYXMgT2JzaWRpYW4gZG9lcyBpbiBhIG5vdGUncyBib2R5LiBPYnNpZGlhbiBkb2VzIG5vdCBsaW5rIHRoZW0gaW5cbiAgICogZnJvbnRtYXR0ZXIgdmFsdWVzLCBzbyB7QGxpbmsgcGFyc2VGcm9udG1hdHRlckxpbmtzfSB0dXJucyB0aGlzIG9mZi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgdG9QYXJzZUxpbmtSZWZlcmVuY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvUGFyc2VMaW5rUmVmZXJlbmNlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRoZSBwYXJzZWQgbGluaydzIG9mZnNldHMgaW5kZXggaW50by4gVXNlZCB0byBjb21wdXRlIHRoZSBsaW5lIGFuZCBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJzZWQgbGluayB0byB3cmFwLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VMaW5rUmVzdWx0OiBQYXJzZUxpbmtSZXN1bHQ7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlci5jYXRlZ29yaXplfS5cbiAqL1xuaW50ZXJmYWNlIENhdGVnb3JpemVGcm9udG1hdHRlckxpbmtQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgd2hvbGUgZnJvbnRtYXR0ZXIgdmFsdWUgaXMgYSBzaW5nbGUgbGluay5cbiAgICovXG4gIHJlYWRvbmx5IGlzU2luZ2xlTGluazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGtleSBwYXRoIG9mIHRoZSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyc2VkIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBwYXJzZUxpbmtSZXN1bHQ6IFBhcnNlTGlua1Jlc3VsdDtcblxuICAvKipcbiAgICogVGhlIGZyb250bWF0dGVyIHZhbHVlIHRoZSBsaW5rIHdhcyBwYXJzZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZGVjb2RlVXJsU2FmZWx5fS5cbiAqL1xuaW50ZXJmYWNlIERlY29kZVVybFNhZmVseVBhcmFtcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsaW5rIHVzZXMgYW5nbGUgYnJhY2tldHMuXG4gICAqL1xuICByZWFkb25seSBoYXNBbmdsZUJyYWNrZXRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsaW5rIGlzIGV4dGVybmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBVUkwgdG8gZGVjb2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZXh0cmFjdEFsaWFzfS5cbiAqL1xuaW50ZXJmYWNlIEV4dHJhY3RBbGlhc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIHN0cmluZyB0byBleHRyYWN0IHRoZSBhbGlhcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgJHN0cmluZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBhbGlhcyBpbiB0aGUgc3RyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNFbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQSBzdGFydCBvZmZzZXQgb2YgdGhlIGFsaWFzIGluIHRoZSBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBhbGlhc1N0YXJ0T2Zmc2V0OiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZXh0cmFjdFRleHRMaW5rc30uXG4gKi9cbmludGVyZmFjZSBFeHRyYWN0VGV4dExpbmtzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRvIGV4dHJhY3QgdGhlIHRleHQgbGlua3MgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5ICRzdHJpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gZW5kIG9mZnNldCBvZiB0aGUgdGV4dCBwYXJ0IGluIHRoZSBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBlbmRPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZWNvZ25pemUgR0ZNIGV4dGVuZGVkIGB3d3cuYCBhdXRvbGluayBsaXRlcmFscy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgc3RhcnQgb2Zmc2V0IG9mIHRoZSB0ZXh0IHBhcnQgaW4gdGhlIHN0cmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXJzZWQgbGlua3MgdG8gYXBwZW5kIHRoZSBleHRyYWN0ZWQgdGV4dCBsaW5rcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRleHRMaW5rczogUGFyc2VMaW5rUmVzdWx0W107XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgaGFzQW5nbGVCcmFja2V0c0luTGlua30uXG4gKi9cbmludGVyZmFjZSBIYXNBbmdsZUJyYWNrZXRzSW5MaW5rUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgcmF3IGxpbmsgdGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHJhdzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHJhdyBVUkwgb2YgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSByYXdVcmw6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFdpa2lMaW5rTm9kZSBleHRlbmRzIE5vZGUge1xuICBkYXRhOiBXaWtpTGlua05vZGVEYXRhO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgV2lraUxpbmtOb2RlRGF0YSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgYWxpYXM6IHN0cmluZztcbn1cblxuY2xhc3MgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlWYWx1ZUZyb250bWF0dGVyRXh0ZXJuYWxMaW5rczogUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2VXaXRoT2Zmc2V0c1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlWYWx1ZUZyb250bWF0dGVyTGlua3M6IFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlV2l0aE9mZnNldHNbXSA9IFtdO1xuXG4gIHB1YmxpYyBwYXJzZShmcm9udG1hdHRlcjogdW5rbm93bik6IFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gICAgdGhpcy5wYXJzZVZhbHVlKGZyb250bWF0dGVyLCAnJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb250bWF0dGVyRXh0ZXJuYWxMaW5rczogdGhpcy5mcm9udG1hdHRlckV4dGVybmFsTGlua3MsXG4gICAgICBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJFeHRlcm5hbExpbmtzOiB0aGlzLm11bHRpVmFsdWVGcm9udG1hdHRlckV4dGVybmFsTGlua3MsXG4gICAgICBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rczogdGhpcy5tdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rc1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNhdGVnb3JpemUocGFyYW1zOiBDYXRlZ29yaXplRnJvbnRtYXR0ZXJMaW5rUGFyYW1zKTogdm9pZCB7XG4gICAgY29uc3QgeyBpc1NpbmdsZUxpbmssIGtleSwgcGFyc2VMaW5rUmVzdWx0LCB2YWx1ZSB9ID0gcGFyYW1zO1xuICAgIGlmICghcGFyc2VMaW5rUmVzdWx0LmlzRXh0ZXJuYWwgJiYgaXNTaW5nbGVMaW5rKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVmZXJlbmNlOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZSA9IHtcbiAgICAgIGRpc3BsYXlUZXh0OiBwYXJzZUxpbmtSZXN1bHQuYWxpYXMgPz8gcGFyc2VMaW5rUmVzdWx0LnVybCxcbiAgICAgIGtleSxcbiAgICAgIGxpbms6IHBhcnNlTGlua1Jlc3VsdC51cmwsXG4gICAgICBvcmlnaW5hbDogdmFsdWUsXG4gICAgICBwYXJzZUxpbmtSZXN1bHRcbiAgICB9O1xuXG4gICAgaWYgKGlzU2luZ2xlTGluaykge1xuICAgICAgdGhpcy5mcm9udG1hdHRlckV4dGVybmFsTGlua3MucHVzaChyZWZlcmVuY2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlZmVyZW5jZVdpdGhPZmZzZXRzOiBQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZVdpdGhPZmZzZXRzID0ge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgZW5kT2Zmc2V0OiBwYXJzZUxpbmtSZXN1bHQuZW5kT2Zmc2V0LFxuICAgICAgc3RhcnRPZmZzZXQ6IHBhcnNlTGlua1Jlc3VsdC5zdGFydE9mZnNldFxuICAgIH07XG5cbiAgICBpZiAocGFyc2VMaW5rUmVzdWx0LmlzRXh0ZXJuYWwpIHtcbiAgICAgIHRoaXMubXVsdGlWYWx1ZUZyb250bWF0dGVyRXh0ZXJuYWxMaW5rcy5wdXNoKHJlZmVyZW5jZVdpdGhPZmZzZXRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rcy5wdXNoKHJlZmVyZW5jZVdpdGhPZmZzZXRzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVmFsdWUodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIE9ic2lkaWFuIGxpbmtzIGEgc2NoZW1lLWxlc3MgYHd3dy5gIGxpdGVyYWwgaW4gdGhlIGJvZHkgb25seSwgbmV2ZXIgaW4gYSBmcm9udG1hdHRlciB2YWx1ZS5cbiAgICAgIGNvbnN0IHBhcnNlTGlua1Jlc3VsdHMgPSBwYXJzZUxpbmtzKHZhbHVlLCB7IHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHM6IGZhbHNlIH0pO1xuICAgICAgY29uc3QgaXNTaW5nbGVMaW5rID0gcGFyc2VMaW5rUmVzdWx0c1swXT8ucmF3ID09PSB2YWx1ZTtcbiAgICAgIGZvciAoY29uc3QgcGFyc2VMaW5rUmVzdWx0IG9mIHBhcnNlTGlua1Jlc3VsdHMpIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaXplKHsgaXNTaW5nbGVMaW5rLCBrZXksIHBhcnNlTGlua1Jlc3VsdCwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtjaGlsZEtleSwgY2hpbGRWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUgYXMgR2VuZXJpY09iamVjdCkpIHtcbiAgICAgIHRoaXMucGFyc2VWYWx1ZShjaGlsZFZhbHVlLCBrZXkgPyBgJHtrZXl9LiR7Y2hpbGRLZXl9YCA6IGNoaWxkS2V5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFc2NhcGVzIHRoZSBhbGlhcyBvZiBhIG1hcmtkb3duIGxpbmsuXG4gKlxuICogQHBhcmFtIGFsaWFzIC0gQW4gYWxpYXMgb2YgYSBtYXJrZG93biBsaW5rLlxuICogQHJldHVybnMgQW4gZXNjYXBlZCBhbGlhcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGVzY2FwZUFsaWFzKCcqKmFsaWFzKionKSAvLyAnXFxcXCpcXFxcKmFsaWFzXFxcXCpcXFxcKidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQWxpYXMoYWxpYXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBhbGlhcyxcbiAgICByZXBsYWNlcjogU3RyaW5nLnJhd2BcXCQmYCxcbiAgICBzZWFyY2hWYWx1ZTogU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVhcbiAgfSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlfS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlfSwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIFBhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUocmVmZXJlbmNlKSAmJiAncGFyc2VMaW5rUmVzdWx0JyBpbiByZWZlcmVuY2U7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIGEge0BsaW5rIFBhcnNlTGlua1JlZmVyZW5jZX0uXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIHtAbGluayBQYXJzZUxpbmtSZWZlcmVuY2V9LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGFyc2VMaW5rUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIFBhcnNlTGlua1JlZmVyZW5jZSB7XG4gIHJldHVybiAncGFyc2VMaW5rUmVzdWx0JyBpbiByZWZlcmVuY2U7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBsaW5rcyBmcm9tIGEgbm90ZSdzIGZyb250bWF0dGVyLiBFYWNoIHN0cmluZyB2YWx1ZSBpcyBwYXJzZWQgdmlhIHtAbGluayBwYXJzZUxpbmtzfTogYSB2YWx1ZVxuICogdGhhdCBpcyBhIHNpbmdsZSBsaW5rIHlpZWxkcyBhbiBlbnRyeSB3aXRob3V0IG9mZnNldHMsIGFuZCBhIHZhbHVlIHRoYXQgaG9sZHMgbXVsdGlwbGUgbGlua3MgeWllbGRzXG4gKiBvZmZzZXQtY2FycnlpbmcgZW50cmllcy4gSW50ZXJuYWwgc2luZ2xlLWxpbmsgdmFsdWVzIGFyZSBvbWl0dGVkLCBhcyBPYnNpZGlhbiBuYXRpdmVseSBjYWNoZXMgdGhlbS5cbiAqXG4gKiBAcGFyYW0gZnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnRtYXR0ZXIgdG8gcGFyc2UgKGEgdmFsdWUsIG9iamVjdCwgb3IgYXJyYXkpLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBmcm9udG1hdHRlciBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXJMaW5rcyhmcm9udG1hdHRlcjogdW5rbm93bik6IFBhcnNlRnJvbnRtYXR0ZXJMaW5rc1Jlc3VsdCB7XG4gIHJldHVybiBuZXcgRnJvbnRtYXR0ZXJMaW5rc1BhcnNlcigpLnBhcnNlKGZyb250bWF0dGVyKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBsaW5rIGludG8gaXRzIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgbGluayB0byBwYXJzZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcnNlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGxpbmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxpbmsoJHN0cmluZzogc3RyaW5nLCBvcHRpb25zPzogUGFyc2VMaW5rT3B0aW9ucyk6IG51bGwgfCBQYXJzZUxpbmtSZXN1bHQge1xuICBjb25zdCBsaW5rcyA9IHBhcnNlTGlua3MoJHN0cmluZywgb3B0aW9ucyk7XG4gIHJldHVybiBsaW5rc1swXT8ucmF3ID09PSAkc3RyaW5nID8gbGlua3NbMF0gOiBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhbGwgbGlua3MgaW4gYSBzdHJpbmcuXG4gKlxuICogQmVzaWRlcyBtYXJrZG93biBsaW5rcywgd2lraWxpbmtzIGFuZCBhdXRvbGlua3MsIHRoZSBwbGFpbiB0ZXh0IGJldHdlZW4gdGhlbSBpcyBzY2FubmVkIGZvciBiYXJlXG4gKiBVUkxzIHdpdGggYSBzY2hlbWUgKGBodHRwczovL2V4YW1wbGUuY29tYCkgYW5kLCB1bmxlc3MgdHVybmVkIG9mZiB0aHJvdWdoXG4gKiB7QGxpbmsgUGFyc2VMaW5rc09wdGlvbnMuc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFsc30sIGZvciBHRk0gZXh0ZW5kZWQgYHd3dy5gIGF1dG9saW5rXG4gKiBsaXRlcmFscyAoYHd3dy5leGFtcGxlLmNvbWApLiBTdWNoIGEgbGl0ZXJhbCBpcyByZXBvcnRlZCBhcyBhbiBleHRlcm5hbCBsaW5rIHdob3NlIGB1cmxgIGNhcnJpZXMgdGhlXG4gKiBgaHR0cDovL2Agc2NoZW1lIE9ic2lkaWFuIG9wZW5zIGl0IHdpdGgsIHNvIGEgbGluayByZWJ1aWx0IGZyb20gaXQgc3RheXMgZXh0ZXJuYWw6IGEgc2NoZW1lLWxlc3NcbiAqIGBbYWxpYXNdKHd3dy5leGFtcGxlLmNvbSlgIGlzIGFuIGludGVybmFsIGxpbmsgaW4gT2JzaWRpYW4uIEEgbGl0ZXJhbCB3cmFwcGVkIGluIGA8Li4uPmAgcmVwb3J0cyB0aGVcbiAqIGJyYWNrZXRzIGFzIHBhcnQgb2YgYHJhd2AsIHNvIHJlcGxhY2luZyBgcmF3YCBsZWF2ZXMgbm8gc3RyYXkgYnJhY2tldCBiZWhpbmQuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIHBhcnNlIHRoZSBsaW5rcyBpbi5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcnNlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMaW5rcygkc3RyaW5nOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJzZUxpbmtzT3B0aW9ucyk6IFBhcnNlTGlua1Jlc3VsdFtdIHtcbiAgY29uc3Qgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscyA9IG9wdGlvbnM/LnNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMgPz8gdHJ1ZTtcbiAgY29uc3QgZW1iZWRTeW1ib2xPZmZzZXRzID0gbmV3IFNldDxudW1iZXI+KCk7XG5cbiAgY29uc3QgRU1CRURfTElOS19QUkVGSVggPSAnIVsnO1xuICBjb25zdCBOT19FTUJFRF9MSU5LX1BSRUZJWCA9ICdAWyc7XG4gIGNvbnN0IERVTU1ZX0NIQVJBQ1RFUiA9ICdAJztcblxuICBjb25zdCBFTUJFRF9JTlNJREVfTElOS19SRUdfRVhQID0gL1xcWyg/PExpbmtBbGlhcz4hXFxbLio/XFxdXFwoLis/XFwpKVxcXVxcKCg/PExpbms+Lis/KVxcKS9nO1xuICBjb25zdCBub0luc2lkZUVtYmVkc0xpbmtzU3RyaW5nID0gcmVwbGFjZUFsbCh7XG4gICAgJHN0cmluZyxcbiAgICByZXBsYWNlcjogKHsgY2FwdHVyZWRHcm91cEFyZ3VtZW50czogW2xpbmtBbGlhcyA9ICcnLCBsaW5rID0gJyddIH0pID0+IHtcbiAgICAgIGNvbnN0IGR1bW15QWxpYXMgPSBEVU1NWV9DSEFSQUNURVIucmVwZWF0KGxpbmtBbGlhcy5sZW5ndGgpO1xuICAgICAgcmV0dXJuIGBbJHtkdW1teUFsaWFzfV0oJHtsaW5rfSlgO1xuICAgIH0sXG4gICAgc2VhcmNoVmFsdWU6IEVNQkVEX0lOU0lERV9MSU5LX1JFR19FWFBcbiAgfSk7XG5cbiAgY29uc3Qgbm9FbWJlZFN0cmluZyA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IG5vSW5zaWRlRW1iZWRzTGlua3NTdHJpbmcsXG4gICAgcmVwbGFjZXI6ICgkYXJndW1lbnRzKSA9PiB7XG4gICAgICBlbWJlZFN5bWJvbE9mZnNldHMuYWRkKCRhcmd1bWVudHMub2Zmc2V0KTtcbiAgICAgIHJldHVybiBOT19FTUJFRF9MSU5LX1BSRUZJWDtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiBFTUJFRF9MSU5LX1BSRUZJWFxuICB9KTtcblxuICBjb25zdCBwcm9jZXNzb3IgPSByZW1hcmsoKS51c2UocmVtYXJrUGFyc2UpLnVzZSh3aWtpTGlua1BsdWdpbiwgeyBhbGlhc0RpdmlkZXI6IFdJS0lMSU5LX0RJVklERVIgfSk7XG4gIGNvbnN0IHJvb3QgPSBwcm9jZXNzb3IucGFyc2Uobm9FbWJlZFN0cmluZyk7XG5cbiAgY29uc3QgbGlua3M6IFBhcnNlTGlua1Jlc3VsdFtdID0gW107XG4gIGNvbnN0IHRleHRMaW5rczogUGFyc2VMaW5rUmVzdWx0W10gPSBbXTtcblxuICB2aXNpdChyb290LCAobm9kZTogTm9kZSkgPT4ge1xuICAgIGxldCBsaW5rOiBQYXJzZUxpbmtSZXN1bHQ7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpbmsnOiB7XG4gICAgICAgIGxpbmsgPSBwYXJzZUxpbmtOb2RlKG5vZGUgYXMgTGluaywgJHN0cmluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnd2lraUxpbmsnOiB7XG4gICAgICAgIGxpbmsgPSBwYXJzZVdpa2lsaW5rTm9kZShub2RlIGFzIFdpa2lMaW5rTm9kZSwgJHN0cmluZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVtYmVkU3ltYm9sT2Zmc2V0cy5oYXMobGluay5zdGFydE9mZnNldCAtIDEpKSB7XG4gICAgICBsaW5rID0ge1xuICAgICAgICAuLi5saW5rLFxuICAgICAgICBpc0VtYmVkOiB0cnVlLFxuICAgICAgICByYXc6IGAhJHtsaW5rLnJhd31gLFxuICAgICAgICBzdGFydE9mZnNldDogbGluay5zdGFydE9mZnNldCAtIDFcbiAgICAgIH07XG4gICAgfVxuICAgIGxpbmtzLnB1c2gobGluayk7XG4gIH0pO1xuXG4gIGxpbmtzLnNvcnQoKGEsIGIpID0+IGEuc3RhcnRPZmZzZXQgLSBiLnN0YXJ0T2Zmc2V0KTtcblxuICBsZXQgdGV4dFN0YXJ0T2Zmc2V0ID0gMDtcblxuICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcbiAgICBleHRyYWN0VGV4dExpbmtzKHtcbiAgICAgICRzdHJpbmcsXG4gICAgICBlbmRPZmZzZXQ6IGxpbmsuc3RhcnRPZmZzZXQgLSAxLFxuICAgICAgc2hvdWxkUmVjb2duaXplV3d3QXV0b2xpbmtMaXRlcmFscyxcbiAgICAgIHN0YXJ0T2Zmc2V0OiB0ZXh0U3RhcnRPZmZzZXQsXG4gICAgICB0ZXh0TGlua3NcbiAgICB9KTtcbiAgICB0ZXh0U3RhcnRPZmZzZXQgPSBsaW5rLmVuZE9mZnNldCArIDE7XG4gIH1cblxuICBleHRyYWN0VGV4dExpbmtzKHtcbiAgICAkc3RyaW5nLFxuICAgIGVuZE9mZnNldDogJHN0cmluZy5sZW5ndGggLSAxLFxuICAgIHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMsXG4gICAgc3RhcnRPZmZzZXQ6IHRleHRTdGFydE9mZnNldCxcbiAgICB0ZXh0TGlua3NcbiAgfSk7XG5cbiAgbGlua3MucHVzaCguLi50ZXh0TGlua3MpO1xuICBsaW5rcy5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0T2Zmc2V0IC0gYi5zdGFydE9mZnNldCk7XG5cbiAgcmV0dXJuIGxpbmtzO1xufVxuXG4vKipcbiAqIFdyYXBzIGEge0BsaW5rIFBhcnNlTGlua1Jlc3VsdH0gaW50byBhIHtAbGluayBQYXJzZUxpbmtSZWZlcmVuY2V9IHNvIGl0IGNhbiBmbG93IHRocm91Z2ggdGhlXG4gKiByZWZlcmVuY2UtYmFzZWQgZmlsZS1jaGFuZ2UgcGlwZWxpbmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB3cmFwcGluZyB0aGUgcGFyc2VkIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFBhcnNlTGlua1JlZmVyZW5jZX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcnNlTGlua1JlZmVyZW5jZShwYXJhbXM6IFRvUGFyc2VMaW5rUmVmZXJlbmNlUGFyYW1zKTogUGFyc2VMaW5rUmVmZXJlbmNlIHtcbiAgY29uc3QgeyBjb250ZW50LCBwYXJzZUxpbmtSZXN1bHQgfSA9IHBhcmFtcztcbiAgcmV0dXJuIHtcbiAgICAuLi4ocGFyc2VMaW5rUmVzdWx0LmFsaWFzICE9PSB1bmRlZmluZWQgJiYgeyBkaXNwbGF5VGV4dDogcGFyc2VMaW5rUmVzdWx0LmFsaWFzIH0pLFxuICAgIGxpbms6IHBhcnNlTGlua1Jlc3VsdC51cmwsXG4gICAgb3JpZ2luYWw6IHBhcnNlTGlua1Jlc3VsdC5yYXcsXG4gICAgcGFyc2VMaW5rUmVzdWx0LFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICBlbmQ6IG9mZnNldFRvTG9jKGNvbnRlbnQsIHBhcnNlTGlua1Jlc3VsdC5lbmRPZmZzZXQpLFxuICAgICAgc3RhcnQ6IG9mZnNldFRvTG9jKGNvbnRlbnQsIHBhcnNlTGlua1Jlc3VsdC5zdGFydE9mZnNldClcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVW5lc2NhcGVzIHRoZSBhbGlhcyBvZiBhIG1hcmtkb3duIGxpbmsuXG4gKlxuICogQHBhcmFtIGVzY2FwZWRBbGlhcyAtIEFuIGVzY2FwZWQgYWxpYXMuXG4gKiBAcmV0dXJucyBBbiB1bmVzY2FwZWQgYWxpYXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB1bmVzY2FwZUFsaWFzKCdcXFxcKlxcXFwqYWxpYXNcXFxcKlxcXFwqJykgLy8gJyoqYWxpYXMqKidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5lc2NhcGVBbGlhcyhlc2NhcGVkQWxpYXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBlc2NhcGVkQWxpYXMsXG4gICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmd1bWVudHM6IFtiYWNrc2xhc2hlcyA9ICcnLCBzcGVjaWFsQ2hhciA9ICcnXSB9KSA9PiB7XG4gICAgICBjb25zdCBFU0NBUEVEX0JBQ0tTTEFTSF9MRU5HVEggPSAyO1xuICAgICAgY29uc3QgYmFja3NsYXNoQ291bnQgPSBiYWNrc2xhc2hlcy5sZW5ndGg7XG4gICAgICBjb25zdCBrZWVwQ291bnQgPSBNYXRoLmZsb29yKGJhY2tzbGFzaENvdW50IC8gRVNDQVBFRF9CQUNLU0xBU0hfTEVOR1RIKTtcbiAgICAgIHJldHVybiAnXFxcXCcucmVwZWF0KGtlZXBDb3VudCkgKyBzcGVjaWFsQ2hhcjtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiAvKD88QmFja3NsYXNoZXM+XFxcXCspKD88U3BlY2lhbENoYXJhY3Rlcj5bIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxcXFxcXV5fYHt8fX5dKS9nXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb3VudE9jY3VycmVuY2VzKCRzdHJpbmc6IHN0cmluZywgY2hhcmFjdGVyOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gJHN0cmluZy5zcGxpdChjaGFyYWN0ZXIpLmxlbmd0aCAtIDE7XG59XG5cbmZ1bmN0aW9uIGRlY29kZVVybFNhZmVseShwYXJhbXM6IERlY29kZVVybFNhZmVseVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgaGFzQW5nbGVCcmFja2V0cywgaXNFeHRlcm5hbCwgdXJsIH0gPSBwYXJhbXM7XG4gIC8vIGBmaWxlOi8vYCBVUkxzIGFyZSBleHRlcm5hbCwgYnV0IHRoZWlyIHBlcmNlbnQtZW5jb2RpbmcgaXMgcHVyZWx5IGNvc21ldGljLCBzbyBkZWNvZGUgdGhlbSBsaWtlXG4gIC8vIGludGVybmFsIGxpbmtzLiBFdmVyeSBvdGhlciBleHRlcm5hbCBVUkwgaXMgbGVmdCB1bnRvdWNoZWQgKGl0cyBlbmNvZGluZyBtYXkgYmUgc2lnbmlmaWNhbnQpLlxuICBpZiAoKGlzRXh0ZXJuYWwgfHwgaGFzQW5nbGVCcmFja2V0cykgJiYgIWlzRmlsZVVybCh1cmwpKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1cmwpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgVVJMICR7dXJsfWAsIGVycm9yKTtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBbGlhcyhwYXJhbXM6IEV4dHJhY3RBbGlhc1BhcmFtcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgJHN0cmluZywgYWxpYXNFbmRPZmZzZXQsIGFsaWFzU3RhcnRPZmZzZXQgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGFsaWFzU3RhcnRPZmZzZXQgPCBhbGlhc0VuZE9mZnNldFxuICAgID8gJHN0cmluZy5zbGljZShhbGlhc1N0YXJ0T2Zmc2V0LCBhbGlhc0VuZE9mZnNldClcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRleHRMaW5rcyhwYXJhbXM6IEV4dHJhY3RUZXh0TGlua3NQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyAkc3RyaW5nLCBlbmRPZmZzZXQsIHNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMsIHN0YXJ0T2Zmc2V0LCB0ZXh0TGlua3MgfSA9IHBhcmFtcztcbiAgaWYgKHN0YXJ0T2Zmc2V0ID4gZW5kT2Zmc2V0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdGV4dFBhcnQgPSAkc3RyaW5nLnNsaWNlKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgKyAxKTtcbiAgY29uc3Qgc2NoZW1lTGlua3M6IFBhcnNlTGlua1Jlc3VsdFtdID0gW107XG4gIHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHRleHRQYXJ0LFxuICAgIHJlcGxhY2VyOiAoeyBjYXB0dXJlZEdyb3VwQXJndW1lbnRzOiBbcmF3VXJsID0gJyddLCBvZmZzZXQgfSkgPT4ge1xuICAgICAgaWYgKCFpc1VybChyYXdVcmwpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gRGVjb2RlIGJhcmUgYGZpbGU6Ly9gIFVSTHMgbGlrZSB0aGUgYnJhY2tldGVkIHBhdGggKGBwYXJzZUxpbmtOb2RlYCkgZG9lcy5cbiAgICAgIC8vIE9mZnNldHMgYW5kIGByYXdgIHN0YXkgYmFzZWQgb24gdGhlIG9yaWdpbmFsIChwb3NzaWJseSBwZXJjZW50LWVuY29kZWQpIHRleHQuXG4gICAgICBjb25zdCB1cmwgPSBkZWNvZGVVcmxTYWZlbHkoe1xuICAgICAgICBoYXNBbmdsZUJyYWNrZXRzOiBmYWxzZSxcbiAgICAgICAgaXNFeHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgdXJsOiByYXdVcmxcbiAgICAgIH0pO1xuICAgICAgc2NoZW1lTGlua3MucHVzaCh7XG4gICAgICAgIGVuY29kZWRVcmw6IGVuY29kZVVybCh1cmwpLFxuICAgICAgICBlbmRPZmZzZXQ6IHN0YXJ0T2Zmc2V0ICsgb2Zmc2V0ICsgcmF3VXJsLmxlbmd0aCxcbiAgICAgICAgaGFzQW5nbGVCcmFja2V0czogZmFsc2UsXG4gICAgICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgICAgICBpc0V4dGVybmFsOiB0cnVlLFxuICAgICAgICBpc0ZpbGVVcmw6IGlzRmlsZVVybCh1cmwpLFxuICAgICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgICAgcmF3OiByYXdVcmwsXG4gICAgICAgIHN0YXJ0T2Zmc2V0OiBzdGFydE9mZnNldCArIG9mZnNldCxcbiAgICAgICAgdXJsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIHNlYXJjaFZhbHVlOiAvKD88VXJsPlxcUyspL2dcbiAgfSk7XG4gIHRleHRMaW5rcy5wdXNoKC4uLnNjaGVtZUxpbmtzKTtcblxuICBpZiAoIXNob3VsZFJlY29nbml6ZVd3d0F1dG9saW5rTGl0ZXJhbHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBmb3IgKGNvbnN0IG1hdGNoIG9mIHRleHRQYXJ0Lm1hdGNoQWxsKFdXV19BVVRPTElOS19MSVRFUkFMX0NBTkRJREFURV9SRUdfRVhQKSkge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdMaXRlcmFsJyk7XG4gICAgY29uc3QgbGl0ZXJhbCA9IHRyaW1Xd3dBdXRvbGlua0xpdGVyYWwoY2FuZGlkYXRlKTtcbiAgICBpZiAoIWlzVmFsaWRXd3dBdXRvbGlua0xpdGVyYWwobGl0ZXJhbCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdGVyYWxTdGFydE9mZnNldCA9IHN0YXJ0T2Zmc2V0ICsgbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggLSBjYW5kaWRhdGUubGVuZ3RoO1xuICAgIGNvbnN0IGxpdGVyYWxFbmRPZmZzZXQgPSBsaXRlcmFsU3RhcnRPZmZzZXQgKyBsaXRlcmFsLmxlbmd0aDtcbiAgICBpZiAoc2NoZW1lTGlua3Muc29tZSgobGluaykgPT4gbGluay5zdGFydE9mZnNldCA8IGxpdGVyYWxFbmRPZmZzZXQgJiYgbGl0ZXJhbFN0YXJ0T2Zmc2V0IDwgbGluay5lbmRPZmZzZXQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNBbmdsZUJyYWNrZXRzID0gJHN0cmluZ1tsaXRlcmFsU3RhcnRPZmZzZXQgLSAxXSA9PT0gJzwnICYmICRzdHJpbmdbbGl0ZXJhbEVuZE9mZnNldF0gPT09ICc+JztcbiAgICBjb25zdCBsaW5rU3RhcnRPZmZzZXQgPSBoYXNBbmdsZUJyYWNrZXRzID8gbGl0ZXJhbFN0YXJ0T2Zmc2V0IC0gMSA6IGxpdGVyYWxTdGFydE9mZnNldDtcbiAgICBjb25zdCBsaW5rRW5kT2Zmc2V0ID0gaGFzQW5nbGVCcmFja2V0cyA/IGxpdGVyYWxFbmRPZmZzZXQgKyAxIDogbGl0ZXJhbEVuZE9mZnNldDtcbiAgICBjb25zdCB1cmwgPSBXV1dfQVVUT0xJTktfTElURVJBTF9TQ0hFTUUgKyBsaXRlcmFsO1xuICAgIHRleHRMaW5rcy5wdXNoKHtcbiAgICAgIGVuY29kZWRVcmw6IGVuY29kZVVybCh1cmwpLFxuICAgICAgZW5kT2Zmc2V0OiBsaW5rRW5kT2Zmc2V0LFxuICAgICAgaGFzQW5nbGVCcmFja2V0cyxcbiAgICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgICAgaXNFeHRlcm5hbDogdHJ1ZSxcbiAgICAgIGlzRmlsZVVybDogZmFsc2UsXG4gICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgIHJhdzogJHN0cmluZy5zbGljZShsaW5rU3RhcnRPZmZzZXQsIGxpbmtFbmRPZmZzZXQpLFxuICAgICAgc3RhcnRPZmZzZXQ6IGxpbmtTdGFydE9mZnNldCxcbiAgICAgIHVybFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJhd0xpbmsobm9kZTogTm9kZSwgJHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcG9zID0gZW5zdXJlTm9uTnVsbGFibGUobm9kZS5wb3NpdGlvbik7XG4gIHJldHVybiAkc3RyaW5nLnNsaWNlKHBvcy5zdGFydC5vZmZzZXQsIHBvcy5lbmQub2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gaGFzQW5nbGVCcmFja2V0c0luTGluayhwYXJhbXM6IEhhc0FuZ2xlQnJhY2tldHNJbkxpbmtQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyByYXcsIHJhd1VybCB9ID0gcGFyYW1zO1xuICBjb25zdCBPUEVOX0FOR0xFX0JSQUNLRVQgPSAnPCc7XG4gIHJldHVybiByYXcuc3RhcnRzV2l0aChPUEVOX0FOR0xFX0JSQUNLRVQpIHx8IHJhd1VybC5zdGFydHNXaXRoKE9QRU5fQU5HTEVfQlJBQ0tFVCk7XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWRXd3dBdXRvbGlua0xpdGVyYWwobGl0ZXJhbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGRvbWFpbiA9IFdXV19BVVRPTElOS19MSVRFUkFMX0RPTUFJTl9SRUdfRVhQLmV4ZWMobGl0ZXJhbCk/LlswXTtcbiAgaWYgKGRvbWFpbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gR0ZNOiBubyB1bmRlcnNjb3JlIGluIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgZG9tYWluLlxuICBjb25zdCBMQVNUX1NFR01FTlRTX0NPVU5UID0gMjtcbiAgcmV0dXJuIGRvbWFpbi5zcGxpdCgnLicpLnNsaWNlKC1MQVNUX1NFR01FTlRTX0NPVU5UKS5ldmVyeSgoc2VnbWVudCkgPT4gIXNlZ21lbnQuaW5jbHVkZXMoJ18nKSk7XG59XG5cbmZ1bmN0aW9uIG9mZnNldFRvTG9jKGNvbnRlbnQ6IHN0cmluZywgb2Zmc2V0OiBudW1iZXIpOiBMb2Mge1xuICBjb25zdCBwcmVjZWRpbmdDb250ZW50ID0gY29udGVudC5zbGljZSgwLCBvZmZzZXQpO1xuICBjb25zdCBsaW5lID0gKHByZWNlZGluZ0NvbnRlbnQubWF0Y2goL1xcbi9nKSA/PyBbXSkubGVuZ3RoO1xuICBjb25zdCBsYXN0TmV3bGluZU9mZnNldCA9IHByZWNlZGluZ0NvbnRlbnQubGFzdEluZGV4T2YoJ1xcbicpO1xuICByZXR1cm4ge1xuICAgIGNvbDogb2Zmc2V0IC0gKGxhc3ROZXdsaW5lT2Zmc2V0ICsgMSksXG4gICAgbGluZSxcbiAgICBvZmZzZXRcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VMaW5rTm9kZShub2RlOiBMaW5rLCAkc3RyaW5nOiBzdHJpbmcpOiBQYXJzZUxpbmtSZXN1bHQge1xuICBjb25zdCBMSU5LX0FMSUFTX1NVRkZJWCA9ICddKCc7XG4gIGNvbnN0IExJTktfU1VGRklYID0gJyknO1xuICBjb25zdCByYXcgPSBnZXRSYXdMaW5rKG5vZGUsICRzdHJpbmcpO1xuICBjb25zdCBwb3NpdGlvbiA9IGVuc3VyZU5vbk51bGxhYmxlKG5vZGUucG9zaXRpb24pO1xuICBjb25zdCBub2RlRW5kT2Zmc2V0ID0gZW5zdXJlTm9uTnVsbGFibGUocG9zaXRpb24uZW5kLm9mZnNldCk7XG4gIGNvbnN0IG5vZGVTdGFydE9mZnNldCA9IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLnN0YXJ0Lm9mZnNldCk7XG4gIC8vIEFuIGVtcHR5IGxhYmVsIChgW10oLi4uKWApIGhhcyBubyBjaGlsZHJlbiwgc28gaXQgc3RhcnRzIGFuZCBlbmRzIGp1c3QgYWZ0ZXIgdGhlIG5vZGUncyBvd24gYFtgLiBBbiBlbWJlZCdzIGAhYCBpcyBvdXRzaWRlIHRoZSBub2RlLCBzaW5jZSBgcGFyc2VMaW5rc2AgbWFza3MgaXQgYmVmb3JlIHBhcnNpbmcuXG4gIGNvbnN0IGVtcHR5QWxpYXNPZmZzZXQgPSBub2RlU3RhcnRPZmZzZXQgKyAxO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9iZXR0ZXItZG9tLXRyYXZlcnNpbmcgLS0gYG5vZGVgIGlzIGFuIG1kYXN0IG5vZGUsIG5vdCBhIERPTSBub2RlLiBJdCBoYXMgbm8gYGZpcnN0RWxlbWVudENoaWxkYDsgdGhlIHJ1bGUgbWF0Y2hlcyB0aGUgYC5jaGlsZHJlblswXWAgc2hhcGUgd2l0aG91dCBjaGVja2luZyB3aGF0IGl0IGlzIG9uLlxuICBjb25zdCBhbGlhc05vZGVTdGFydE9mZnNldCA9IG5vZGUuY2hpbGRyZW5bMF0/LnBvc2l0aW9uPy5zdGFydC5vZmZzZXQgPz8gZW1wdHlBbGlhc09mZnNldDtcbiAgY29uc3QgYWxpYXNOb2RlRW5kT2Zmc2V0ID0gbm9kZS5jaGlsZHJlbi5hdCgtMSk/LnBvc2l0aW9uPy5lbmQub2Zmc2V0ID8/IGVtcHR5QWxpYXNPZmZzZXQ7XG4gIGNvbnN0IHJhd1VybCA9ICRzdHJpbmcuc2xpY2UoYWxpYXNOb2RlRW5kT2Zmc2V0ICsgTElOS19BTElBU19TVUZGSVgubGVuZ3RoLCBub2RlRW5kT2Zmc2V0IC0gTElOS19TVUZGSVgubGVuZ3RoKTtcbiAgY29uc3QgaGFzQW5nbGVCcmFja2V0cyA9IGhhc0FuZ2xlQnJhY2tldHNJbkxpbmsoe1xuICAgIHJhdyxcbiAgICByYXdVcmxcbiAgfSk7XG4gIGNvbnN0IGlzRXh0ZXJuYWwgPSBpc1VybChub2RlLnVybCk7XG4gIGNvbnN0IHVybCA9IGRlY29kZVVybFNhZmVseSh7XG4gICAgaGFzQW5nbGVCcmFja2V0cyxcbiAgICBpc0V4dGVybmFsLFxuICAgIHVybDogbm9kZS51cmxcbiAgfSk7XG4gIGNvbnN0IGFsaWFzID0gZXh0cmFjdEFsaWFzKHtcbiAgICAkc3RyaW5nLFxuICAgIGFsaWFzRW5kT2Zmc2V0OiBhbGlhc05vZGVFbmRPZmZzZXQsXG4gICAgYWxpYXNTdGFydE9mZnNldDogYWxpYXNOb2RlU3RhcnRPZmZzZXRcbiAgfSk7XG4gIHJldHVybiBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8UGFyc2VMaW5rUmVzdWx0Pih7XG4gICAgYWxpYXMsXG4gICAgZW5jb2RlZFVybDogaXNFeHRlcm5hbCA/IGVuY29kZVVybCh1cmwpIDogdW5kZWZpbmVkLFxuICAgIGVuZE9mZnNldDogbm9kZUVuZE9mZnNldCxcbiAgICBoYXNBbmdsZUJyYWNrZXRzLFxuICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgIGlzRXh0ZXJuYWwsXG4gICAgaXNGaWxlVXJsOiBpc0ZpbGVVcmwodXJsKSxcbiAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICByYXcsXG4gICAgc3RhcnRPZmZzZXQ6IG5vZGVTdGFydE9mZnNldCxcbiAgICB0aXRsZTogbm9kZS50aXRsZSA/PyB1bmRlZmluZWQsXG4gICAgdW5lc2NhcGVkQWxpYXM6IGFsaWFzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB1bmVzY2FwZUFsaWFzKGFsaWFzKSxcbiAgICB1cmxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlV2lraWxpbmtOb2RlKG5vZGU6IFdpa2lMaW5rTm9kZSwgJHN0cmluZzogc3RyaW5nKTogUGFyc2VMaW5rUmVzdWx0IHtcbiAgY29uc3QgcG9zaXRpb24gPSBlbnN1cmVOb25OdWxsYWJsZShub2RlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxQYXJzZUxpbmtSZXN1bHQ+KHtcbiAgICBhbGlhczogJHN0cmluZy5pbmNsdWRlcyhXSUtJTElOS19ESVZJREVSKSA/IG5vZGUuZGF0YS5hbGlhcyA6IHVuZGVmaW5lZCxcbiAgICBlbmRPZmZzZXQ6IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLmVuZC5vZmZzZXQpLFxuICAgIGlzRW1iZWQ6IGZhbHNlLFxuICAgIGlzRXh0ZXJuYWw6IGZhbHNlLFxuICAgIGlzRmlsZVVybDogZmFsc2UsXG4gICAgaXNXaWtpbGluazogdHJ1ZSxcbiAgICByYXc6IGdldFJhd0xpbmsobm9kZSwgJHN0cmluZyksXG4gICAgc3RhcnRPZmZzZXQ6IGVuc3VyZU5vbk51bGxhYmxlKHBvc2l0aW9uLnN0YXJ0Lm9mZnNldCksXG4gICAgdXJsOiBub2RlLnZhbHVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsKGxpdGVyYWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHRyaW1tZWQgPSB0cmltV3d3QXV0b2xpbmtMaXRlcmFsRW5kKGxpdGVyYWwpO1xuICByZXR1cm4gdHJpbW1lZCA9PT0gbGl0ZXJhbCA/IGxpdGVyYWwgOiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsKHRyaW1tZWQpO1xufVxuXG5mdW5jdGlvbiB0cmltV3d3QXV0b2xpbmtMaXRlcmFsRW5kKGxpdGVyYWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxhc3RDaGFyYWN0ZXIgPSBsaXRlcmFsLnNsaWNlKC0xKTtcbiAgaWYgKFdXV19BVVRPTElOS19MSVRFUkFMX1RSQUlMSU5HX1BVTkNUVUFUSU9OLmhhcyhsYXN0Q2hhcmFjdGVyKSkge1xuICAgIHJldHVybiBsaXRlcmFsLnNsaWNlKDAsIC0xKTtcbiAgfVxuXG4gIC8vIEdGTTogYSBjbG9zaW5nIHBhcmVudGhlc2lzIHdpdGggbm8gb3BlbmluZyBvbmUgdG8gbWF0Y2ggaXMgbm90IHBhcnQgb2YgdGhlIGxpdGVyYWwuXG4gIHJldHVybiBsYXN0Q2hhcmFjdGVyID09PSAnKScgJiYgY291bnRPY2N1cnJlbmNlcyhsaXRlcmFsLCAnKScpID4gY291bnRPY2N1cnJlbmNlcyhsaXRlcmFsLCAnKCcpXG4gICAgPyBsaXRlcmFsLnNsaWNlKDAsIC0xKVxuICAgIDogbGl0ZXJhbC5yZXBsYWNlKFRSQUlMSU5HX0VOVElUWV9SRUZFUkVOQ0VfUkVHX0VYUCwgJycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUJBLDBCQUE0QztBQUM1QyxxQkFBdUM7QUFDdkMsb0JBQTJCO0FBQzNCLHlCQUFrQztBQUNsQyxpQkFJTztBQUNQLDZCQUF1QztBQUN2QyxvQkFBdUI7QUFDdkIsMEJBQXdCO0FBQ3hCLDhCQUErQjtBQUMvQiw4QkFBc0I7QUFLdEIsTUFBTSxzQ0FBc0M7QUFFNUMsTUFBTSxtQkFBbUI7QUFhekIsTUFBTSx5Q0FBeUM7QUFNL0MsTUFBTSxzQ0FBc0M7QUFLNUMsTUFBTSw0Q0FBNEMsb0JBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxDQUFDO0FBS2xHLE1BQU0sb0NBQW9DO0FBSzFDLE1BQU0sOEJBQThCO0FBMFZwQyxNQUFNLHVCQUF1QjtBQUFBLEVBQ1YsMkJBQTRELENBQUM7QUFBQSxFQUM3RCxxQ0FBaUYsQ0FBQztBQUFBLEVBQ2xGLDZCQUF5RSxDQUFDO0FBQUEsRUFFcEYsTUFBTSxhQUFtRDtBQUM5RCxTQUFLLFdBQVcsYUFBYSxFQUFFO0FBQy9CLFdBQU87QUFBQSxNQUNMLDBCQUEwQixLQUFLO0FBQUEsTUFDL0Isb0NBQW9DLEtBQUs7QUFBQSxNQUN6Qyw0QkFBNEIsS0FBSztBQUFBLElBQ25DO0FBQUEsRUFDRjtBQUFBLEVBRVEsV0FBVyxRQUErQztBQUNoRSxVQUFNLEVBQUUsY0FBYyxLQUFLLGlCQUFp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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
- if (globalThis.app.isMobile) {
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;
@@ -247,4 +248,4 @@ function makeRegExp(paths, defaultRegExp) {
247
248
  PathSettings,
248
249
  pathsValidator
249
250
  });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRoLXNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCB2YWxpZGF0b3JzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUnO1xuXG5pbXBvcnQge1xuICBBTFdBWVNfTUFUQ0hfUkVHX0VYUCxcbiAgZXNjYXBlUmVnRXhwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IHRyaW1FbmQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcblxuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuZW51bSBQYXRoU2V0dGluZ1R5cGUge1xuICBFeGNsdWRlID0gJ0V4Y2x1ZGUnLFxuICBJbmNsdWRlID0gJ0luY2x1ZGUnXG59XG5cbmNsYXNzIFBhdGhTZXR0aW5nIHtcbiAgcHVibGljIGdldCBhcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2FycmF5O1xuICB9XG5cbiAgcHVibGljIHNldCBhcnJheSh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9hcnJheSA9IHZhbHVlLmZpbHRlcihCb29sZWFuKTtcbiAgICB0aGlzLnJlZ0V4cCA9IG1ha2VSZWdFeHAodGhpcy5fYXJyYXksIHRoaXMuZGVmYXVsdFJlZ0V4cCkgPz8gdGhpcy5kZWZhdWx0UmVnRXhwO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFJlZ0V4cDogUmVnRXhwO1xuICBwcml2YXRlIHJlZ0V4cDogUmVnRXhwO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFBhdGhTZXR0aW5nVHlwZSkge1xuICAgIHRoaXMuZGVmYXVsdFJlZ0V4cCA9IGdldERlZmF1bHRSZWdFeHAodHlwZSk7XG4gICAgdGhpcy5yZWdFeHAgPSB0aGlzLmRlZmF1bHRSZWdFeHA7XG4gIH1cblxuICBwdWJsaWMgaXNQYXRoSWdub3JlZChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWxsIGJyYW5jaGVzIGNvdmVyZWQgYnV0IHY4IHJlcG9ydHMgc3dpdGNoIGFzIHBhcnRpYWwuICovXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICBjYXNlIFBhdGhTZXR0aW5nVHlwZS5FeGNsdWRlOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ0V4cC50ZXN0KHBhdGgpO1xuICAgICAgfVxuICAgICAgY2FzZSBQYXRoU2V0dGluZ1R5cGUuSW5jbHVkZToge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVnRXhwLnRlc3QocGF0aCk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgICAgYXNzZXJ0TmV2ZXIodGhpcy50eXBlKTtcbiAgICAgIH1cbiAgICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNsYXNzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhdGhTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBleGNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZXhjbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZXhjbHVkZVBhdGhzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZXhjbHVkZVBhdGhzLmFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBleGNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIHNldCBleGNsdWRlUGF0aHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fZXhjbHVkZVBhdGhzLmFycmF5ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5jbHVkZSBwYXRocy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGluY2x1ZGUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluY2x1ZGVQYXRocygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5hcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5jbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBzZXQgaW5jbHVkZVBhdGhzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2luY2x1ZGVQYXRocy5hcnJheSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZVBhdGhzID0gbmV3IFBhdGhTZXR0aW5nKFBhdGhTZXR0aW5nVHlwZS5FeGNsdWRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5jbHVkZVBhdGhzID0gbmV3IFBhdGhTZXR0aW5nKFBhdGhTZXR0aW5nVHlwZS5JbmNsdWRlKTtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcGF0aCBpcyBpZ25vcmVkIGJ5IHRoZSBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBjaGVjay5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXRoIGlzIGlnbm9yZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgpIHx8IHRoaXMuX2V4Y2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGluY2x1ZGUvZXhjbHVkZSBwYXRoIGVudHJpZXMsIHJlcG9ydGluZyB0aGUgZmlyc3QgZW50cnkgdGhhdCBpcyBub3QgYSBwYXJzZWFibGUgcmVndWxhciBleHByZXNzaW9uLlxuICpcbiAqIEFuIGVudHJ5IHRoYXQgc3RhcnRzIGFuZCBlbmRzIHdpdGggYC9gIGlzIGEgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWw7IGV2ZXJ5IG90aGVyIGVudHJ5IGlzIGEgcGxhaW4gcGF0aCBhbmQgaXNcbiAqIGFsd2F5cyB2YWxpZC4gQW4gaW52YWxpZCBlbnRyeSBkb2VzIG5vdCB0aHJvdyB3aGVuIGFzc2lnbmVkIHRvIHtAbGluayBQYXRoU2V0dGluZ3N9IOKAlCB0aGUgd2hvbGUgbGlzdCBmYWxscyBiYWNrIHRvXG4gKiBpdHMgZGVmYXVsdCBwYXR0ZXJuIGluc3RlYWQg4oCUIHNvIHRoaXMgdmFsaWRhdG9yIGlzIHdoYXQgc3VyZmFjZXMgdGhlIHByb2JsZW0gdG8gdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggZW50cmllcyB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBuYW1pbmcgdGhlIGZpcnN0IGludmFsaWQgZW50cnksIG9yIG5vdGhpbmcgd2hlbiBldmVyeSBlbnRyeSBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhzVmFsaWRhdG9yKHBhdGhzOiBzdHJpbmdbXSk6IE1heWJlUmV0dXJuPHN0cmluZz4ge1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykgJiYgcGF0aC5lbmRzV2l0aCgnLycpICYmICFpc1ZhbGlkUmVnRXhwKHBhdGguc2xpY2UoMSwgLTEpKSkge1xuICAgICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5wYXRoU2V0dGluZ3MuaW52YWxpZFJlZ3VsYXJFeHByZXNzaW9uLCB7IHJlZ0V4cDogcGF0aCB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFJlZ0V4cCh0eXBlOiBQYXRoU2V0dGluZ1R5cGUpOiBSZWdFeHAge1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWxsIGJyYW5jaGVzIGNvdmVyZWQgYnV0IHY4IHJlcG9ydHMgc3dpdGNoIGFzIHBhcnRpYWwuICovXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY2FzZSBQYXRoU2V0dGluZ1R5cGUuRXhjbHVkZToge1xuICAgICAgcmV0dXJuIE5FVkVSX01BVENIX1JFR19FWFA7XG4gICAgfVxuICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkluY2x1ZGU6IHtcbiAgICAgIHJldHVybiBBTFdBWVNfTUFUQ0hfUkVHX0VYUDtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG5mdW5jdGlvbiBtYWtlUmVnRXhwKHBhdGhzOiBzdHJpbmdbXSwgZGVmYXVsdFJlZ0V4cDogUmVnRXhwKTogbnVsbCB8IFJlZ0V4cCB7XG4gIGlmIChwYXRocy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZGVmYXVsdFJlZ0V4cDtcbiAgfVxuXG4gIGNvbnN0IHJlZ0V4cFN0cmluZ0NvbWJpbmVkID0gcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgaWYgKHBhdGggPT09ICcvJykge1xuICAgICAgcmV0dXJuIGRlZmF1bHRSZWdFeHAuc291cmNlO1xuICAgIH1cblxuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSAmJiBwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHJldHVybiBwYXRoLnNsaWNlKDEsIC0xKTtcbiAgICB9XG5cbiAgICBwYXRoID0gdHJpbUVuZCh7XG4gICAgICAkc3RyaW5nOiBwYXRoLFxuICAgICAgc3VmZml4OiAnLydcbiAgICB9KTtcbiAgICByZXR1cm4gYF4ke2VzY2FwZVJlZ0V4cChwYXRoKX0oL3wkKWA7XG4gIH0pXG4gICAgLm1hcCgocmVnRXhwU3RyaW5nKSA9PiBgKCR7cmVnRXhwU3RyaW5nfSlgKVxuICAgIC5qb2luKCd8Jyk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChyZWdFeHBTdHJpbmdDb21iaW5lZCk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIEEgcGFydGlhbGx5IHR5cGVkIHJlZ2V4IGxpdGVyYWwgKGAvXkluYm94XFwvYCkgaXMgbm90IHBhcnNlYWJsZS5cbiAgICAvLyBSZXBvcnQgaXQgaW5zdGVhZCBvZiB0aHJvd2luZyBmcm9tIGEgc2V0dGluZ3Mgc2V0dGVyLCB3aGljaCB3b3VsZCBicmVhayBib3RoIHRoZSBzZXR0aW5ncyBVSSBhbmQgdGhlIHNhdmUgcGF0aC5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFB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
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRoLXNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCB2YWxpZGF0b3JzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUnO1xuXG5pbXBvcnQge1xuICBBTFdBWVNfTUFUQ0hfUkVHX0VYUCxcbiAgZXNjYXBlUmVnRXhwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IHRyaW1FbmQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcblxuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuZW51bSBQYXRoU2V0dGluZ1R5cGUge1xuICBFeGNsdWRlID0gJ0V4Y2x1ZGUnLFxuICBJbmNsdWRlID0gJ0luY2x1ZGUnXG59XG5cbmNsYXNzIFBhdGhTZXR0aW5nIHtcbiAgcHVibGljIGdldCBhcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2FycmF5O1xuICB9XG5cbiAgcHVibGljIHNldCBhcnJheSh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9hcnJheSA9IHZhbHVlLmZpbHRlcihCb29sZWFuKTtcbiAgICB0aGlzLnJlZ0V4cCA9IG1ha2VSZWdFeHAodGhpcy5fYXJyYXksIHRoaXMuZGVmYXVsdFJlZ0V4cCkgPz8gdGhpcy5kZWZhdWx0UmVnRXhwO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFJlZ0V4cDogUmVnRXhwO1xuICBwcml2YXRlIHJlZ0V4cDogUmVnRXhwO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFBhdGhTZXR0aW5nVHlwZSkge1xuICAgIHRoaXMuZGVmYXVsdFJlZ0V4cCA9IGdldERlZmF1bHRSZWdFeHAodHlwZSk7XG4gICAgdGhpcy5yZWdFeHAgPSB0aGlzLmRlZmF1bHRSZWdFeHA7XG4gIH1cblxuICBwdWJsaWMgaXNQYXRoSWdub3JlZChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWxsIGJyYW5jaGVzIGNvdmVyZWQgYnV0IHY4IHJlcG9ydHMgc3dpdGNoIGFzIHBhcnRpYWwuICovXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICBjYXNlIFBhdGhTZXR0aW5nVHlwZS5FeGNsdWRlOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ0V4cC50ZXN0KHBhdGgpO1xuICAgICAgfVxuICAgICAgY2FzZSBQYXRoU2V0dGluZ1R5cGUuSW5jbHVkZToge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVnRXhwLnRlc3QocGF0aCk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgICAgYXNzZXJ0TmV2ZXIodGhpcy50eXBlKTtcbiAgICAgIH1cbiAgICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNsYXNzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhdGhTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBleGNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZXhjbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZXhjbHVkZVBhdGhzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZXhjbHVkZVBhdGhzLmFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBleGNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIHNldCBleGNsdWRlUGF0aHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fZXhjbHVkZVBhdGhzLmFycmF5ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5jbHVkZSBwYXRocy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGluY2x1ZGUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluY2x1ZGVQYXRocygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5hcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5jbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBzZXQgaW5jbHVkZVBhdGhzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2luY2x1ZGVQYXRocy5hcnJheSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZVBhdGhzID0gbmV3IFBhdGhTZXR0aW5nKFBhdGhTZXR0aW5nVHlwZS5FeGNsdWRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5jbHVkZVBhdGhzID0gbmV3IFBhdGhTZXR0aW5nKFBhdGhTZXR0aW5nVHlwZS5JbmNsdWRlKTtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcGF0aCBpcyBpZ25vcmVkIGJ5IHRoZSBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBjaGVjay5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXRoIGlzIGlnbm9yZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgpIHx8IHRoaXMuX2V4Y2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGluY2x1ZGUvZXhjbHVkZSBwYXRoIGVudHJpZXMsIHJlcG9ydGluZyB0aGUgZmlyc3QgZW50cnkgdGhhdCBpcyBub3QgYSBwYXJzZWFibGUgcmVndWxhciBleHByZXNzaW9uLlxuICpcbiAqIEFuIGVudHJ5IHRoYXQgc3RhcnRzIGFuZCBlbmRzIHdpdGggYC9gIGlzIGEgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWw7IGV2ZXJ5IG90aGVyIGVudHJ5IGlzIGEgcGxhaW4gcGF0aCBhbmQgaXNcbiAqIGFsd2F5cyB2YWxpZC4gQW4gaW52YWxpZCBlbnRyeSBkb2VzIG5vdCB0aHJvdyB3aGVuIGFzc2lnbmVkIHRvIHtAbGluayBQYXRoU2V0dGluZ3N9IOKAlCB0aGUgd2hvbGUgbGlzdCBmYWxscyBiYWNrIHRvXG4gKiBpdHMgZGVmYXVsdCBwYXR0ZXJuIGluc3RlYWQg4oCUIHNvIHRoaXMgdmFsaWRhdG9yIGlzIHdoYXQgc3VyZmFjZXMgdGhlIHByb2JsZW0gdG8gdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggZW50cmllcyB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBuYW1pbmcgdGhlIGZpcnN0IGludmFsaWQgZW50cnksIG9yIG5vdGhpbmcgd2hlbiBldmVyeSBlbnRyeSBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhzVmFsaWRhdG9yKHBhdGhzOiBzdHJpbmdbXSk6IE1heWJlUmV0dXJuPHN0cmluZz4ge1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcvJykgJiYgcGF0aC5lbmRzV2l0aCgnLycpICYmICFpc1ZhbGlkUmVnRXhwKHBhdGguc2xpY2UoMSwgLTEpKSkge1xuICAgICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5wYXRoU2V0dGluZ3MuaW52YWxpZFJlZ3VsYXJFeHByZXNzaW9uLCB7IHJlZ0V4cDogcGF0aCB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFJlZ0V4cCh0eXBlOiBQYXRoU2V0dGluZ1R5cGUpOiBSZWdFeHAge1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWxsIGJyYW5jaGVzIGNvdmVyZWQgYnV0IHY4IHJlcG9ydHMgc3dpdGNoIGFzIHBhcnRpYWwuICovXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY2FzZSBQYXRoU2V0dGluZ1R5cGUuRXhjbHVkZToge1xuICAgICAgcmV0dXJuIE5FVkVSX01BVENIX1JFR19FWFA7XG4gICAgfVxuICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkluY2x1ZGU6IHtcbiAgICAgIHJldHVybiBBTFdBWVNfTUFUQ0hfUkVHX0VYUDtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG5mdW5jdGlvbiBtYWtlUmVnRXhwKHBhdGhzOiBzdHJpbmdbXSwgZGVmYXVsdFJlZ0V4cDogUmVnRXhwKTogbnVsbCB8IFJlZ0V4cCB7XG4gIGlmIChwYXRocy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZGVmYXVsdFJlZ0V4cDtcbiAgfVxuXG4gIGNvbnN0IHJlZ0V4cFN0cmluZ0NvbWJpbmVkID0gcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgaWYgKHBhdGggPT09ICcvJykge1xuICAgICAgcmV0dXJuIGRlZmF1bHRSZWdFeHAuc291cmNlO1xuICAgIH1cblxuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSAmJiBwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHJldHVybiBwYXRoLnNsaWNlKDEsIC0xKTtcbiAgICB9XG5cbiAgICBwYXRoID0gdHJpbUVuZCh7XG4gICAgICAkc3RyaW5nOiBwYXRoLFxuICAgICAgc3VmZml4OiAnLydcbiAgICB9KTtcbiAgICByZXR1cm4gYF4ke2VzY2FwZVJlZ0V4cChwYXRoKX0oL3wkKWA7XG4gIH0pXG4gICAgLm1hcCgocmVnRXhwU3RyaW5nKSA9PiBgKCR7cmVnRXhwU3RyaW5nfSlgKVxuICAgIC5qb2luKCd8Jyk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChyZWdFeHBTdHJpbmdDb21iaW5lZCk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIEEgcGFydGlhbGx5IHR5cGVkIHJlZ2V4IGxpdGVyYWwgKGAvXkluYm94XFwvYCkgaXMgbm90IHBhcnNlYWJsZS5cbiAgICAvLyBSZXBvcnQgaXQgaW5zdGVhZCBvZiB0aHJvd2luZyBmcm9tIGEgc2V0dGluZ3Mgc2V0dGVyLCB3aGljaCB3b3VsZCBicmVhayBib3RoIHRoZSBzZXR0aW5ncyBVSSBhbmQgdGhlIHNhdmUgcGF0aC5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FB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