obsidian-dev-utils 55.4.1 → 56.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/lib/cjs/abort-controller.cjs +6 -4
  3. package/dist/lib/cjs/array.cjs +5 -3
  4. package/dist/lib/cjs/async-events.cjs +7 -5
  5. package/dist/lib/cjs/async.cjs +6 -4
  6. package/dist/lib/cjs/blob.cjs +6 -4
  7. package/dist/lib/cjs/codemirror/index.cjs +5 -3
  8. package/dist/lib/cjs/codemirror/state-field-spec.cjs +5 -3
  9. package/dist/lib/cjs/css-class.cjs +5 -3
  10. package/dist/lib/cjs/debug-controller.cjs +5 -3
  11. package/dist/lib/cjs/debug.cjs +5 -3
  12. package/dist/lib/cjs/enum.cjs +5 -3
  13. package/dist/lib/cjs/error.cjs +5 -3
  14. package/dist/lib/cjs/function.cjs +5 -3
  15. package/dist/lib/cjs/html-element.cjs +18 -16
  16. package/dist/lib/cjs/index.cjs +5 -3
  17. package/dist/lib/cjs/library.cjs +6 -4
  18. package/dist/lib/cjs/object-utils.cjs +5 -3
  19. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +3 -3
  20. package/dist/lib/cjs/obsidian/app.cjs +5 -3
  21. package/dist/lib/cjs/obsidian/async-with-notice.cjs +8 -6
  22. package/dist/lib/cjs/obsidian/attachment-path.cjs +5 -3
  23. package/dist/lib/cjs/obsidian/backlink.cjs +5 -3
  24. package/dist/lib/cjs/obsidian/callout.cjs +5 -3
  25. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +5 -3
  26. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +355 -0
  27. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +178 -0
  28. package/dist/lib/cjs/obsidian/{commands/index.cjs → command-handlers/app-active-file-provider.cjs} +29 -34
  29. package/dist/lib/cjs/obsidian/command-handlers/app-active-file-provider.d.cts +25 -0
  30. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +173 -0
  31. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +41 -0
  32. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +164 -0
  33. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +26 -0
  34. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +174 -0
  35. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +143 -0
  36. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +269 -0
  37. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +114 -0
  38. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +261 -0
  39. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +112 -0
  40. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +261 -0
  41. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +112 -0
  42. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +177 -0
  43. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +38 -0
  44. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +170 -0
  45. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +9 -0
  46. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +6 -4
  47. package/dist/lib/cjs/obsidian/components/async-component.cjs +164 -0
  48. package/dist/lib/cjs/obsidian/components/async-component.d.cts +28 -0
  49. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +5 -3
  50. package/dist/lib/cjs/obsidian/components/index.cjs +8 -3
  51. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  52. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +5 -3
  53. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +5 -3
  54. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +5 -3
  55. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +5 -3
  56. package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +5 -3
  57. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +5 -3
  58. package/dist/lib/cjs/obsidian/components/setting-components/index.cjs +5 -3
  59. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +5 -3
  60. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +5 -3
  61. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +5 -3
  62. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +5 -3
  63. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +5 -3
  64. package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +5 -3
  65. package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +5 -3
  66. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +5 -3
  67. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +5 -3
  68. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +5 -3
  69. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +5 -3
  70. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +5 -3
  71. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +5 -3
  72. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +5 -3
  73. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +5 -3
  74. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +5 -3
  75. package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +5 -3
  76. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +7 -5
  77. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +5 -3
  78. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +5 -3
  79. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +5 -3
  80. package/dist/lib/cjs/obsidian/constructors/index.cjs +5 -3
  81. package/dist/lib/cjs/obsidian/dataview-link.cjs +5 -3
  82. package/dist/lib/cjs/obsidian/dataview.cjs +6 -4
  83. package/dist/lib/cjs/obsidian/editor.cjs +5 -3
  84. package/dist/lib/cjs/obsidian/file-change.cjs +5 -3
  85. package/dist/lib/cjs/obsidian/file-manager.cjs +5 -3
  86. package/dist/lib/cjs/obsidian/file-system.cjs +5 -3
  87. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +5 -3
  88. package/dist/lib/cjs/obsidian/frontmatter.cjs +5 -3
  89. package/dist/lib/cjs/obsidian/i18n/{custom-type-options-base.cjs → custom-type-options.cjs} +7 -5
  90. package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +37 -0
  91. package/dist/lib/cjs/obsidian/{plugin/plugin-settings-wrapper.cjs → i18n/default-translations.cjs} +8 -5
  92. package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +14 -0
  93. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -3
  94. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +2 -13
  95. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -9
  96. package/dist/lib/cjs/obsidian/i18n/index.d.cts +2 -2
  97. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +5 -3
  98. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +5 -3
  99. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +5 -3
  100. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -2
  101. package/dist/lib/cjs/obsidian/index.cjs +8 -6
  102. package/dist/lib/cjs/obsidian/index.d.cts +1 -1
  103. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +5 -3
  104. package/dist/lib/cjs/obsidian/link.cjs +5 -3
  105. package/dist/lib/cjs/obsidian/logger.cjs +5 -3
  106. package/dist/lib/cjs/obsidian/loop.cjs +5 -3
  107. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -3
  108. package/dist/lib/cjs/obsidian/markdown-view.cjs +5 -3
  109. package/dist/lib/cjs/obsidian/markdown.cjs +5 -3
  110. package/dist/lib/cjs/obsidian/metadata-cache.cjs +5 -3
  111. package/dist/lib/cjs/obsidian/modals/alert.cjs +8 -6
  112. package/dist/lib/cjs/obsidian/modals/confirm.cjs +8 -6
  113. package/dist/lib/cjs/obsidian/modals/index.cjs +8 -6
  114. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -1
  115. package/dist/lib/cjs/obsidian/modals/{modal-base.cjs → modal.cjs} +8 -6
  116. package/dist/lib/cjs/obsidian/modals/prompt.cjs +8 -6
  117. package/dist/lib/cjs/obsidian/modals/select-item.cjs +7 -5
  118. package/dist/lib/cjs/obsidian/monkey-around.cjs +5 -3
  119. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +5 -3
  120. package/dist/lib/cjs/obsidian/pdf.cjs +8 -6
  121. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +162 -0
  122. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.d.cts +27 -0
  123. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +165 -0
  124. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.d.cts +29 -0
  125. package/dist/lib/cjs/obsidian/{commands/non-editor-command-base.cjs → plugin/components/console-debug-component.cjs} +26 -20
  126. package/dist/lib/cjs/obsidian/plugin/components/console-debug-component.d.cts +29 -0
  127. package/dist/lib/cjs/obsidian/{i18n/default-translations-base.cjs → plugin/components/i18n-component.cjs} +39 -6
  128. package/dist/lib/cjs/obsidian/plugin/components/i18n-component.d.cts +23 -0
  129. package/dist/lib/cjs/obsidian/plugin/components/index.cjs +170 -0
  130. package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +9 -0
  131. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +207 -0
  132. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +59 -0
  133. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +162 -0
  134. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.d.cts +25 -0
  135. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.cjs +161 -0
  136. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.d.cts +25 -0
  137. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +566 -0
  138. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +302 -0
  139. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +166 -0
  140. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.d.cts +28 -0
  141. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -18
  142. package/dist/lib/cjs/obsidian/plugin/index.d.cts +2 -5
  143. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +5 -3
  144. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +5 -3
  145. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +16 -7
  146. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +3 -2
  147. package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +5 -3
  148. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +412 -0
  149. package/dist/lib/cjs/obsidian/plugin/{plugin-settings-tab-base.d.cts → plugin-settings-tab.d.cts} +29 -11
  150. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +135 -3
  151. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +106 -5
  152. package/dist/lib/cjs/obsidian/queue.cjs +5 -3
  153. package/dist/lib/cjs/obsidian/react/app-context.cjs +5 -3
  154. package/dist/lib/cjs/obsidian/react/index.cjs +5 -3
  155. package/dist/lib/cjs/obsidian/reference.cjs +5 -3
  156. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +5 -3
  157. package/dist/lib/cjs/obsidian/resource-url.cjs +5 -3
  158. package/dist/lib/cjs/obsidian/setting-ex.cjs +5 -3
  159. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +5 -3
  160. package/dist/lib/cjs/obsidian/validation.cjs +5 -3
  161. package/dist/lib/cjs/obsidian/vault-delete.cjs +5 -3
  162. package/dist/lib/cjs/obsidian/vault.cjs +5 -3
  163. package/dist/lib/cjs/obsidian/workspace.cjs +5 -3
  164. package/dist/lib/cjs/path.cjs +5 -3
  165. package/dist/lib/cjs/reg-exp.cjs +5 -3
  166. package/dist/lib/cjs/script-utils/build.cjs +5 -3
  167. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +5 -3
  168. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +5 -3
  169. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +5 -3
  170. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +6 -4
  171. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +5 -3
  172. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -3
  173. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +5 -3
  174. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +5 -3
  175. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +8 -6
  176. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -3
  177. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +5 -3
  178. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +5 -3
  179. package/dist/lib/cjs/script-utils/bundlers/index.cjs +5 -3
  180. package/dist/lib/cjs/script-utils/cli-utils.cjs +5 -3
  181. package/dist/lib/cjs/script-utils/code-generator.cjs +5 -3
  182. package/dist/lib/cjs/script-utils/commitlint-config.cjs +5 -3
  183. package/dist/lib/cjs/script-utils/exec.cjs +5 -3
  184. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +6 -4
  185. package/dist/lib/cjs/script-utils/formatters/index.cjs +5 -3
  186. package/dist/lib/cjs/script-utils/fs.cjs +5 -3
  187. package/dist/lib/cjs/script-utils/index.cjs +5 -3
  188. package/dist/lib/cjs/script-utils/json.cjs +5 -3
  189. package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
  190. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +6 -4
  191. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +5 -3
  192. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +5 -3
  193. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +5 -3
  194. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
  195. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +5 -3
  196. package/dist/lib/cjs/script-utils/linters/eslint.cjs +6 -4
  197. package/dist/lib/cjs/script-utils/linters/index.cjs +5 -3
  198. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +5 -3
  199. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +9 -5
  200. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +5 -3
  201. package/dist/lib/cjs/script-utils/npm-publish.cjs +5 -3
  202. package/dist/lib/cjs/script-utils/npm-run.cjs +5 -3
  203. package/dist/lib/cjs/script-utils/npm.cjs +5 -3
  204. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -3
  205. package/dist/lib/cjs/script-utils/root.cjs +5 -3
  206. package/dist/lib/cjs/script-utils/test-runners/index.cjs +5 -3
  207. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +5 -3
  208. package/dist/lib/cjs/script-utils/version.cjs +5 -3
  209. package/dist/lib/cjs/strict-proxy.cjs +5 -3
  210. package/dist/lib/cjs/string.cjs +5 -3
  211. package/dist/lib/cjs/transformers/date-transformer.cjs +5 -3
  212. package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -3
  213. package/dist/lib/cjs/transformers/group-transformer.cjs +5 -3
  214. package/dist/lib/cjs/transformers/index.cjs +5 -3
  215. package/dist/lib/cjs/transformers/map-transformer.cjs +5 -3
  216. package/dist/lib/cjs/transformers/set-transformer.cjs +5 -3
  217. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +5 -3
  218. package/dist/lib/cjs/transformers/transformer.cjs +5 -3
  219. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +5 -3
  220. package/dist/lib/cjs/transformers/typed-transformer.cjs +5 -3
  221. package/dist/lib/cjs/two-way-map.cjs +5 -3
  222. package/dist/lib/cjs/type-guards.cjs +5 -3
  223. package/dist/lib/cjs/type.cjs +5 -3
  224. package/dist/lib/cjs/url.cjs +5 -3
  225. package/dist/lib/cjs/value-provider.cjs +5 -3
  226. package/dist/lib/esm/abort-controller.mjs +4 -2
  227. package/dist/lib/esm/array.mjs +3 -1
  228. package/dist/lib/esm/async-events.mjs +5 -3
  229. package/dist/lib/esm/async.mjs +4 -2
  230. package/dist/lib/esm/blob.mjs +4 -2
  231. package/dist/lib/esm/codemirror/index.mjs +3 -1
  232. package/dist/lib/esm/codemirror/state-field-spec.mjs +2 -0
  233. package/dist/lib/esm/css-class.mjs +3 -1
  234. package/dist/lib/esm/debug-controller.mjs +2 -0
  235. package/dist/lib/esm/debug.mjs +3 -1
  236. package/dist/lib/esm/enum.mjs +3 -1
  237. package/dist/lib/esm/error.mjs +3 -1
  238. package/dist/lib/esm/function.mjs +3 -1
  239. package/dist/lib/esm/html-element.mjs +16 -14
  240. package/dist/lib/esm/index.mjs +3 -1
  241. package/dist/lib/esm/library.mjs +4 -2
  242. package/dist/lib/esm/object-utils.mjs +3 -1
  243. package/dist/lib/esm/obsidian/@types/i18next.d.mts +3 -3
  244. package/dist/lib/esm/obsidian/app.mjs +3 -1
  245. package/dist/lib/esm/obsidian/async-with-notice.mjs +6 -4
  246. package/dist/lib/esm/obsidian/attachment-path.mjs +3 -1
  247. package/dist/lib/esm/obsidian/backlink.mjs +3 -1
  248. package/dist/lib/esm/obsidian/callout.mjs +3 -1
  249. package/dist/lib/esm/obsidian/code-block-markdown-information.mjs +2 -0
  250. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +178 -0
  251. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +247 -0
  252. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.d.mts +25 -0
  253. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +46 -0
  254. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +41 -0
  255. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +65 -0
  256. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +26 -0
  257. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +56 -0
  258. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +143 -0
  259. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +66 -0
  260. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +114 -0
  261. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +161 -0
  262. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +112 -0
  263. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +157 -0
  264. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +112 -0
  265. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +157 -0
  266. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +38 -0
  267. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +69 -0
  268. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +9 -0
  269. package/dist/lib/esm/obsidian/command-handlers/index.mjs +44 -0
  270. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +4 -2
  271. package/dist/lib/esm/obsidian/components/async-component.d.mts +28 -0
  272. package/dist/lib/esm/obsidian/components/async-component.mjs +56 -0
  273. package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -1
  274. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  275. package/dist/lib/esm/obsidian/components/index.mjs +5 -1
  276. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +3 -1
  277. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +3 -1
  278. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +3 -1
  279. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +3 -1
  280. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +3 -1
  281. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
  282. package/dist/lib/esm/obsidian/components/setting-components/index.mjs +3 -1
  283. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +3 -1
  284. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +3 -1
  285. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +3 -1
  286. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
  287. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +3 -1
  288. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +3 -1
  289. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +3 -1
  290. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +3 -1
  291. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +3 -1
  292. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +3 -1
  293. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +3 -1
  294. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +3 -1
  295. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +3 -1
  296. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +3 -1
  297. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +3 -1
  298. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +3 -1
  299. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +3 -1
  300. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +5 -3
  301. package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.mjs +2 -0
  302. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +3 -1
  303. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +3 -1
  304. package/dist/lib/esm/obsidian/constructors/index.mjs +3 -1
  305. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -1
  306. package/dist/lib/esm/obsidian/dataview.mjs +4 -2
  307. package/dist/lib/esm/obsidian/editor.mjs +3 -1
  308. package/dist/lib/esm/obsidian/file-change.mjs +3 -1
  309. package/dist/lib/esm/obsidian/file-manager.mjs +3 -1
  310. package/dist/lib/esm/obsidian/file-system.mjs +3 -1
  311. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +3 -1
  312. package/dist/lib/esm/obsidian/frontmatter.mjs +3 -1
  313. package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +37 -0
  314. package/dist/lib/esm/obsidian/i18n/custom-type-options.mjs +25 -0
  315. package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +14 -0
  316. package/dist/lib/esm/obsidian/i18n/default-translations.mjs +25 -0
  317. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +2 -13
  318. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -1
  319. package/dist/lib/esm/obsidian/i18n/index.d.mts +2 -2
  320. package/dist/lib/esm/obsidian/i18n/index.mjs +7 -5
  321. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  322. package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -1
  323. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -2
  324. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +3 -1
  325. package/dist/lib/esm/obsidian/index.d.mts +1 -1
  326. package/dist/lib/esm/obsidian/index.mjs +5 -3
  327. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +3 -1
  328. package/dist/lib/esm/obsidian/link.mjs +3 -1
  329. package/dist/lib/esm/obsidian/logger.mjs +3 -1
  330. package/dist/lib/esm/obsidian/loop.mjs +3 -1
  331. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +3 -1
  332. package/dist/lib/esm/obsidian/markdown-view.mjs +3 -1
  333. package/dist/lib/esm/obsidian/markdown.mjs +3 -1
  334. package/dist/lib/esm/obsidian/metadata-cache.mjs +3 -1
  335. package/dist/lib/esm/obsidian/modals/alert.mjs +4 -2
  336. package/dist/lib/esm/obsidian/modals/confirm.mjs +4 -2
  337. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -1
  338. package/dist/lib/esm/obsidian/modals/index.mjs +5 -3
  339. package/dist/lib/esm/obsidian/modals/modal.mjs +54 -0
  340. package/dist/lib/esm/obsidian/modals/prompt.mjs +4 -2
  341. package/dist/lib/esm/obsidian/modals/select-item.mjs +4 -2
  342. package/dist/lib/esm/obsidian/monkey-around.mjs +3 -1
  343. package/dist/lib/esm/obsidian/obsidian-settings.mjs +3 -1
  344. package/dist/lib/esm/obsidian/pdf.mjs +6 -4
  345. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.d.mts +27 -0
  346. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +54 -0
  347. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.d.mts +29 -0
  348. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +57 -0
  349. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.d.mts +29 -0
  350. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +52 -0
  351. package/dist/lib/esm/obsidian/plugin/components/i18n-component.d.mts +23 -0
  352. package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +48 -0
  353. package/dist/lib/esm/obsidian/plugin/components/index.d.mts +9 -0
  354. package/dist/lib/esm/obsidian/plugin/components/index.mjs +44 -0
  355. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +59 -0
  356. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +102 -0
  357. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.d.mts +25 -0
  358. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +57 -0
  359. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.d.mts +25 -0
  360. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +56 -0
  361. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +302 -0
  362. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +463 -0
  363. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.d.mts +28 -0
  364. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +58 -0
  365. package/dist/lib/esm/obsidian/plugin/index.d.mts +2 -5
  366. package/dist/lib/esm/obsidian/plugin/index.mjs +7 -11
  367. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +3 -1
  368. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +3 -1
  369. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +3 -2
  370. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +14 -5
  371. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +3 -1
  372. package/dist/lib/esm/obsidian/plugin/{plugin-settings-tab-base.d.mts → plugin-settings-tab.d.mts} +29 -11
  373. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +313 -0
  374. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +106 -5
  375. package/dist/lib/esm/obsidian/plugin/plugin.mjs +140 -2
  376. package/dist/lib/esm/obsidian/queue.mjs +3 -1
  377. package/dist/lib/esm/obsidian/react/app-context.mjs +3 -1
  378. package/dist/lib/esm/obsidian/react/index.mjs +3 -1
  379. package/dist/lib/esm/obsidian/reference.mjs +3 -1
  380. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +3 -1
  381. package/dist/lib/esm/obsidian/resource-url.mjs +3 -1
  382. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
  383. package/dist/lib/esm/obsidian/setting-group-ex.mjs +3 -1
  384. package/dist/lib/esm/obsidian/validation.mjs +3 -1
  385. package/dist/lib/esm/obsidian/vault-delete.mjs +3 -1
  386. package/dist/lib/esm/obsidian/vault.mjs +3 -1
  387. package/dist/lib/esm/obsidian/workspace.mjs +3 -1
  388. package/dist/lib/esm/path.mjs +3 -1
  389. package/dist/lib/esm/reg-exp.mjs +3 -1
  390. package/dist/lib/esm/script-utils/build.mjs +3 -1
  391. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -1
  392. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +3 -1
  393. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +3 -1
  394. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +3 -1
  395. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -1
  396. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +3 -1
  397. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +3 -1
  398. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +3 -1
  399. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -3
  400. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +3 -1
  401. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +3 -1
  402. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +3 -1
  403. package/dist/lib/esm/script-utils/bundlers/index.mjs +3 -1
  404. package/dist/lib/esm/script-utils/cli-utils.mjs +3 -1
  405. package/dist/lib/esm/script-utils/code-generator.mjs +3 -1
  406. package/dist/lib/esm/script-utils/commitlint-config.mjs +3 -1
  407. package/dist/lib/esm/script-utils/exec.mjs +3 -1
  408. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -1
  409. package/dist/lib/esm/script-utils/formatters/index.mjs +3 -1
  410. package/dist/lib/esm/script-utils/fs.mjs +3 -1
  411. package/dist/lib/esm/script-utils/index.mjs +3 -1
  412. package/dist/lib/esm/script-utils/json.mjs +3 -1
  413. package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -1
  414. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +4 -2
  415. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  416. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +3 -1
  417. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +3 -1
  418. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
  419. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +3 -1
  420. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -1
  421. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  422. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +3 -1
  423. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +6 -2
  424. package/dist/lib/esm/script-utils/nano-staged-config.mjs +3 -1
  425. package/dist/lib/esm/script-utils/npm-publish.mjs +3 -1
  426. package/dist/lib/esm/script-utils/npm-run.mjs +3 -1
  427. package/dist/lib/esm/script-utils/npm.mjs +3 -1
  428. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
  429. package/dist/lib/esm/script-utils/root.mjs +3 -1
  430. package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
  431. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +3 -1
  432. package/dist/lib/esm/script-utils/version.mjs +3 -1
  433. package/dist/lib/esm/strict-proxy.mjs +3 -1
  434. package/dist/lib/esm/string.mjs +3 -1
  435. package/dist/lib/esm/transformers/date-transformer.mjs +3 -1
  436. package/dist/lib/esm/transformers/duration-transformer.mjs +3 -1
  437. package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
  438. package/dist/lib/esm/transformers/index.mjs +3 -1
  439. package/dist/lib/esm/transformers/map-transformer.mjs +3 -1
  440. package/dist/lib/esm/transformers/set-transformer.mjs +3 -1
  441. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +3 -1
  442. package/dist/lib/esm/transformers/transformer.mjs +3 -1
  443. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +3 -1
  444. package/dist/lib/esm/transformers/typed-transformer.mjs +3 -1
  445. package/dist/lib/esm/two-way-map.mjs +3 -1
  446. package/dist/lib/esm/type-guards.mjs +3 -1
  447. package/dist/lib/esm/type.mjs +3 -1
  448. package/dist/lib/esm/url.mjs +3 -1
  449. package/dist/lib/esm/value-provider.mjs +3 -1
  450. package/obsidian/Components/async-component/package.json +6 -0
  451. package/obsidian/Modals/modal/package.json +6 -0
  452. package/obsidian/Plugin/components/abort-signal-component/package.json +6 -0
  453. package/obsidian/Plugin/components/async-error-handler-component/package.json +6 -0
  454. package/obsidian/Plugin/components/console-debug-component/package.json +6 -0
  455. package/obsidian/Plugin/components/i18n-component/package.json +6 -0
  456. package/obsidian/Plugin/components/index/package.json +6 -0
  457. package/obsidian/Plugin/components/lifecycle-events-component/package.json +6 -0
  458. package/obsidian/Plugin/components/package.json +6 -0
  459. package/obsidian/Plugin/components/plugin-context-component/package.json +6 -0
  460. package/obsidian/Plugin/components/plugin-notice-component/package.json +6 -0
  461. package/obsidian/Plugin/components/plugin-settings-component/package.json +6 -0
  462. package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +6 -0
  463. package/obsidian/Plugin/{plugin-settings-wrapper → plugin-settings-tab}/package.json +3 -3
  464. package/obsidian/command-handlers/abstract-file-command-handler/package.json +6 -0
  465. package/obsidian/command-handlers/app-active-file-provider/package.json +6 -0
  466. package/obsidian/command-handlers/app-menu-event-registrar/package.json +6 -0
  467. package/obsidian/command-handlers/command-handler/package.json +6 -0
  468. package/obsidian/command-handlers/command-handler-component/package.json +6 -0
  469. package/obsidian/command-handlers/editor-command-handler/package.json +6 -0
  470. package/obsidian/command-handlers/file-command-handler/package.json +6 -0
  471. package/obsidian/command-handlers/folder-command-handler/package.json +6 -0
  472. package/obsidian/command-handlers/global-command-handler/package.json +6 -0
  473. package/obsidian/command-handlers/index/package.json +6 -0
  474. package/obsidian/command-handlers/package.json +6 -0
  475. package/obsidian/i18n/{custom-type-options-base → custom-type-options}/package.json +3 -3
  476. package/obsidian/i18n/{default-translations-base → default-translations}/package.json +3 -3
  477. package/package.json +33 -12
  478. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +0 -441
  479. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +0 -264
  480. package/dist/lib/cjs/obsidian/commands/command-base.cjs +0 -255
  481. package/dist/lib/cjs/obsidian/commands/command-base.d.cts +0 -125
  482. package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +0 -282
  483. package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +0 -139
  484. package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +0 -343
  485. package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +0 -191
  486. package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +0 -335
  487. package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +0 -184
  488. package/dist/lib/cjs/obsidian/commands/index.d.cts +0 -6
  489. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +0 -34
  490. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +0 -37
  491. package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +0 -25
  492. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +0 -409
  493. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -176
  494. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +0 -486
  495. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +0 -186
  496. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +0 -401
  497. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +0 -25
  498. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +0 -122
  499. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +0 -87
  500. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +0 -264
  501. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +0 -329
  502. package/dist/lib/esm/obsidian/commands/command-base.d.mts +0 -125
  503. package/dist/lib/esm/obsidian/commands/command-base.mjs +0 -146
  504. package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +0 -139
  505. package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +0 -176
  506. package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +0 -191
  507. package/dist/lib/esm/obsidian/commands/file-command-base.mjs +0 -240
  508. package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +0 -184
  509. package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +0 -232
  510. package/dist/lib/esm/obsidian/commands/index.d.mts +0 -6
  511. package/dist/lib/esm/obsidian/commands/index.mjs +0 -36
  512. package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +0 -34
  513. package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +0 -46
  514. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +0 -37
  515. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +0 -23
  516. package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +0 -25
  517. package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +0 -23
  518. package/dist/lib/esm/obsidian/modals/modal-base.mjs +0 -52
  519. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -176
  520. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +0 -317
  521. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +0 -186
  522. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +0 -385
  523. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +0 -302
  524. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +0 -25
  525. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.mjs +0 -22
  526. package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +0 -87
  527. package/dist/lib/esm/obsidian/plugin/plugin-types-base.mjs +0 -22
  528. package/obsidian/Commands/abstract-file-command-base/package.json +0 -6
  529. package/obsidian/Commands/command-base/package.json +0 -6
  530. package/obsidian/Commands/editor-command-base/package.json +0 -6
  531. package/obsidian/Commands/file-command-base/package.json +0 -6
  532. package/obsidian/Commands/folder-command-base/package.json +0 -6
  533. package/obsidian/Commands/index/package.json +0 -6
  534. package/obsidian/Commands/non-editor-command-base/package.json +0 -6
  535. package/obsidian/Commands/package.json +0 -6
  536. package/obsidian/Modals/modal-base/package.json +0 -6
  537. package/obsidian/Plugin/plugin-base/package.json +0 -6
  538. package/obsidian/Plugin/plugin-settings-manager-base/package.json +0 -6
  539. package/obsidian/Plugin/plugin-settings-tab-base/package.json +0 -6
  540. package/obsidian/Plugin/plugin-types-base/package.json +0 -6
  541. /package/dist/lib/cjs/obsidian/modals/{modal-base.d.cts → modal.d.cts} +0 -0
  542. /package/dist/lib/esm/obsidian/modals/{modal-base.d.mts → modal.d.mts} +0 -0
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -438,4 +440,4 @@ export {
438
440
  saveNote,
439
441
  trashSafe
440
442
  };
441
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3ZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgT2JzaWRpYW4gVmF1bHQuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEV2ZW50UmVmLFxuICBMaXN0ZWRGaWxlc1xufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIE1hcmtkb3duVmlldyxcbiAgVEFic3RyYWN0RmlsZSxcbiAgVEZpbGUsXG4gIFRGb2xkZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgZ2V0RGF0YUFkYXB0ZXJFeCxcbiAgcGFyZW50Rm9sZGVyUGF0aCxcbiAgVmlld1R5cGVcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgUGF0aE9yQWJzdHJhY3RGaWxlLFxuICBQYXRoT3JGaWxlLFxuICBQYXRoT3JGb2xkZXJcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbmltcG9ydCB7IGFib3J0U2lnbmFsQW55IH0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgcmV0cnlXaXRoVGltZW91dE5vdGljZSB9IGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuaW1wb3J0IHtcbiAgbG9ja0VkaXRvcixcbiAgdW5sb2NrRWRpdG9yXG59IGZyb20gJy4vZWRpdG9yLnRzJztcbmltcG9ydCB7XG4gIGFzRmlsZSxcbiAgYXNGb2xkZXIsXG4gIEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRBYnN0cmFjdEZpbGUsXG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZVN5c3RlbVR5cGUsXG4gIGdldEZvbGRlcixcbiAgZ2V0Rm9sZGVyT3JOdWxsLFxuICBnZXRQYXRoLFxuICBpc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGVcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3Ige0BsaW5rIHByb2Nlc3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRBcmdzIHtcbiAgcmVhZG9ubHkgY29udGVudDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9jZXNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzT3B0aW9ucyBleHRlbmRzIFJldHJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZhaWwgaWYgdGhlIGZpbGUgaXMgbWlzc2luZyBvciBkZWxldGVkLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZhaWxPbk1pc3NpbmdGaWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBsb2NrIHRoZSBlZGl0b3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgZmlsZS4gQXBwbGljYWJsZSBvbmx5IGZvciBtYXJrZG93biBmaWxlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRMb2NrRWRpdG9yV2hpbGVQcm9jZXNzaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvcGllcyBhIGZpbGUgc2FmZWx5IGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIG9sZFBhdGhPckZpbGUgLSBUaGUgb2xkIHBhdGggb3IgZmlsZSB0byBjb3B5LlxuICogQHBhcmFtIG5ld1BhdGggLSBUaGUgbmV3IHBhdGggdG8gY29weSB0aGUgZmlsZSB0by5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBwYXRoIG9mIHRoZSBjb3BpZWQgZmlsZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlTYWZlKGFwcDogQXBwLCBvbGRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIG9sZFBhdGhPckZpbGUpO1xuXG4gIGlmIChmaWxlLnBhdGggPT09IG5ld1BhdGgpIHtcbiAgICByZXR1cm4gbmV3UGF0aDtcbiAgfVxuXG4gIGNvbnN0IG5ld0ZvbGRlclBhdGggPSBwYXJlbnRGb2xkZXJQYXRoKG5ld1BhdGgpO1xuICBhd2FpdCBjcmVhdGVGb2xkZXJTYWZlKGFwcCwgbmV3Rm9sZGVyUGF0aCk7XG5cbiAgY29uc3QgbmV3QXZhaWxhYmxlUGF0aCA9IGdldEF2YWlsYWJsZVBhdGgoYXBwLCBuZXdQYXRoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGFwcC52YXVsdC5jb3B5KGZpbGUsIG5ld0F2YWlsYWJsZVBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFhd2FpdCBhcHAudmF1bHQuZXhpc3RzKG5ld0F2YWlsYWJsZVBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmb2xkZXIgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIGNyZWF0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZm9sZGVyIHdhcyBjcmVhdGVkLlxuICogQHRocm93cyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgY3JlYXRpbmcgdGhlIGZvbGRlciBhbmQgaXQgc3RpbGwgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZvbGRlclNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAoYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFhd2FpdCBhcHAudmF1bHQuZXhpc3RzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0ZW1wb3JhcnkgZmlsZSBpbiB0aGUgdmF1bHQgd2l0aCBwYXJlbnQgZm9sZGVycyBpZiBuZWVkZWQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gY3JlYXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBkZWxldGUgdGhlIHRlbXBvcmFyeSBmaWxlIGFuZCBhbGwgaXRzIGNyZWF0ZWQgcGFyZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlbXBGaWxlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPCgpID0+IFByb21pc2U8dm9pZD4+IHtcbiAgbGV0IGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gIGlmIChmaWxlKSB7XG4gICAgcmV0dXJuIG5vb3BBc3luYztcbiAgfVxuXG4gIGNvbnN0IGZvbGRlckNsZWFudXAgPSBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhwYXRoKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlLmRlbGV0ZWQpIHtcbiAgICAgIGF3YWl0IHRyYXNoU2FmZShhcHAsIGZpbGUpO1xuICAgIH1cbiAgICBhd2FpdCBmb2xkZXJDbGVhbnVwKCk7XG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRlbXBvcmFyeSBmb2xkZXIgaW4gdGhlIHZhdWx0IHdpdGggcGFyZW50IGZvbGRlcnMgaWYgbmVlZGVkLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgdG8gY3JlYXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBkZWxldGUgdGhlIHRlbXBvcmFyeSBmb2xkZXIgYW5kIGFsbCBpdHMgY3JlYXRlZCBwYXJlbnRzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVtcEZvbGRlcihhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTwoKSA9PiBQcm9taXNlPHZvaWQ+PiB7XG4gIGxldCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoKTtcbiAgaWYgKGZvbGRlcikge1xuICAgIHJldHVybiBub29wQXN5bmM7XG4gIH1cblxuICBjb25zdCBmb2xkZXJQYXRoID0gcGFyZW50Rm9sZGVyUGF0aChwYXRoKTtcbiAgYXdhaXQgY3JlYXRlVGVtcEZvbGRlcihhcHAsIGZvbGRlclBhdGgpO1xuXG4gIGNvbnN0IGZvbGRlckNsZWFudXAgPSBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG5cbiAgYXdhaXQgY3JlYXRlRm9sZGVyU2FmZShhcHAsIHBhdGgpO1xuXG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgZm9sZGVyID0gZ2V0Rm9sZGVyKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmb2xkZXIuZGVsZXRlZCkge1xuICAgICAgYXdhaXQgdHJhc2hTYWZlKGFwcCwgZm9sZGVyKTtcbiAgICB9XG4gICAgYXdhaXQgZm9sZGVyQ2xlYW51cCgpO1xuICB9O1xufVxuXG4vKipcbiAqIERlbGV0ZXMgYW4gZW1wdHkgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIGZvbGRlciB0byBkZWxldGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBpcyBkZWxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlRW1wdHlGb2xkZXIoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogbnVsbCB8IFBhdGhPckZvbGRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoT3JGb2xkZXIpO1xuICBpZiAoIWZvbGRlcikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIWF3YWl0IGlzRW1wdHlGb2xkZXIoYXBwLCBmb2xkZXIpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGF3YWl0IHRyYXNoU2FmZShhcHAsIGZvbGRlcik7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBlbXB0eSBmb2xkZXIgaGllcmFyY2h5IHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBmb2xkZXIgdG8gc3RhcnQgcmVtb3ZpbmcgZW1wdHkgaGllcmFyY2h5IGZyb20uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVtcHR5IGhpZXJhcmNoeSBpcyBkZWxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHkoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogbnVsbCB8IFBhdGhPckZvbGRlcik6IFByb21pc2U8dm9pZD4ge1xuICBsZXQgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgcGF0aE9yRm9sZGVyKTtcblxuICB3aGlsZSAoZm9sZGVyKSB7XG4gICAgaWYgKCFhd2FpdCBpc0VtcHR5Rm9sZGVyKGFwcCwgZm9sZGVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSBmb2xkZXIucGFyZW50O1xuICAgIGF3YWl0IGRlbGV0ZUVtcHR5Rm9sZGVyKGFwcCwgZm9sZGVyKTtcbiAgICBmb2xkZXIgPSBwYXJlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGEgc2FmZSBwYXRoIGZvciBhIGZpbGUgb3IgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmaWxlIG9yIGZvbGRlciB0byBnZXQgYSBzYWZlIHBhdGggZm9yLlxuICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgZmlsZSBzeXN0ZW0gb2JqZWN0LlxuICogQHJldHVybnMgVGhlIHNhZmUgcGF0aCBmb3IgdGhlIGZpbGUgb3IgZm9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWJzdHJhY3RGaWxlUGF0aFNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZywgdHlwZTogRmlsZVN5c3RlbVR5cGUpOiBzdHJpbmcge1xuICBjb25zdCBhYnN0cmFjdEZpbGUgPSBnZXRBYnN0cmFjdEZpbGVPck51bGwoYXBwLCBwYXRoKTtcblxuICBpZiAoYWJzdHJhY3RGaWxlICYmIGdldEZpbGVTeXN0ZW1UeXBlKGFic3RyYWN0RmlsZSkgPT09IHR5cGUpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHJldHVybiBnZXRBdmFpbGFibGVQYXRoKGFwcCwgcGF0aCk7XG59XG5cbi8qKlxuICogR2V0cyBhbiBhdmFpbGFibGUgcGF0aCBmb3IgYSBmaWxlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZSB0byBnZXQgYW4gYXZhaWxhYmxlIHBhdGggZm9yLlxuICogQHJldHVybnMgVGhlIGF2YWlsYWJsZSBwYXRoIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGgoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGV4dCA9IGV4dG5hbWUocGF0aCk7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aChqb2luKGRpcm5hbWUocGF0aCksIGJhc2VuYW1lKHBhdGgsIGV4dCkpLCBleHQuc2xpY2UoMSkpO1xufVxuXG4vKipcbiAqIEdldHMgYSBzYWZlIGZpbGUgcGF0aCBmb3IgYSBmaWxlIG9yIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZSBvciBmb2xkZXIgdG8gZ2V0IGEgc2FmZSBwYXRoIGZvci5cbiAqIEByZXR1cm5zIFRoZSBzYWZlIHBhdGggZm9yIHRoZSBmaWxlIG9yIGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVQYXRoU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRmlsZSk7XG59XG5cbi8qKlxuICogR2V0cyBhIHNhZmUgZm9sZGVyIHBhdGggZm9yIGEgZmlsZSBvciBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgb3IgZm9sZGVyIHRvIGdldCBhIHNhZmUgcGF0aCBmb3IuXG4gKiBAcmV0dXJucyBUaGUgc2FmZSBwYXRoIGZvciB0aGUgZmlsZSBvciBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXJQYXRoU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRm9sZGVyKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYXJyYXkgb2YgTWFya2Rvd24gZmlsZXMgZnJvbSB0aGUgYXBwJ3MgdmF1bHQgYW5kIHNvcnRzIHRoZW0gYWxwaGFiZXRpY2FsbHkgYnkgdGhlaXIgZmlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgTWFya2Rvd24gZmlsZXMgc29ydGVkIGJ5IGZpbGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcmtkb3duRmlsZXNTb3J0ZWQoYXBwOiBBcHApOiBURmlsZVtdIHtcbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRNYXJrZG93bkZpbGVzKCkuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGFycmF5IG9mIGFsbCBub3RlIGZpbGVzIGZyb20gdGhlIGFwcCdzIHZhdWx0IGFuZCBzb3J0cyB0aGVtIGFscGhhYmV0aWNhbGx5IGJ5IHRoZWlyIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBub3RlIGZpbGVzIGluIHRoZSB2YXVsdCBzb3J0ZWQgYnkgZmlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm90ZUZpbGVzU29ydGVkKGFwcDogQXBwKTogVEZpbGVbXSB7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QWxsTG9hZGVkRmlsZXMoKS5maWx0ZXIoKGZpbGUpID0+IGlzRmlsZShmaWxlKSAmJiBpc05vdGUoYXBwLCBmaWxlKSkuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSkgYXMgVEZpbGVbXTtcbn1cblxuLyoqXG4gKiBHZXRzIG9yIGNyZWF0ZXMgYW4gYWJzdHJhY3QgZmlsZSBzYWZlbHkgaW4gdGhlIHNwZWNpZmllZCBwYXRoLlxuICpcbiAqIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIHJldHVybmVkLlxuICogSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZCBhbmQgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGFic3RyYWN0IGZpbGUgdG8gZ2V0IG9yIGNyZWF0ZS5cbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGFic3RyYWN0IGZpbGUgdG8gZ2V0IG9yIGNyZWF0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGFic3RyYWN0IGZpbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZywgdHlwZTogRmlsZVN5c3RlbVR5cGUpOiBQcm9taXNlPFRBYnN0cmFjdEZpbGU+IHtcbiAgcGF0aCA9IGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgdHlwZSk7XG4gIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoYWJzdHJhY3RGaWxlKSB7XG4gICAgcmV0dXJuIGFic3RyYWN0RmlsZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRmlsZVN5c3RlbVR5cGUuRmlsZTpcbiAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgICBjYXNlIEZpbGVTeXN0ZW1UeXBlLkZvbGRlcjpcbiAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKHBhdGgpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmlsZSBzeXN0ZW0gdHlwZTogJHt0eXBlIGFzIHN0cmluZ31gKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgb3IgY3JlYXRlcyBhIGZpbGUgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cywgaXQgd2lsbCBiZSByZXR1cm5lZC5cbiAqIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBpdCB3aWxsIGJlIGNyZWF0ZWQgYW5kIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHRvIGdldCBvciBjcmVhdGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmaWxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0T3JDcmVhdGVGaWxlU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4ge1xuICByZXR1cm4gYXNGaWxlKGF3YWl0IGdldE9yQ3JlYXRlQWJzdHJhY3RGaWxlU2FmZShhcHAsIHBhdGgsIEZpbGVTeXN0ZW1UeXBlLkZpbGUpKTtcbn1cblxuLyoqXG4gKiBHZXRzIG9yIGNyZWF0ZXMgYSBmb2xkZXIgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBJZiB0aGUgZm9sZGVyIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIHJldHVybmVkLlxuICogSWYgdGhlIGZvbGRlciBkb2VzIG5vdCBleGlzdCwgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIGdldCBvciBjcmVhdGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmb2xkZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZUZvbGRlclNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8VEZvbGRlcj4ge1xuICByZXR1cm4gYXNGb2xkZXIoYXdhaXQgZ2V0T3JDcmVhdGVBYnN0cmFjdEZpbGVTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRm9sZGVyKSk7XG59XG5cbi8qKlxuICogR2V0cyBhIHNhZmUgcmVuYW1lIHBhdGggZm9yIGEgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIG9sZFBhdGhPckFic3RyYWN0RmlsZSAtIFRoZSBvbGQgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHJlbmFtZS5cbiAqIEBwYXJhbSBuZXdQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIHJlbmFtZSB0aGUgYWJzdHJhY3QgZmlsZSB0by5cbiAqIEByZXR1cm5zIFRoZSBzYWZlIHJlbmFtZSBwYXRoIGZvciB0aGUgYWJzdHJhY3QgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNhZmVSZW5hbWVQYXRoKGFwcDogQXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgbmV3UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgb2xkUGF0aCA9IGdldFBhdGgoYXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGUpO1xuXG4gIGlmIChnZXREYXRhQWRhcHRlckV4KGFwcCkuaW5zZW5zaXRpdmUpIHtcbiAgICBsZXQgZm9sZGVyUGF0aCA9IGRpcm5hbWUobmV3UGF0aCk7XG4gICAgbGV0IG5vbkV4aXN0aW5nUGF0aCA9IGJhc2VuYW1lKG5ld1BhdGgpO1xuICAgIGxldCBmb2xkZXI6IG51bGwgfCBURm9sZGVyO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uIC0tIFRoZXJlIGlzIG5vIGVsZWdhbnQgd2F5IHRvIHBlcmZvcm0gaW5maW5pdGUgbG9vcHMuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIGZvbGRlclBhdGgsIHRydWUpO1xuICAgICAgaWYgKGZvbGRlcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG5vbkV4aXN0aW5nUGF0aCA9IGpvaW4oYmFzZW5hbWUoZm9sZGVyUGF0aCksIG5vbkV4aXN0aW5nUGF0aCk7XG4gICAgICBmb2xkZXJQYXRoID0gZGlybmFtZShmb2xkZXJQYXRoKTtcbiAgICB9XG4gICAgbmV3UGF0aCA9IGpvaW4oZm9sZGVyLmdldFBhcmVudFByZWZpeCgpLCBub25FeGlzdGluZ1BhdGgpO1xuICB9XG5cbiAgaWYgKG9sZFBhdGgudG9Mb3dlckNhc2UoKSA9PT0gbmV3UGF0aC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcmV0dXJuIG5ld1BhdGg7XG4gIH1cblxuICByZXR1cm4gZ2V0QXZhaWxhYmxlUGF0aChhcHAsIG5ld1BhdGgpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBmaWxlIHN5c3RlbSBsb2NrLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgZmlsZSBzeXN0ZW0gbG9jayBvZi5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBleGVjdXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlV2l0aEZpbGVTeXN0ZW1Mb2NrKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmbjogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIHBhdGhPckZpbGUpO1xuICBhd2FpdCBhcHAudmF1bHQucHJvY2VzcyhmaWxlLCAoY29udGVudCkgPT4ge1xuICAgIGZuKGNvbnRlbnQpO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBwYXRoIG9yIGZpbGUgaXMgYSBjaGlsZCBvZiBhbm90aGVyIHBhdGggb3IgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIGEgLSBUaGUgZmlyc3QgcGF0aCBvciBmaWxlLlxuICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIHBhdGggb3IgZmlsZS5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpcnN0IHBhdGggb3IgZmlsZSBpcyBhIGNoaWxkIG9mIHRoZSBzZWNvbmQgcGF0aCBvciBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaGlsZChhcHA6IEFwcCwgYTogUGF0aE9yQWJzdHJhY3RGaWxlLCBiOiBQYXRoT3JBYnN0cmFjdEZpbGUpOiBib29sZWFuIHtcbiAgY29uc3QgYVBhdGggPSBnZXRQYXRoKGFwcCwgYSk7XG4gIGNvbnN0IGJQYXRoID0gZ2V0UGF0aChhcHAsIGIpO1xuXG4gIGlmIChhUGF0aCA9PT0gYlBhdGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoYlBhdGggPT09ICcvJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGFQYXRoLnN0YXJ0c1dpdGgoYCR7YlBhdGh9L2ApO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHBhdGggb3IgZmlsZSBpcyBhIGNoaWxkIG9yIHNlbGYgb2YgYW5vdGhlciBwYXRoIG9yIGZpbGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBhIC0gVGhlIGZpcnN0IHBhdGggb3IgZmlsZS5cbiAqIEBwYXJhbSBiIC0gVGhlIHNlY29uZCBwYXRoIG9yIGZpbGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaXJzdCBwYXRoIG9yIGZpbGUgaXMgYSBjaGlsZCBvciBzZWxmIG9mIHRoZSBzZWNvbmQgcGF0aCBvciBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaGlsZE9yU2VsZihhcHA6IEFwcCwgYTogUGF0aE9yQWJzdHJhY3RGaWxlLCBiOiBQYXRoT3JBYnN0cmFjdEZpbGUpOiBib29sZWFuIHtcbiAgY29uc3QgYVBhdGggPSBnZXRQYXRoKGFwcCwgYSk7XG4gIGNvbnN0IGJQYXRoID0gZ2V0UGF0aChhcHAsIGIpO1xuICByZXR1cm4gYVBhdGggPT09IGJQYXRoIHx8IGlzQ2hpbGQoYXBwLCBhLCBiKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBmb2xkZXIgaXMgZW1wdHkuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZvbGRlciBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzRW1wdHlGb2xkZXIoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGxpc3RlZEZpbGVzID0gYXdhaXQgbGlzdFNhZmUoYXBwLCBnZXRQYXRoKGFwcCwgcGF0aE9yRm9sZGVyKSk7XG4gIHJldHVybiBsaXN0ZWRGaWxlcy5maWxlcy5sZW5ndGggPT09IDAgJiYgbGlzdGVkRmlsZXMuZm9sZGVycy5sZW5ndGggPT09IDA7XG59XG5cbi8qKlxuICogU2FmZWx5IGxpc3RzIHRoZSBmaWxlcyBhbmQgZm9sZGVycyBhdCB0aGUgc3BlY2lmaWVkIHBhdGggaW4gdGhlIHZhdWx0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIHBhdGggb3IgZm9sZGVyIHRvIGxpc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIExpc3RlZEZpbGVzfSBvYmplY3QgY29udGFpbmluZyB0aGUgbGlzdGVkIGZpbGVzIGFuZCBmb2xkZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFNhZmUoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyKTogUHJvbWlzZTxMaXN0ZWRGaWxlcz4ge1xuICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckZvbGRlcik7XG4gIGNvbnN0IEVNUFRZID0geyBmaWxlczogW10sIGZvbGRlcnM6IFtdIH07XG5cbiAgaWYgKChhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5zdGF0KHBhdGgpKT8udHlwZSAhPT0gJ2ZvbGRlcicpIHtcbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5saXN0KHBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGF3YWl0IGFwcC52YXVsdC5leGlzdHMocGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxufVxuXG4vKipcbiAqIFByb2Nlc3NlcyBhIGZpbGUgd2l0aCByZXRyeSBsb2dpYywgdXBkYXRpbmcgaXRzIGNvbnRlbnQgYmFzZWQgb24gYSBwcm92aWRlZCB2YWx1ZSBvciBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLCB0eXBpY2FsbHkgdXNlZCBmb3IgYWNjZXNzaW5nIHRoZSB2YXVsdC5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byBiZSBwcm9jZXNzZWQuIEl0IGNhbiBiZSBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggb3IgYSBmaWxlIG9iamVjdC5cbiAqIEBwYXJhbSBuZXdDb250ZW50UHJvdmlkZXIgLSBBIHZhbHVlIHByb3ZpZGVyIHRoYXQgcmV0dXJucyB0aGUgbmV3IGNvbnRlbnQgYmFzZWQgb24gdGhlIG9sZCBjb250ZW50IG9mIHRoZSBmaWxlLlxuICogSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgb2xkIGNvbnRlbnQgYXMgYW4gYXJndW1lbnQgYW5kIHJldHVybnMgdGhlIG5ldyBjb250ZW50LlxuICogSWYgZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHNob3VsZCByZXR1cm4gYG51bGxgIGlmIHRoZSBwcm9jZXNzIHNob3VsZCBiZSByZXRyaWVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGZvciBwcm9jZXNzaW5nL3JldHJ5aW5nIHRoZSBvcGVyYXRpb24uXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcHJvY2VzcyBmYWlscyBhZnRlciB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByZXRyaWVzIG9yIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzKFxuICBhcHA6IEFwcCxcbiAgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSxcbiAgbmV3Q29udGVudFByb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPG51bGwgfCBzdHJpbmcsIENvbnRlbnRBcmdzPixcbiAgb3B0aW9uczogUHJvY2Vzc09wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUyA9IHtcbiAgICBzaG91bGRGYWlsT25NaXNzaW5nRmlsZTogdHJ1ZSxcbiAgICBzaG91bGRMb2NrRWRpdG9yV2hpbGVQcm9jZXNzaW5nOiB0cnVlLFxuICAgIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiB0cnVlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzIC0tIERlZmF1bHQgdmFsdWUuXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiA1MDBcbiAgfTtcbiAgY29uc3QgZnVsbE9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGZ1bGxPcHRpb25zLmFib3J0U2lnbmFsID0gYWJvcnRTaWduYWxBbnkoZnVsbE9wdGlvbnMuYWJvcnRTaWduYWwsIGFib3J0Q29udHJvbGxlci5zaWduYWwpO1xuICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckZpbGUpO1xuXG4gIGxldCBhY3RpdmVMZWFmQ2hhbmdlRXZlbnRSZWY6IEV2ZW50UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGZ1bGxPcHRpb25zLnNob3VsZExvY2tFZGl0b3JXaGlsZVByb2Nlc3NpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoVmlld1R5cGUuTWFya2Rvd24pKSB7XG4gICAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICAgIGxvY2tFZGl0b3IobGVhZi52aWV3LmVkaXRvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWN0aXZlTGVhZkNoYW5nZUV2ZW50UmVmID0gYXBwLndvcmtzcGFjZS5vbignYWN0aXZlLWxlYWYtY2hhbmdlJywgKGxlYWYpID0+IHtcbiAgICAgIGlmIChsZWFmPy52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICAgIGxvY2tFZGl0b3IobGVhZi52aWV3LmVkaXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IHJldHJ5V2l0aFRpbWVvdXROb3RpY2Uoe1xuICAgICAgYXN5bmMgb3BlcmF0aW9uRm4oYWJvcnRTaWduYWwpIHtcbiAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgICBjb25zdCBvbGRDb250ZW50ID0gYXdhaXQgcmVhZFNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgICBpZiAob2xkQ29udGVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBoYW5kbGVNaXNzaW5nRmlsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGF3YWl0IHJlc29sdmVWYWx1ZShuZXdDb250ZW50UHJvdmlkZXIsIHsgYWJvcnRTaWduYWwsIGNvbnRlbnQ6IG9sZENvbnRlbnQgfSk7XG4gICAgICAgIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgICAgICAgaWYgKG5ld0NvbnRlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXNTdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZG9lc0ZpbGVFeGlzdCA9IGF3YWl0IGludm9rZUZpbGVBY3Rpb25TYWZlKGFwcCwgcGF0aE9yRmlsZSwgYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICAgIGF3YWl0IGFwcC52YXVsdC5wcm9jZXNzKGZpbGUsIChjb250ZW50KSA9PiB7XG4gICAgICAgICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG9sZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ1ZhdWx0OnByb2Nlc3MnKSgnQ29udGVudCBoYXMgY2hhbmdlZCBzaW5jZSBpdCB3YXMgcmVhZC4gUmV0cnlpbmcuLi4nLCB7XG4gICAgICAgICAgICAgICAgYWN0dWFsQ29udGVudDogY29udGVudCxcbiAgICAgICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IG9sZENvbnRlbnQsXG4gICAgICAgICAgICAgICAgcGF0aDogZmlsZS5wYXRoXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdDb250ZW50O1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFkb2VzRmlsZUV4aXN0KSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZU1pc3NpbmdGaWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNTdWNjZXNzO1xuXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1pc3NpbmdGaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICAgIGlmIChmdWxsT3B0aW9ucy5zaG91bGRGYWlsT25NaXNzaW5nRmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlICcke3BhdGh9JyBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMudmF1bHQucHJvY2Vzc0ZpbGUsIHsgZmlsZVBhdGg6IHBhdGggfSksXG4gICAgICByZXRyeU9wdGlvbnM6IGZ1bGxPcHRpb25zLFxuICAgICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGZ1bGxPcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgYWN0aXZlTGVhZkNoYW5nZUV2ZW50UmVmPy5lLm9mZnJlZihhY3RpdmVMZWFmQ2hhbmdlRXZlbnRSZWYpO1xuICAgIGZvciAoY29uc3QgbGVhZiBvZiBhcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShWaWV3VHlwZS5NYXJrZG93bikpIHtcbiAgICAgIGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcgJiYgbGVhZi52aWV3LmZpbGU/LnBhdGggPT09IHBhdGgpIHtcbiAgICAgICAgdW5sb2NrRWRpdG9yKGxlYWYudmlldy5lZGl0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjb250ZW50IG9mIGEgZmlsZSBzYWZlbHkgZnJvbSB0aGUgdmF1bHQuXG4gKlxuICogSXQgY292ZXJzIHRoZSBjYXNlIHdoZW4gdGhlIGZpbGUgd2FzIHJlbW92ZWQgZHVyaW5nIHRoZSByZWFkaW5nLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gcmVhZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUgb3IgYG51bGxgIGlmIHRoZSBmaWxlIGlzIG1pc3Npbmcgb3IgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTYWZlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGxldCBjb250ZW50OiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgYXdhaXQgaW52b2tlRmlsZUFjdGlvblNhZmUoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoZmlsZSkgPT4ge1xuICAgIGF3YWl0IHNhdmVOb3RlKGFwcCwgZmlsZSk7XG4gICAgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGZpbGUpO1xuICB9KTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbi8qKlxuICogUmVuYW1lcyBhIGZpbGUgc2FmZWx5IGluIHRoZSB2YXVsdC5cbiAqIElmIHRoZSBuZXcgcGF0aCBhbHJlYWR5IGV4aXN0cywgdGhlIGZpbGUgd2lsbCBiZSByZW5hbWVkIHRvIGFuIGF2YWlsYWJsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gb2xkUGF0aE9yQWJzdHJhY3RGaWxlIC0gVGhlIG9sZCBwYXRoIG9yIGZpbGUgdG8gcmVuYW1lLlxuICogQHBhcmFtIG5ld1BhdGggLSBUaGUgbmV3IHBhdGggdG8gcmVuYW1lIHRoZSBmaWxlIHRvLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHBhdGggb2YgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5hbWVTYWZlKGFwcDogQXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgbmV3UGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb2xkQWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlKGFwcCwgb2xkUGF0aE9yQWJzdHJhY3RGaWxlKTtcblxuICBjb25zdCBuZXdBdmFpbGFibGVQYXRoID0gZ2V0U2FmZVJlbmFtZVBhdGgoYXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGUsIG5ld1BhdGgpO1xuXG4gIGlmIChvbGRBYnN0cmFjdEZpbGUucGF0aC50b0xvd2VyQ2FzZSgpID09PSBuZXdBdmFpbGFibGVQYXRoLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBpZiAob2xkQWJzdHJhY3RGaWxlLnBhdGggIT09IG5ld1BhdGgpIHtcbiAgICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci5yZW5hbWVGaWxlKG9sZEFic3RyYWN0RmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xuICB9XG5cbiAgY29uc3QgbmV3Rm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgobmV3QXZhaWxhYmxlUGF0aCk7XG4gIGF3YWl0IGNyZWF0ZUZvbGRlclNhZmUoYXBwLCBuZXdGb2xkZXJQYXRoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci5yZW5hbWVGaWxlKG9sZEFic3RyYWN0RmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIWF3YWl0IGFwcC52YXVsdC5leGlzdHMobmV3QXZhaWxhYmxlUGF0aCkgfHwgYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhvbGRBYnN0cmFjdEZpbGUucGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0F2YWlsYWJsZVBhdGg7XG59XG5cbi8qKlxuICogU2F2ZXMgdGhlIHNwZWNpZmllZCBub3RlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBub3RlIHRvIGJlIHNhdmVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBub3RlIGlzIHNhdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZU5vdGUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFpc01hcmtkb3duRmlsZShhcHAsIHBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGdldFBhdGgoYXBwLCBwYXRoT3JGaWxlKTtcblxuICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoVmlld1R5cGUuTWFya2Rvd24pKSB7XG4gICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldyAmJiBsZWFmLnZpZXcuZmlsZT8ucGF0aCA9PT0gcGF0aCAmJiBsZWFmLnZpZXcuZGlydHkpIHtcbiAgICAgIGF3YWl0IGxlYWYudmlldy5zYXZlKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhc2hlcyBhbiBhYnN0cmFjdCBmaWxlIHNhZmVseSBmcm9tIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHRyYXNoLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGlzIHRyYXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cmFzaFNhZmUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGlmICghZmlsZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgYXBwLmZpbGVNYW5hZ2VyLnRyYXNoRmlsZShmaWxlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChhd2FpdCBhcHAudmF1bHQuZXhpc3RzKGZpbGUucGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuXG4gICAgZ2V0TGliRGVidWdnZXIoJ1ZhdWx0OnRyYXNoU2FmZScpKGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB0cmFzaGluZyAke2ZpbGUucGF0aH0sIGJ1dCB0aGUgZmlsZSBubyBsb25nZXIgZXhpc3RzLmAsIHsgZXJyb3I6IGUsIHBhdGg6IGZpbGUucGF0aCB9KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbnZva2VGaWxlQWN0aW9uU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgZmlsZUFjdGlvbjogKGZpbGU6IFRGaWxlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGxldCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoIWZpbGUgfHwgZmlsZS5kZWxldGVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgYXdhaXQgZmlsZUFjdGlvbihmaWxlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNL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
443
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3ZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgT2JzaWRpYW4gVmF1bHQuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEV2ZW50UmVmLFxuICBMaXN0ZWRGaWxlc1xufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIE1hcmtkb3duVmlldyxcbiAgVEFic3RyYWN0RmlsZSxcbiAgVEZpbGUsXG4gIFRGb2xkZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgZ2V0RGF0YUFkYXB0ZXJFeCxcbiAgcGFyZW50Rm9sZGVyUGF0aCxcbiAgVmlld1R5cGVcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgUGF0aE9yQWJzdHJhY3RGaWxlLFxuICBQYXRoT3JGaWxlLFxuICBQYXRoT3JGb2xkZXJcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbmltcG9ydCB7IGFib3J0U2lnbmFsQW55IH0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgcmV0cnlXaXRoVGltZW91dE5vdGljZSB9IGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuaW1wb3J0IHtcbiAgbG9ja0VkaXRvcixcbiAgdW5sb2NrRWRpdG9yXG59IGZyb20gJy4vZWRpdG9yLnRzJztcbmltcG9ydCB7XG4gIGFzRmlsZSxcbiAgYXNGb2xkZXIsXG4gIEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRBYnN0cmFjdEZpbGUsXG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZVN5c3RlbVR5cGUsXG4gIGdldEZvbGRlcixcbiAgZ2V0Rm9sZGVyT3JOdWxsLFxuICBnZXRQYXRoLFxuICBpc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGVcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEFyZ3VtZW50cyBmb3Ige0BsaW5rIHByb2Nlc3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRBcmdzIHtcbiAgcmVhZG9ubHkgY29udGVudDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9jZXNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzT3B0aW9ucyBleHRlbmRzIFJldHJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZhaWwgaWYgdGhlIGZpbGUgaXMgbWlzc2luZyBvciBkZWxldGVkLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZhaWxPbk1pc3NpbmdGaWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBsb2NrIHRoZSBlZGl0b3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgZmlsZS4gQXBwbGljYWJsZSBvbmx5IGZvciBtYXJrZG93biBmaWxlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRMb2NrRWRpdG9yV2hpbGVQcm9jZXNzaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvcGllcyBhIGZpbGUgc2FmZWx5IGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIG9sZFBhdGhPckZpbGUgLSBUaGUgb2xkIHBhdGggb3IgZmlsZSB0byBjb3B5LlxuICogQHBhcmFtIG5ld1BhdGggLSBUaGUgbmV3IHBhdGggdG8gY29weSB0aGUgZmlsZSB0by5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBwYXRoIG9mIHRoZSBjb3BpZWQgZmlsZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlTYWZlKGFwcDogQXBwLCBvbGRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIG9sZFBhdGhPckZpbGUpO1xuXG4gIGlmIChmaWxlLnBhdGggPT09IG5ld1BhdGgpIHtcbiAgICByZXR1cm4gbmV3UGF0aDtcbiAgfVxuXG4gIGNvbnN0IG5ld0ZvbGRlclBhdGggPSBwYXJlbnRGb2xkZXJQYXRoKG5ld1BhdGgpO1xuICBhd2FpdCBjcmVhdGVGb2xkZXJTYWZlKGFwcCwgbmV3Rm9sZGVyUGF0aCk7XG5cbiAgY29uc3QgbmV3QXZhaWxhYmxlUGF0aCA9IGdldEF2YWlsYWJsZVBhdGgoYXBwLCBuZXdQYXRoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGFwcC52YXVsdC5jb3B5KGZpbGUsIG5ld0F2YWlsYWJsZVBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFhd2FpdCBhcHAudmF1bHQuZXhpc3RzKG5ld0F2YWlsYWJsZVBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmb2xkZXIgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIGNyZWF0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZm9sZGVyIHdhcyBjcmVhdGVkLlxuICogQHRocm93cyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgY3JlYXRpbmcgdGhlIGZvbGRlciBhbmQgaXQgc3RpbGwgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZvbGRlclNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAoYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFhd2FpdCBhcHAudmF1bHQuZXhpc3RzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0ZW1wb3JhcnkgZmlsZSBpbiB0aGUgdmF1bHQgd2l0aCBwYXJlbnQgZm9sZGVycyBpZiBuZWVkZWQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gY3JlYXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBkZWxldGUgdGhlIHRlbXBvcmFyeSBmaWxlIGFuZCBhbGwgaXRzIGNyZWF0ZWQgcGFyZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlbXBGaWxlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPCgpID0+IFByb21pc2U8dm9pZD4+IHtcbiAgbGV0IGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gIGlmIChmaWxlKSB7XG4gICAgcmV0dXJuIG5vb3BBc3luYztcbiAgfVxuXG4gIGNvbnN0IGZvbGRlckNsZWFudXAgPSBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhwYXRoKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlLmRlbGV0ZWQpIHtcbiAgICAgIGF3YWl0IHRyYXNoU2FmZShhcHAsIGZpbGUpO1xuICAgIH1cbiAgICBhd2FpdCBmb2xkZXJDbGVhbnVwKCk7XG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRlbXBvcmFyeSBmb2xkZXIgaW4gdGhlIHZhdWx0IHdpdGggcGFyZW50IGZvbGRlcnMgaWYgbmVlZGVkLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgdG8gY3JlYXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBkZWxldGUgdGhlIHRlbXBvcmFyeSBmb2xkZXIgYW5kIGFsbCBpdHMgY3JlYXRlZCBwYXJlbnRzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVtcEZvbGRlcihhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTwoKSA9PiBQcm9taXNlPHZvaWQ+PiB7XG4gIGxldCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoKTtcbiAgaWYgKGZvbGRlcikge1xuICAgIHJldHVybiBub29wQXN5bmM7XG4gIH1cblxuICBjb25zdCBmb2xkZXJQYXRoID0gcGFyZW50Rm9sZGVyUGF0aChwYXRoKTtcbiAgYXdhaXQgY3JlYXRlVGVtcEZvbGRlcihhcHAsIGZvbGRlclBhdGgpO1xuXG4gIGNvbnN0IGZvbGRlckNsZWFudXAgPSBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG5cbiAgYXdhaXQgY3JlYXRlRm9sZGVyU2FmZShhcHAsIHBhdGgpO1xuXG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgZm9sZGVyID0gZ2V0Rm9sZGVyKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmb2xkZXIuZGVsZXRlZCkge1xuICAgICAgYXdhaXQgdHJhc2hTYWZlKGFwcCwgZm9sZGVyKTtcbiAgICB9XG4gICAgYXdhaXQgZm9sZGVyQ2xlYW51cCgpO1xuICB9O1xufVxuXG4vKipcbiAqIERlbGV0ZXMgYW4gZW1wdHkgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIGZvbGRlciB0byBkZWxldGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBpcyBkZWxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlRW1wdHlGb2xkZXIoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogbnVsbCB8IFBhdGhPckZvbGRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoT3JGb2xkZXIpO1xuICBpZiAoIWZvbGRlcikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIWF3YWl0IGlzRW1wdHlGb2xkZXIoYXBwLCBmb2xkZXIpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGF3YWl0IHRyYXNoU2FmZShhcHAsIGZvbGRlcik7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBlbXB0eSBmb2xkZXIgaGllcmFyY2h5IHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBmb2xkZXIgdG8gc3RhcnQgcmVtb3ZpbmcgZW1wdHkgaGllcmFyY2h5IGZyb20uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVtcHR5IGhpZXJhcmNoeSBpcyBkZWxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHkoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogbnVsbCB8IFBhdGhPckZvbGRlcik6IFByb21pc2U8dm9pZD4ge1xuICBsZXQgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgcGF0aE9yRm9sZGVyKTtcblxuICB3aGlsZSAoZm9sZGVyKSB7XG4gICAgaWYgKCFhd2FpdCBpc0VtcHR5Rm9sZGVyKGFwcCwgZm9sZGVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSBmb2xkZXIucGFyZW50O1xuICAgIGF3YWl0IGRlbGV0ZUVtcHR5Rm9sZGVyKGFwcCwgZm9sZGVyKTtcbiAgICBmb2xkZXIgPSBwYXJlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGEgc2FmZSBwYXRoIGZvciBhIGZpbGUgb3IgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmaWxlIG9yIGZvbGRlciB0byBnZXQgYSBzYWZlIHBhdGggZm9yLlxuICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgZmlsZSBzeXN0ZW0gb2JqZWN0LlxuICogQHJldHVybnMgVGhlIHNhZmUgcGF0aCBmb3IgdGhlIGZpbGUgb3IgZm9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWJzdHJhY3RGaWxlUGF0aFNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZywgdHlwZTogRmlsZVN5c3RlbVR5cGUpOiBzdHJpbmcge1xuICBjb25zdCBhYnN0cmFjdEZpbGUgPSBnZXRBYnN0cmFjdEZpbGVPck51bGwoYXBwLCBwYXRoKTtcblxuICBpZiAoYWJzdHJhY3RGaWxlICYmIGdldEZpbGVTeXN0ZW1UeXBlKGFic3RyYWN0RmlsZSkgPT09IHR5cGUpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHJldHVybiBnZXRBdmFpbGFibGVQYXRoKGFwcCwgcGF0aCk7XG59XG5cbi8qKlxuICogR2V0cyBhbiBhdmFpbGFibGUgcGF0aCBmb3IgYSBmaWxlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZSB0byBnZXQgYW4gYXZhaWxhYmxlIHBhdGggZm9yLlxuICogQHJldHVybnMgVGhlIGF2YWlsYWJsZSBwYXRoIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGgoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGV4dCA9IGV4dG5hbWUocGF0aCk7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aChqb2luKGRpcm5hbWUocGF0aCksIGJhc2VuYW1lKHBhdGgsIGV4dCkpLCBleHQuc2xpY2UoMSkpO1xufVxuXG4vKipcbiAqIEdldHMgYSBzYWZlIGZpbGUgcGF0aCBmb3IgYSBmaWxlIG9yIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZSBvciBmb2xkZXIgdG8gZ2V0IGEgc2FmZSBwYXRoIGZvci5cbiAqIEByZXR1cm5zIFRoZSBzYWZlIHBhdGggZm9yIHRoZSBmaWxlIG9yIGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVQYXRoU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRmlsZSk7XG59XG5cbi8qKlxuICogR2V0cyBhIHNhZmUgZm9sZGVyIHBhdGggZm9yIGEgZmlsZSBvciBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgb3IgZm9sZGVyIHRvIGdldCBhIHNhZmUgcGF0aCBmb3IuXG4gKiBAcmV0dXJucyBUaGUgc2FmZSBwYXRoIGZvciB0aGUgZmlsZSBvciBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXJQYXRoU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRm9sZGVyKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYXJyYXkgb2YgTWFya2Rvd24gZmlsZXMgZnJvbSB0aGUgYXBwJ3MgdmF1bHQgYW5kIHNvcnRzIHRoZW0gYWxwaGFiZXRpY2FsbHkgYnkgdGhlaXIgZmlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgTWFya2Rvd24gZmlsZXMgc29ydGVkIGJ5IGZpbGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcmtkb3duRmlsZXNTb3J0ZWQoYXBwOiBBcHApOiBURmlsZVtdIHtcbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRNYXJrZG93bkZpbGVzKCkuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGFycmF5IG9mIGFsbCBub3RlIGZpbGVzIGZyb20gdGhlIGFwcCdzIHZhdWx0IGFuZCBzb3J0cyB0aGVtIGFscGhhYmV0aWNhbGx5IGJ5IHRoZWlyIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBub3RlIGZpbGVzIGluIHRoZSB2YXVsdCBzb3J0ZWQgYnkgZmlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm90ZUZpbGVzU29ydGVkKGFwcDogQXBwKTogVEZpbGVbXSB7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QWxsTG9hZGVkRmlsZXMoKS5maWx0ZXIoKGZpbGUpID0+IGlzRmlsZShmaWxlKSAmJiBpc05vdGUoYXBwLCBmaWxlKSkuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSkgYXMgVEZpbGVbXTtcbn1cblxuLyoqXG4gKiBHZXRzIG9yIGNyZWF0ZXMgYW4gYWJzdHJhY3QgZmlsZSBzYWZlbHkgaW4gdGhlIHNwZWNpZmllZCBwYXRoLlxuICpcbiAqIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIHJldHVybmVkLlxuICogSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZCBhbmQgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGFic3RyYWN0IGZpbGUgdG8gZ2V0IG9yIGNyZWF0ZS5cbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGFic3RyYWN0IGZpbGUgdG8gZ2V0IG9yIGNyZWF0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGFic3RyYWN0IGZpbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZywgdHlwZTogRmlsZVN5c3RlbVR5cGUpOiBQcm9taXNlPFRBYnN0cmFjdEZpbGU+IHtcbiAgcGF0aCA9IGdldEFic3RyYWN0RmlsZVBhdGhTYWZlKGFwcCwgcGF0aCwgdHlwZSk7XG4gIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoYWJzdHJhY3RGaWxlKSB7XG4gICAgcmV0dXJuIGFic3RyYWN0RmlsZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRmlsZVN5c3RlbVR5cGUuRmlsZTpcbiAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgICBjYXNlIEZpbGVTeXN0ZW1UeXBlLkZvbGRlcjpcbiAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKHBhdGgpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmlsZSBzeXN0ZW0gdHlwZTogJHt0eXBlIGFzIHN0cmluZ31gKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgb3IgY3JlYXRlcyBhIGZpbGUgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cywgaXQgd2lsbCBiZSByZXR1cm5lZC5cbiAqIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBpdCB3aWxsIGJlIGNyZWF0ZWQgYW5kIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHRvIGdldCBvciBjcmVhdGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmaWxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0T3JDcmVhdGVGaWxlU2FmZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4ge1xuICByZXR1cm4gYXNGaWxlKGF3YWl0IGdldE9yQ3JlYXRlQWJzdHJhY3RGaWxlU2FmZShhcHAsIHBhdGgsIEZpbGVTeXN0ZW1UeXBlLkZpbGUpKTtcbn1cblxuLyoqXG4gKiBHZXRzIG9yIGNyZWF0ZXMgYSBmb2xkZXIgc2FmZWx5IGluIHRoZSBzcGVjaWZpZWQgcGF0aC5cbiAqXG4gKiBJZiB0aGUgZm9sZGVyIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIHJldHVybmVkLlxuICogSWYgdGhlIGZvbGRlciBkb2VzIG5vdCBleGlzdCwgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIGdldCBvciBjcmVhdGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmb2xkZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZUZvbGRlclNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8VEZvbGRlcj4ge1xuICByZXR1cm4gYXNGb2xkZXIoYXdhaXQgZ2V0T3JDcmVhdGVBYnN0cmFjdEZpbGVTYWZlKGFwcCwgcGF0aCwgRmlsZVN5c3RlbVR5cGUuRm9sZGVyKSk7XG59XG5cbi8qKlxuICogR2V0cyBhIHNhZmUgcmVuYW1lIHBhdGggZm9yIGEgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIG9sZFBhdGhPckFic3RyYWN0RmlsZSAtIFRoZSBvbGQgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHJlbmFtZS5cbiAqIEBwYXJhbSBuZXdQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIHJlbmFtZSB0aGUgYWJzdHJhY3QgZmlsZSB0by5cbiAqIEByZXR1cm5zIFRoZSBzYWZlIHJlbmFtZSBwYXRoIGZvciB0aGUgYWJzdHJhY3QgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNhZmVSZW5hbWVQYXRoKGFwcDogQXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgbmV3UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgb2xkUGF0aCA9IGdldFBhdGgoYXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGUpO1xuXG4gIGlmIChnZXREYXRhQWRhcHRlckV4KGFwcCkuaW5zZW5zaXRpdmUpIHtcbiAgICBsZXQgZm9sZGVyUGF0aCA9IGRpcm5hbWUobmV3UGF0aCk7XG4gICAgbGV0IG5vbkV4aXN0aW5nUGF0aCA9IGJhc2VuYW1lKG5ld1BhdGgpO1xuICAgIGxldCBmb2xkZXI6IG51bGwgfCBURm9sZGVyO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uIC0tIFRoZXJlIGlzIG5vIGVsZWdhbnQgd2F5IHRvIHBlcmZvcm0gaW5maW5pdGUgbG9vcHMuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIGZvbGRlclBhdGgsIHRydWUpO1xuICAgICAgaWYgKGZvbGRlcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG5vbkV4aXN0aW5nUGF0aCA9IGpvaW4oYmFzZW5hbWUoZm9sZGVyUGF0aCksIG5vbkV4aXN0aW5nUGF0aCk7XG4gICAgICBmb2xkZXJQYXRoID0gZGlybmFtZShmb2xkZXJQYXRoKTtcbiAgICB9XG4gICAgbmV3UGF0aCA9IGpvaW4oZm9sZGVyLmdldFBhcmVudFByZWZpeCgpLCBub25FeGlzdGluZ1BhdGgpO1xuICB9XG5cbiAgaWYgKG9sZFBhdGgudG9Mb3dlckNhc2UoKSA9PT0gbmV3UGF0aC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcmV0dXJuIG5ld1BhdGg7XG4gIH1cblxuICByZXR1cm4gZ2V0QXZhaWxhYmxlUGF0aChhcHAsIG5ld1BhdGgpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBmaWxlIHN5c3RlbSBsb2NrLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgZmlsZSBzeXN0ZW0gbG9jayBvZi5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBleGVjdXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlV2l0aEZpbGVTeXN0ZW1Mb2NrKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmbjogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIHBhdGhPckZpbGUpO1xuICBhd2FpdCBhcHAudmF1bHQucHJvY2VzcyhmaWxlLCAoY29udGVudCkgPT4ge1xuICAgIGZuKGNvbnRlbnQpO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBwYXRoIG9yIGZpbGUgaXMgYSBjaGlsZCBvZiBhbm90aGVyIHBhdGggb3IgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIGEgLSBUaGUgZmlyc3QgcGF0aCBvciBmaWxlLlxuICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIHBhdGggb3IgZmlsZS5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpcnN0IHBhdGggb3IgZmlsZSBpcyBhIGNoaWxkIG9mIHRoZSBzZWNvbmQgcGF0aCBvciBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaGlsZChhcHA6IEFwcCwgYTogUGF0aE9yQWJzdHJhY3RGaWxlLCBiOiBQYXRoT3JBYnN0cmFjdEZpbGUpOiBib29sZWFuIHtcbiAgY29uc3QgYVBhdGggPSBnZXRQYXRoKGFwcCwgYSk7XG4gIGNvbnN0IGJQYXRoID0gZ2V0UGF0aChhcHAsIGIpO1xuXG4gIGlmIChhUGF0aCA9PT0gYlBhdGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoYlBhdGggPT09ICcvJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGFQYXRoLnN0YXJ0c1dpdGgoYCR7YlBhdGh9L2ApO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHBhdGggb3IgZmlsZSBpcyBhIGNoaWxkIG9yIHNlbGYgb2YgYW5vdGhlciBwYXRoIG9yIGZpbGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBhIC0gVGhlIGZpcnN0IHBhdGggb3IgZmlsZS5cbiAqIEBwYXJhbSBiIC0gVGhlIHNlY29uZCBwYXRoIG9yIGZpbGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaXJzdCBwYXRoIG9yIGZpbGUgaXMgYSBjaGlsZCBvciBzZWxmIG9mIHRoZSBzZWNvbmQgcGF0aCBvciBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaGlsZE9yU2VsZihhcHA6IEFwcCwgYTogUGF0aE9yQWJzdHJhY3RGaWxlLCBiOiBQYXRoT3JBYnN0cmFjdEZpbGUpOiBib29sZWFuIHtcbiAgY29uc3QgYVBhdGggPSBnZXRQYXRoKGFwcCwgYSk7XG4gIGNvbnN0IGJQYXRoID0gZ2V0UGF0aChhcHAsIGIpO1xuICByZXR1cm4gYVBhdGggPT09IGJQYXRoIHx8IGlzQ2hpbGQoYXBwLCBhLCBiKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBmb2xkZXIgaXMgZW1wdHkuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZvbGRlciBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzRW1wdHlGb2xkZXIoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGxpc3RlZEZpbGVzID0gYXdhaXQgbGlzdFNhZmUoYXBwLCBnZXRQYXRoKGFwcCwgcGF0aE9yRm9sZGVyKSk7XG4gIHJldHVybiBsaXN0ZWRGaWxlcy5maWxlcy5sZW5ndGggPT09IDAgJiYgbGlzdGVkRmlsZXMuZm9sZGVycy5sZW5ndGggPT09IDA7XG59XG5cbi8qKlxuICogU2FmZWx5IGxpc3RzIHRoZSBmaWxlcyBhbmQgZm9sZGVycyBhdCB0aGUgc3BlY2lmaWVkIHBhdGggaW4gdGhlIHZhdWx0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIHBhdGggb3IgZm9sZGVyIHRvIGxpc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIExpc3RlZEZpbGVzfSBvYmplY3QgY29udGFpbmluZyB0aGUgbGlzdGVkIGZpbGVzIGFuZCBmb2xkZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFNhZmUoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyKTogUHJvbWlzZTxMaXN0ZWRGaWxlcz4ge1xuICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckZvbGRlcik7XG4gIGNvbnN0IEVNUFRZID0geyBmaWxlczogW10sIGZvbGRlcnM6IFtdIH07XG5cbiAgaWYgKChhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5zdGF0KHBhdGgpKT8udHlwZSAhPT0gJ2ZvbGRlcicpIHtcbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5saXN0KHBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGF3YWl0IGFwcC52YXVsdC5leGlzdHMocGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiBFTVBUWTtcbiAgfVxufVxuXG4vKipcbiAqIFByb2Nlc3NlcyBhIGZpbGUgd2l0aCByZXRyeSBsb2dpYywgdXBkYXRpbmcgaXRzIGNvbnRlbnQgYmFzZWQgb24gYSBwcm92aWRlZCB2YWx1ZSBvciBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLCB0eXBpY2FsbHkgdXNlZCBmb3IgYWNjZXNzaW5nIHRoZSB2YXVsdC5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byBiZSBwcm9jZXNzZWQuIEl0IGNhbiBiZSBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggb3IgYSBmaWxlIG9iamVjdC5cbiAqIEBwYXJhbSBuZXdDb250ZW50UHJvdmlkZXIgLSBBIHZhbHVlIHByb3ZpZGVyIHRoYXQgcmV0dXJucyB0aGUgbmV3IGNvbnRlbnQgYmFzZWQgb24gdGhlIG9sZCBjb250ZW50IG9mIHRoZSBmaWxlLlxuICogSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgb2xkIGNvbnRlbnQgYXMgYW4gYXJndW1lbnQgYW5kIHJldHVybnMgdGhlIG5ldyBjb250ZW50LlxuICogSWYgZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHNob3VsZCByZXR1cm4gYG51bGxgIGlmIHRoZSBwcm9jZXNzIHNob3VsZCBiZSByZXRyaWVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGZvciBwcm9jZXNzaW5nL3JldHJ5aW5nIHRoZSBvcGVyYXRpb24uXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcHJvY2VzcyBmYWlscyBhZnRlciB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByZXRyaWVzIG9yIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzKFxuICBhcHA6IEFwcCxcbiAgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSxcbiAgbmV3Q29udGVudFByb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPG51bGwgfCBzdHJpbmcsIENvbnRlbnRBcmdzPixcbiAgb3B0aW9uczogUHJvY2Vzc09wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUyA9IHtcbiAgICBzaG91bGRGYWlsT25NaXNzaW5nRmlsZTogdHJ1ZSxcbiAgICBzaG91bGRMb2NrRWRpdG9yV2hpbGVQcm9jZXNzaW5nOiB0cnVlLFxuICAgIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiB0cnVlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzIC0tIERlZmF1bHQgdmFsdWUuXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiA1MDBcbiAgfTtcbiAgY29uc3QgZnVsbE9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGZ1bGxPcHRpb25zLmFib3J0U2lnbmFsID0gYWJvcnRTaWduYWxBbnkoZnVsbE9wdGlvbnMuYWJvcnRTaWduYWwsIGFib3J0Q29udHJvbGxlci5zaWduYWwpO1xuICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckZpbGUpO1xuXG4gIGxldCBhY3RpdmVMZWFmQ2hhbmdlRXZlbnRSZWY6IEV2ZW50UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGZ1bGxPcHRpb25zLnNob3VsZExvY2tFZGl0b3JXaGlsZVByb2Nlc3NpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoVmlld1R5cGUuTWFya2Rvd24pKSB7XG4gICAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICAgIGxvY2tFZGl0b3IobGVhZi52aWV3LmVkaXRvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWN0aXZlTGVhZkNoYW5nZUV2ZW50UmVmID0gYXBwLndvcmtzcGFjZS5vbignYWN0aXZlLWxlYWYtY2hhbmdlJywgKGxlYWYpID0+IHtcbiAgICAgIGlmIChsZWFmPy52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICAgIGxvY2tFZGl0b3IobGVhZi52aWV3LmVkaXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IHJldHJ5V2l0aFRpbWVvdXROb3RpY2Uoe1xuICAgICAgYXN5bmMgb3BlcmF0aW9uRm4oYWJvcnRTaWduYWwpIHtcbiAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgICBjb25zdCBvbGRDb250ZW50ID0gYXdhaXQgcmVhZFNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgICBpZiAob2xkQ29udGVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBoYW5kbGVNaXNzaW5nRmlsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGF3YWl0IHJlc29sdmVWYWx1ZShuZXdDb250ZW50UHJvdmlkZXIsIHsgYWJvcnRTaWduYWwsIGNvbnRlbnQ6IG9sZENvbnRlbnQgfSk7XG4gICAgICAgIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgICAgICAgaWYgKG5ld0NvbnRlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXNTdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZG9lc0ZpbGVFeGlzdCA9IGF3YWl0IGludm9rZUZpbGVBY3Rpb25TYWZlKGFwcCwgcGF0aE9yRmlsZSwgYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICAgIGF3YWl0IGFwcC52YXVsdC5wcm9jZXNzKGZpbGUsIChjb250ZW50KSA9PiB7XG4gICAgICAgICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG9sZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ1ZhdWx0OnByb2Nlc3MnKSgnQ29udGVudCBoYXMgY2hhbmdlZCBzaW5jZSBpdCB3YXMgcmVhZC4gUmV0cnlpbmcuLi4nLCB7XG4gICAgICAgICAgICAgICAgYWN0dWFsQ29udGVudDogY29udGVudCxcbiAgICAgICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IG9sZENvbnRlbnQsXG4gICAgICAgICAgICAgICAgcGF0aDogZmlsZS5wYXRoXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdDb250ZW50O1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFkb2VzRmlsZUV4aXN0KSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZU1pc3NpbmdGaWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNTdWNjZXNzO1xuXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1pc3NpbmdGaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICAgIGlmIChmdWxsT3B0aW9ucy5zaG91bGRGYWlsT25NaXNzaW5nRmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlICcke3BhdGh9JyBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMudmF1bHQucHJvY2Vzc0ZpbGUsIHsgZmlsZVBhdGg6IHBhdGggfSksXG4gICAgICByZXRyeU9wdGlvbnM6IGZ1bGxPcHRpb25zLFxuICAgICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGZ1bGxPcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgYWN0aXZlTGVhZkNoYW5nZUV2ZW50UmVmPy5lLm9mZnJlZihhY3RpdmVMZWFmQ2hhbmdlRXZlbnRSZWYpO1xuICAgIGZvciAoY29uc3QgbGVhZiBvZiBhcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShWaWV3VHlwZS5NYXJrZG93bikpIHtcbiAgICAgIGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcgJiYgbGVhZi52aWV3LmZpbGU/LnBhdGggPT09IHBhdGgpIHtcbiAgICAgICAgdW5sb2NrRWRpdG9yKGxlYWYudmlldy5lZGl0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjb250ZW50IG9mIGEgZmlsZSBzYWZlbHkgZnJvbSB0aGUgdmF1bHQuXG4gKlxuICogSXQgY292ZXJzIHRoZSBjYXNlIHdoZW4gdGhlIGZpbGUgd2FzIHJlbW92ZWQgZHVyaW5nIHRoZSByZWFkaW5nLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gcmVhZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUgb3IgYG51bGxgIGlmIHRoZSBmaWxlIGlzIG1pc3Npbmcgb3IgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTYWZlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGxldCBjb250ZW50OiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgYXdhaXQgaW52b2tlRmlsZUFjdGlvblNhZmUoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoZmlsZSkgPT4ge1xuICAgIGF3YWl0IHNhdmVOb3RlKGFwcCwgZmlsZSk7XG4gICAgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGZpbGUpO1xuICB9KTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbi8qKlxuICogUmVuYW1lcyBhIGZpbGUgc2FmZWx5IGluIHRoZSB2YXVsdC5cbiAqIElmIHRoZSBuZXcgcGF0aCBhbHJlYWR5IGV4aXN0cywgdGhlIGZpbGUgd2lsbCBiZSByZW5hbWVkIHRvIGFuIGF2YWlsYWJsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gb2xkUGF0aE9yQWJzdHJhY3RGaWxlIC0gVGhlIG9sZCBwYXRoIG9yIGZpbGUgdG8gcmVuYW1lLlxuICogQHBhcmFtIG5ld1BhdGggLSBUaGUgbmV3IHBhdGggdG8gcmVuYW1lIHRoZSBmaWxlIHRvLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHBhdGggb2YgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5hbWVTYWZlKGFwcDogQXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSwgbmV3UGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb2xkQWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlKGFwcCwgb2xkUGF0aE9yQWJzdHJhY3RGaWxlKTtcblxuICBjb25zdCBuZXdBdmFpbGFibGVQYXRoID0gZ2V0U2FmZVJlbmFtZVBhdGgoYXBwLCBvbGRQYXRoT3JBYnN0cmFjdEZpbGUsIG5ld1BhdGgpO1xuXG4gIGlmIChvbGRBYnN0cmFjdEZpbGUucGF0aC50b0xvd2VyQ2FzZSgpID09PSBuZXdBdmFpbGFibGVQYXRoLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBpZiAob2xkQWJzdHJhY3RGaWxlLnBhdGggIT09IG5ld1BhdGgpIHtcbiAgICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci5yZW5hbWVGaWxlKG9sZEFic3RyYWN0RmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xuICB9XG5cbiAgY29uc3QgbmV3Rm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgobmV3QXZhaWxhYmxlUGF0aCk7XG4gIGF3YWl0IGNyZWF0ZUZvbGRlclNhZmUoYXBwLCBuZXdGb2xkZXJQYXRoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci5yZW5hbWVGaWxlKG9sZEFic3RyYWN0RmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIWF3YWl0IGFwcC52YXVsdC5leGlzdHMobmV3QXZhaWxhYmxlUGF0aCkgfHwgYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhvbGRBYnN0cmFjdEZpbGUucGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0F2YWlsYWJsZVBhdGg7XG59XG5cbi8qKlxuICogU2F2ZXMgdGhlIHNwZWNpZmllZCBub3RlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBub3RlIHRvIGJlIHNhdmVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBub3RlIGlzIHNhdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZU5vdGUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFpc01hcmtkb3duRmlsZShhcHAsIHBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGdldFBhdGgoYXBwLCBwYXRoT3JGaWxlKTtcblxuICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoVmlld1R5cGUuTWFya2Rvd24pKSB7XG4gICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldyAmJiBsZWFmLnZpZXcuZmlsZT8ucGF0aCA9PT0gcGF0aCAmJiBsZWFmLnZpZXcuZGlydHkpIHtcbiAgICAgIGF3YWl0IGxlYWYudmlldy5zYXZlKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhc2hlcyBhbiBhYnN0cmFjdCBmaWxlIHNhZmVseSBmcm9tIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHRyYXNoLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGlzIHRyYXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cmFzaFNhZmUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGlmICghZmlsZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgYXBwLmZpbGVNYW5hZ2VyLnRyYXNoRmlsZShmaWxlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChhd2FpdCBhcHAudmF1bHQuZXhpc3RzKGZpbGUucGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuXG4gICAgZ2V0TGliRGVidWdnZXIoJ1ZhdWx0OnRyYXNoU2FmZScpKGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB0cmFzaGluZyAke2ZpbGUucGF0aH0sIGJ1dCB0aGUgZmlsZSBubyBsb25nZXIgZXhpc3RzLmAsIHsgZXJyb3I6IGUsIHBhdGg6IGZpbGUucGF0aCB9KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbnZva2VGaWxlQWN0aW9uU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgZmlsZUFjdGlvbjogKGZpbGU6IFRGaWxlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGxldCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoIWZpbGUgfHwgZmlsZS5kZWxldGVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgYXdhaXQgZmlsZUFjdGlvbihmaWxlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9B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SyxhQUFhO0FBRXpDLE1BQUk7QUFDRixVQUFNLElBQUksWUFBWSxXQUFXLGlCQUFpQixnQkFBZ0I7QUFBQSxFQUNwRSxTQUFTLEdBQUc7QUFDVixRQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLElBQUksTUFBTSxPQUFPLGdCQUFnQixJQUFJLEdBQUc7QUFDN0YsWUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUO0FBU0EsZUFBc0IsU0FBUyxLQUFVLFlBQXVDO0FBQzlFLE1BQUksQ0FBQyxlQUFlLEtBQUssVUFBVSxHQUFHO0FBQ3BDO0FBQUEsRUFDRjtBQUVBLFFBQU0sT0FBTyxRQUFRLEtBQUssVUFBVTtBQUVwQyxhQUFXLFFBQVEsSUFBSSxVQUFVLGdCQUFnQixTQUFTLFFBQVEsR0FBRztBQUNuRSxRQUFJLEtBQUssZ0JBQWdCLGdCQUFnQixLQUFLLEtBQUssTUFBTSxTQUFTLFFBQVEsS0FBSyxLQUFLLE9BQU87QUFDekYsWUFBTSxLQUFLLEtBQUssS0FBSztBQUFBLElBQ3ZCO0FBQUEsRUFDRjtBQUNGO0FBU0EsZUFBc0IsVUFBVSxLQUFVLFlBQStDO0FBQ3ZGLFFBQU0sT0FBTyxzQkFBc0IsS0FBSyxVQUFVO0FBQ2xELE1BQUksQ0FBQyxNQUFNO0FBQ1Q7QUFBQSxFQUNGO0FBRUEsTUFBSTtBQUNGLFVBQU0sSUFBSSxZQUFZLFVBQVUsSUFBSTtBQUFBLEVBQ3RDLFNBQVMsR0FBRztBQUNWLFFBQUksTUFBTSxJQUFJLE1BQU0sT0FBTyxLQUFLLElBQUksR0FBRztBQUNyQyxZQUFNO0FBQUEsSUFDUjtBQUVBLG1CQUFlLGlCQUFpQixFQUFFLG9DQUFvQyxLQUFLLElBQUksb0NBQW9DLEVBQUUsT0FBTyxHQUFHLE1BQU0sS0FBSyxLQUFLLENBQUM7QUFBQSxFQUNsSjtBQUNGO0FBRUEsZUFBZSxxQkFBcUIsS0FBVSxZQUF3QixZQUE4RDtBQUNsSSxRQUFNLE9BQU8sUUFBUSxLQUFLLFVBQVU7QUFDcEMsTUFBSSxPQUFPLGNBQWMsS0FBSyxJQUFJO0FBQ2xDLE1BQUksQ0FBQyxRQUFRLEtBQUssU0FBUztBQUN6QixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUk7QUFDRixVQUFNLFdBQVcsSUFBSTtBQUNyQixXQUFPO0FBQUEsRUFDVCxTQUFTLEdBQUc7QUFDVixXQUFPLGNBQWMsS0FBSyxJQUFJO0FBQzlCLFFBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztBQUN6QixhQUFPO0FBQUEsSUFDVDtBQUNBLFVBQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -33,4 +35,4 @@ export {
33
35
  getAllContainers,
34
36
  getAllDomWindows
35
37
  };
36
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lclxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY29udGFpbmVycyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbENvbnRhaW5lcnMoYXBwOiBBcHApOiBXb3Jrc3BhY2VDb250YWluZXJbXSB7XG4gIGNvbnN0IGNvbnRhaW5lcnMgPSBuZXcgU2V0PFdvcmtzcGFjZUNvbnRhaW5lcj4oKTtcbiAgYXBwLndvcmtzcGFjZS5pdGVyYXRlQWxsTGVhdmVzKChsZWFmKSA9PiB7XG4gICAgY29udGFpbmVycy5hZGQobGVhZi5nZXRDb250YWluZXIoKSk7XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXJzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIERPTSB3aW5kb3dzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxEb21XaW5kb3dzKGFwcDogQXBwKTogV2luZG93W10ge1xuICByZXR1cm4gZ2V0QWxsQ29udGFpbmVycyhhcHApLm1hcCgoY29udGFpbmVyKSA9PiBjb250YWluZXIud2luKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CTyxTQUFTLGlCQUFpQixLQUFnQztBQUMvRCxRQUFNLGFBQWEsb0JBQUksSUFBd0I7QUFDL0MsTUFBSSxVQUFVLGlCQUFpQixDQUFDLFNBQVM7QUFDdkMsZUFBVyxJQUFJLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDcEMsQ0FBQztBQUNELFNBQU8sTUFBTSxLQUFLLFVBQVU7QUFDOUI7QUFRTyxTQUFTLGlCQUFpQixLQUFvQjtBQUNuRCxTQUFPLGlCQUFpQixHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsVUFBVSxHQUFHO0FBQy9EOyIsCiAgIm5hbWVzIjogW10KfQo=
38
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lclxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY29udGFpbmVycyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbENvbnRhaW5lcnMoYXBwOiBBcHApOiBXb3Jrc3BhY2VDb250YWluZXJbXSB7XG4gIGNvbnN0IGNvbnRhaW5lcnMgPSBuZXcgU2V0PFdvcmtzcGFjZUNvbnRhaW5lcj4oKTtcbiAgYXBwLndvcmtzcGFjZS5pdGVyYXRlQWxsTGVhdmVzKChsZWFmKSA9PiB7XG4gICAgY29udGFpbmVycy5hZGQobGVhZi5nZXRDb250YWluZXIoKSk7XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXJzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIERPTSB3aW5kb3dzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxEb21XaW5kb3dzKGFwcDogQXBwKTogV2luZG93W10ge1xuICByZXR1cm4gZ2V0QWxsQ29udGFpbmVycyhhcHApLm1hcCgoY29udGFpbmVyKSA9PiBjb250YWluZXIud2luKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJPLFNBQVMsaUJBQWlCLEtBQWdDO0FBQy9ELFFBQU0sYUFBYSxvQkFBSSxJQUF3QjtBQUMvQyxNQUFJLFVBQVUsaUJBQWlCLENBQUMsU0FBUztBQUN2QyxlQUFXLElBQUksS0FBSyxhQUFhLENBQUM7QUFBQSxFQUNwQyxDQUFDO0FBQ0QsU0FBTyxNQUFNLEtBQUssVUFBVTtBQUM5QjtBQVFPLFNBQVMsaUJBQWlCLEtBQW9CO0FBQ25ELFNBQU8saUJBQWlCLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxVQUFVLEdBQUc7QUFDL0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -87,4 +89,4 @@ export {
87
89
  toPosixBuffer,
88
90
  toPosixPath
89
91
  };
90
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IHBvc2l4Lm5vcm1hbGl6ZTtcblxuLyoqXG4gKiBQYXJzZXMgYSBwYXRoIHN0cmluZyBpbnRvIGEgcGF0aCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhdGggb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSBwb3NpeC5wYXJzZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gb25lIHBhdGggdG8gYW5vdGhlci5cbiAqXG4gKiBAcGFyYW0gZnJvbSAtIFRoZSBzdGFydGluZyBwYXRoLlxuICogQHBhcmFtIHRvIC0gVGhlIGRlc3RpbmF0aW9uIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgcGF0aCBmcm9tIGBmcm9tYCB0byBgdG9gLlxuICovXG5leHBvcnQgY29uc3QgcmVsYXRpdmUgPSBwb3NpeC5yZWxhdGl2ZTtcblxuLyoqXG4gKiBHZXRzIHRoZSBmaWxlIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmaWxlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZShkZWNvZGVVUkkobmV3IFVSTChpbXBvcnRNZXRhVXJsKS5wYXRobmFtZSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZvbGRlciBuYW1lIGZyb20gdGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAsIGNvbnZlcnRpbmcgaXQgdG8gYSBQT1NJWC1zdHlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRNZXRhVXJsIC0gVGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmb2xkZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmb2xkZXIgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRpcm5hbWUoZ2V0RmlsZU5hbWUoaW1wb3J0TWV0YVVybCkpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgZmlsZSBuYW1lIGJ5IGFwcGVuZGluZyBhbiBleHRlbnNpb24gdG8gYSBnaXZlbiBmaWxlIG5hbWUuXG4gKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHJldHVybmVkIGFzIGlzLlxuICpcbiAqIEBwYXJhbSBmaWxlQmFzZU5hbWUgLSBUaGUgZmlsZSBuYW1lIHRvIGFwcGVuZCB0aGUgZXh0ZW5zaW9uIHRvLlxuICogQHBhcmFtIGZpbGVFeHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGFwcGVuZCB0byB0aGUgZmlsZSBuYW1lLlxuICogQHJldHVybnMgVGhlIGZpbGUgbmFtZSB3aXRoIHRoZSBleHRlbnNpb24gYXBwZW5kZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmlsZU5hbWUoZmlsZUJhc2VOYW1lOiBzdHJpbmcsIGZpbGVFeHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlRXh0ZW5zaW9uID8gYCR7ZmlsZUJhc2VOYW1lfS4ke2ZpbGVFeHRlbnNpb259YCA6IGZpbGVCYXNlTmFtZTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgZ2l2ZW4gcGF0aCBieSBlbnN1cmluZyBpdCBpcyByZWxhdGl2ZSwgYWRkaW5nIFwiLi9cIiBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLCBzdGFydGluZyB3aXRoIFwiLi9cIiBpZiBpdCB3YXMgcmVsYXRpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVJZlJlbGF0aXZlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwYXRoLmluY2x1ZGVzKCc6JykpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHJldHVybiBlbnN1cmVTdGFydHNXaXRoKHBhdGgsICcuLycpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgc2VxdWVuY2Ugb2YgcGF0aHMgb3IgcGF0aCBzZWdtZW50cyBpbnRvIGFuIGFic29sdXRlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhTZWdtZW50cyAtIFRoZSBzZXF1ZW5jZSBvZiBwYXRoIHNlZ21lbnRzIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoLi4ucGF0aFNlZ21lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGxldCBwYXRoID0gcG9zaXgucmVzb2x2ZSguLi5wYXRoU2VnbWVudHMpO1xuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIGNvbnN0IG1hdGNoID0gV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpO1xuICByZXR1cm4gbWF0Y2g/LlswXSA/PyBwYXRoO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYnVmZmVyIGNvbnRhaW5pbmcgYSBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgYnVmZmVyIGJ5IHJlcGxhY2luZyBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmQgc2xhc2hlcy5cbiAqXG4gKiBAcGFyYW0gYnVmZmVyIC0gVGhlIGJ1ZmZlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4QnVmZmVyKGJ1ZmZlcjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRvUG9zaXhQYXRoKFN0cmluZyhidWZmZXIpKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgcGF0aCBieSByZXBsYWNpbmcgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbChwYXRoLCAnXFxcXCcsICcvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxPQUFPLG9CQUFvQjtBQUUzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLE1BQU0sa0NBQWtDO0FBS2pDLE1BQU0sUUFBUSxlQUFlO0FBSzdCLE1BQU0sWUFBWSxNQUFNO0FBS3hCLE1BQU0sTUFBTSxlQUFlLE1BQU07QUFTakMsTUFBTSxXQUFXLE1BQU07QUFVdkIsTUFBTSxVQUFVLE1BQU07QUFRdEIsTUFBTSxVQUFVLE1BQU07QUFRdEIsTUFBTSxTQUFTLE1BQU07QUFRckIsU0FBUyxXQUFXLE1BQXVCO0FBQ2hELFNBQU8sTUFBTSxXQUFXLElBQUksS0FBSyxnQ0FBZ0MsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNO0FBQ3ZGO0FBUU8sTUFBTSxPQUFPLE1BQU07QUFRbkIsTUFBTSxZQUFZLE1BQU07QUFReEIsTUFBTSxRQUFRLE1BQU07QUFTcEIsTUFBTSxXQUFXLE1BQU07QUFRdkIsU0FBUyxZQUFZLGVBQStCO0FBQ3pELFNBQU8sUUFBUSxVQUFVLElBQUksSUFBSSxhQUFhLEVBQUUsUUFBUSxDQUFDO0FBQzNEO0FBUU8sU0FBUyxjQUFjLGVBQStCO0FBQzNELFNBQU8sUUFBUSxZQUFZLGFBQWEsQ0FBQztBQUMzQztBQVVPLFNBQVMsYUFBYSxjQUFzQixlQUErQjtBQUNoRixTQUFPLGdCQUFnQixHQUFHLFlBQVksSUFBSSxhQUFhLEtBQUs7QUFDOUQ7QUFRTyxTQUFTLG9CQUFvQixNQUFzQjtBQUN4RCxNQUFJLEtBQUssV0FBVyxHQUFHLEtBQUssS0FBSyxTQUFTLEdBQUcsR0FBRztBQUM5QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8saUJBQWlCLE1BQU0sSUFBSTtBQUNwQztBQVFPLFNBQVMsV0FBVyxjQUFnQztBQUN6RCxNQUFJLE9BQU8sTUFBTSxRQUFRLEdBQUcsWUFBWTtBQUN4QyxTQUFPLFlBQVksSUFBSTtBQUN2QixRQUFNLFFBQVEsZ0NBQWdDLEtBQUssSUFBSTtBQUN2RCxTQUFPLFFBQVEsQ0FBQyxLQUFLO0FBQ3ZCO0FBUU8sU0FBUyxjQUFjLFFBQXdCO0FBQ3BELFNBQU8sT0FBTyxLQUFLLFlBQVksT0FBTyxNQUFNLENBQUMsQ0FBQztBQUNoRDtBQVFPLFNBQVMsWUFBWSxNQUFzQjtBQUNoRCxTQUFPLFdBQVcsTUFBTSxNQUFNLEdBQUc7QUFDbkM7IiwKICAibmFtZXMiOiBbXQp9Cg==
92
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcGF0aHMuXG4gKi9cblxuaW1wb3J0IHBhdGhCcm93c2VyaWZ5IGZyb20gJ3BhdGgtYnJvd3NlcmlmeSc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuXG5jb25zdCBXSU5ET1dTX1BPU0lYX0xJS0VfUEFUSF9SRUdfRVhQID0gL1thLXpBLVpdOlxcL1teOl0qJC87XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgUE9TSVggcGF0aHMuXG4gKi9cbmV4cG9ydCBjb25zdCBwb3NpeCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4O1xuXG4vKipcbiAqIEEgUE9TSVggcGF0aCBkZWxpbWl0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxpbWl0ZXIgPSBwb3NpeC5kZWxpbWl0ZXI7XG5cbi8qKlxuICogQSBQT1NJWCBzZWdtZW50IHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlcCA9IHBhdGhCcm93c2VyaWZ5LnBvc2l4LnNlcDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlLCBvcHRpb25hbGx5IHJlbW92aW5nIHRoZSBmaWxlIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgYmFzZSBuYW1lIGZyb20uXG4gKiBAcGFyYW0gZXh0IC0gQW4gb3B0aW9uYWwgZXh0ZW5zaW9uIHRvIHJlbW92ZSBmcm9tIHRoZSBiYXNlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgYmFzZW5hbWUgPSBwb3NpeC5iYXNlbmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSBvZiBhIHBhdGguXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpwYXRoYCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGRpcmVjdG9yeSBuYW1lIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0b3J5IG5hbWUgb2YgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBkaXJuYW1lID0gcG9zaXguZGlybmFtZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiBhIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBnZXQgdGhlIGV4dGVuc2lvbiBmcm9tLlxuICogQHJldHVybnMgVGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgZXh0bmFtZSA9IHBvc2l4LmV4dG5hbWU7XG5cbi8qKlxuICogRm9ybWF0cyBhIHBhdGggb2JqZWN0IGludG8gYSBwYXRoIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gcGF0aE9iamVjdCAtIFRoZSBwYXRoIG9iamVjdCB0byBmb3JtYXQuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBhdGggc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0ID0gcG9zaXguZm9ybWF0O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBwYXRoIGlzIGFic29sdXRlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBvc2l4LmlzQWJzb2x1dGUocGF0aCkgfHwgV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpPy5bMF0gPT09IHBhdGg7XG59XG5cbi8qKlxuICogSm9pbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cyBpbnRvIGEgc2luZ2xlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggc2VnbWVudHMgdG8gam9pbi5cbiAqIEByZXR1cm5zIFRoZSBqb2luZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW4gPSBwb3NpeC5qb2luO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCByZXNvbHZpbmcgJy4uJyBhbmQgJy4nIHNlZ21lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IHBvc2l4Lm5vcm1hbGl6ZTtcblxuLyoqXG4gKiBQYXJzZXMgYSBwYXRoIHN0cmluZyBpbnRvIGEgcGF0aCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhdGggb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSBwb3NpeC5wYXJzZTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gb25lIHBhdGggdG8gYW5vdGhlci5cbiAqXG4gKiBAcGFyYW0gZnJvbSAtIFRoZSBzdGFydGluZyBwYXRoLlxuICogQHBhcmFtIHRvIC0gVGhlIGRlc3RpbmF0aW9uIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgcGF0aCBmcm9tIGBmcm9tYCB0byBgdG9gLlxuICovXG5leHBvcnQgY29uc3QgcmVsYXRpdmUgPSBwb3NpeC5yZWxhdGl2ZTtcblxuLyoqXG4gKiBHZXRzIHRoZSBmaWxlIG5hbWUgZnJvbSB0aGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCwgY29udmVydGluZyBpdCB0byBhIFBPU0lYLXN0eWxlIHBhdGguXG4gKlxuICogQHBhcmFtIGltcG9ydE1ldGFVcmwgLSBUaGUgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmaWxlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZShpbXBvcnRNZXRhVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZShkZWNvZGVVUkkobmV3IFVSTChpbXBvcnRNZXRhVXJsKS5wYXRobmFtZSkpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZvbGRlciBuYW1lIGZyb20gdGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAsIGNvbnZlcnRpbmcgaXQgdG8gYSBQT1NJWC1zdHlsZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBpbXBvcnRNZXRhVXJsIC0gVGhlIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmb2xkZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBQT1NJWC1zdHlsZSBmb2xkZXIgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck5hbWUoaW1wb3J0TWV0YVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRpcm5hbWUoZ2V0RmlsZU5hbWUoaW1wb3J0TWV0YVVybCkpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgZmlsZSBuYW1lIGJ5IGFwcGVuZGluZyBhbiBleHRlbnNpb24gdG8gYSBnaXZlbiBmaWxlIG5hbWUuXG4gKiBJZiB0aGUgZXh0ZW5zaW9uIGlzIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHJldHVybmVkIGFzIGlzLlxuICpcbiAqIEBwYXJhbSBmaWxlQmFzZU5hbWUgLSBUaGUgZmlsZSBuYW1lIHRvIGFwcGVuZCB0aGUgZXh0ZW5zaW9uIHRvLlxuICogQHBhcmFtIGZpbGVFeHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGFwcGVuZCB0byB0aGUgZmlsZSBuYW1lLlxuICogQHJldHVybnMgVGhlIGZpbGUgbmFtZSB3aXRoIHRoZSBleHRlbnNpb24gYXBwZW5kZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmlsZU5hbWUoZmlsZUJhc2VOYW1lOiBzdHJpbmcsIGZpbGVFeHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlRXh0ZW5zaW9uID8gYCR7ZmlsZUJhc2VOYW1lfS4ke2ZpbGVFeHRlbnNpb259YCA6IGZpbGVCYXNlTmFtZTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgZ2l2ZW4gcGF0aCBieSBlbnN1cmluZyBpdCBpcyByZWxhdGl2ZSwgYWRkaW5nIFwiLi9cIiBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLCBzdGFydGluZyB3aXRoIFwiLi9cIiBpZiBpdCB3YXMgcmVsYXRpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVJZlJlbGF0aXZlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwYXRoLmluY2x1ZGVzKCc6JykpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHJldHVybiBlbnN1cmVTdGFydHNXaXRoKHBhdGgsICcuLycpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgc2VxdWVuY2Ugb2YgcGF0aHMgb3IgcGF0aCBzZWdtZW50cyBpbnRvIGFuIGFic29sdXRlIHBhdGguXG4gKlxuICogQHBhcmFtIHBhdGhTZWdtZW50cyAtIFRoZSBzZXF1ZW5jZSBvZiBwYXRoIHNlZ21lbnRzIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoLi4ucGF0aFNlZ21lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGxldCBwYXRoID0gcG9zaXgucmVzb2x2ZSguLi5wYXRoU2VnbWVudHMpO1xuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIGNvbnN0IG1hdGNoID0gV0lORE9XU19QT1NJWF9MSUtFX1BBVEhfUkVHX0VYUC5leGVjKHBhdGgpO1xuICByZXR1cm4gbWF0Y2g/LlswXSA/PyBwYXRoO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYnVmZmVyIGNvbnRhaW5pbmcgYSBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgYnVmZmVyIGJ5IHJlcGxhY2luZyBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmQgc2xhc2hlcy5cbiAqXG4gKiBAcGFyYW0gYnVmZmVyIC0gVGhlIGJ1ZmZlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBuZXcgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4QnVmZmVyKGJ1ZmZlcjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRvUG9zaXhQYXRoKFN0cmluZyhidWZmZXIpKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBwYXRoIHRvIGEgUE9TSVgtc3R5bGUgcGF0aCBieSByZXBsYWNpbmcgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIFBPU0lYLXN0eWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbChwYXRoLCAnXFxcXCcsICcvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sb0JBQW9CO0FBRTNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsTUFBTSxrQ0FBa0M7QUFLakMsTUFBTSxRQUFRLGVBQWU7QUFLN0IsTUFBTSxZQUFZLE1BQU07QUFLeEIsTUFBTSxNQUFNLGVBQWUsTUFBTTtBQVNqQyxNQUFNLFdBQVcsTUFBTTtBQVV2QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFVBQVUsTUFBTTtBQVF0QixNQUFNLFNBQVMsTUFBTTtBQVFyQixTQUFTLFdBQVcsTUFBdUI7QUFDaEQsU0FBTyxNQUFNLFdBQVcsSUFBSSxLQUFLLGdDQUFnQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07QUFDdkY7QUFRTyxNQUFNLE9BQU8sTUFBTTtBQVFuQixNQUFNLFlBQVksTUFBTTtBQVF4QixNQUFNLFFBQVEsTUFBTTtBQVNwQixNQUFNLFdBQVcsTUFBTTtBQVF2QixTQUFTLFlBQVksZUFBK0I7QUFDekQsU0FBTyxRQUFRLFVBQVUsSUFBSSxJQUFJLGFBQWEsRUFBRSxRQUFRLENBQUM7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsZUFBK0I7QUFDM0QsU0FBTyxRQUFRLFlBQVksYUFBYSxDQUFDO0FBQzNDO0FBVU8sU0FBUyxhQUFhLGNBQXNCLGVBQStCO0FBQ2hGLFNBQU8sZ0JBQWdCLEdBQUcsWUFBWSxJQUFJLGFBQWEsS0FBSztBQUM5RDtBQVFPLFNBQVMsb0JBQW9CLE1BQXNCO0FBQ3hELE1BQUksS0FBSyxXQUFXLEdBQUcsS0FBSyxLQUFLLFNBQVMsR0FBRyxHQUFHO0FBQzlDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxpQkFBaUIsTUFBTSxJQUFJO0FBQ3BDO0FBUU8sU0FBUyxXQUFXLGNBQWdDO0FBQ3pELE1BQUksT0FBTyxNQUFNLFFBQVEsR0FBRyxZQUFZO0FBQ3hDLFNBQU8sWUFBWSxJQUFJO0FBQ3ZCLFFBQU0sUUFBUSxnQ0FBZ0MsS0FBSyxJQUFJO0FBQ3ZELFNBQU8sUUFBUSxDQUFDLEtBQUs7QUFDdkI7QUFRTyxTQUFTLGNBQWMsUUFBd0I7QUFDcEQsU0FBTyxPQUFPLEtBQUssWUFBWSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQ2hEO0FBUU8sU0FBUyxZQUFZLE1BQXNCO0FBQ2hELFNBQU8sV0FBVyxNQUFNLE1BQU0sR0FBRztBQUNuQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -140,4 +142,4 @@ export {
140
142
  isValidRegExp,
141
143
  oneOf
142
144
  };
143
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlZy1leHAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG4gKiBBIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgbXVsdGlwbGUgcmVnZXggZmxhZ3MgaW50byBvbmUgYWx0ZXJuYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbGwgcmVnZXhlcy5cbiAgICovXG4gIEludGVyc2VjdCA9ICdJbnRlcnNlY3QnLFxuICAvKipcbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlZ2V4ZXMgaGF2ZSBjb25mbGljdGluZyBmbGFncy5cbiAgICovXG4gIFRocm93ID0gJ1Rocm93JyxcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbnkgcmVnZXguXG4gICAqL1xuICBVbmlvbiA9ICdVbmlvbidcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB0byBzYWZlbHkgdXNlIGl0IHdpdGhpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgcHJlZml4ZWQgd2l0aCBhIGJhY2tzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIE5PVEU6IFdlIGNhbid0IHVzZSBgcmVwbGFjZUFsbCgpYCBmcm9tIGBTdHJpbmcudHNgIGhlcmUgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cbiAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSZWdFeHAoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBuZXcgUmVnRXhwKHN0cik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNGbGFnKHJlZ0V4cDogUmVnRXhwLCBmbGFnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlZ0V4cC5mbGFncy5pbmNsdWRlcyhmbGFnKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkUGlja0ZsYWcocmVnRXhwczogUmVnRXhwW10sIGZsYWc6IHN0cmluZywgc3RyYXRlZ3k6IFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5KTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvdW50ID0gcmVnRXhwcy5maWx0ZXIoKHJlZ0V4cCkgPT4gaGFzRmxhZyhyZWdFeHAsIGZsYWcpKS5sZW5ndGg7XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBjb3VudHMgdGhlIGltcGxpY2l0IGRlZmF1bHQgYnJhbmNoIGFzIHVuY292ZXJlZCBldmVuIHdoZW4gYWxsIGVudW0gY2FzZXMgYXJlIGhhbmRsZWQuICovXG4gIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuSW50ZXJzZWN0OlxuICAgICAgcmV0dXJuIGNvdW50ID09PSByZWdFeHBzLmxlbmd0aDtcbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5VbmlvbjpcbiAgICAgIHJldHVybiBjb3VudCA+IDA7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgIGFzc2VydChmYWxzZSwgYEludmFsaWQgc3RyYXRlZ3k6ICR7c3RyYXRlZ3kgYXMgc3RyaW5nfWApO1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxuXG4gIGNvbnN0IGFsbFNhbWUgPSBjb3VudCA9PT0gMCB8fCBjb3VudCA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gIGlmICghYWxsU2FtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmxpY3RpbmcgZmxhZyAnJHtmbGFnfScgYWNyb3NzIHBhdHRlcm5zLmApO1xuICB9XG4gIHJldHVybiBjb3VudCA9PT0gcmVnRXhwcy5sZW5ndGg7XG59XG5cbi8qKlxuICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBhbHdheXMgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFMV0FZU19NQVRDSF9SRUdfRVhQID0gLyg/OikvO1xuXG4vKipcbiAqIEEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgbmV2ZXIgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVkVSX01BVENIX1JFR19FWFAgPSAvLl4vO1xuXG4vKipcbiAqIENvbWJpbmUgbXVsdGlwbGUgcmVnZXhlcyBpbnRvIG9uZSBhbHRlcm5hdGlvbiwgaGFuZGxpbmcgZmxhZ3MuXG4gKlxuICogQHBhcmFtIHJlZ0V4cHMgLSBUaGUgcmVnZXhlcyB0byBjb21iaW5lLlxuICogQHBhcmFtIHN0cmF0ZWd5IC0gVGhlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgZmxhZ3MgKGRlZmF1bHQ6IGBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd2ApLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIHJlZ2V4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25lT2YoXG4gIHJlZ0V4cHM6IFJlZ0V4cFtdLFxuICBzdHJhdGVneTogUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kgPSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd1xuKTogUmVnRXhwIHtcbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEFMV0FZU19NQVRDSF9SRUdfRVhQO1xuICB9XG5cbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAxICYmIHJlZ0V4cHNbMF0gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZWdFeHBzWzBdO1xuICB9XG5cbiAgY29uc3Qgc291cmNlID0gcmVnRXhwcy5tYXAoKHJlZ0V4cCkgPT4gYCg/OiR7cmVnRXhwLnNvdXJjZX0pYCkuam9pbignfCcpO1xuXG4gIGNvbnN0IGZpbmFsRmxhZ3MgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgYWRkU2VtYW50aWNGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzLCBzdHJhdGVneSk7XG4gIGFkZFVuaWNvZGVGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzLCBzdHJhdGVneSk7XG4gIGFkZE1ldGFGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzKTtcblxuICByZXR1cm4gbmV3IFJlZ0V4cChzb3VyY2UsIFsuLi5maW5hbEZsYWdzXS5qb2luKCcnKSk7XG59XG5cbmZ1bmN0aW9uIGFkZE1ldGFGbGFncyhmaW5hbEZsYWdzOiBTZXQ8c3RyaW5nPiwgcmVnRXhwczogUmVnRXhwW10pOiB2b2lkIHtcbiAgY29uc3QgTUVUQV9GTEFHUyA9IFsnZycsICdkJ107XG4gIGZvciAoY29uc3QgZmxhZyBvZiBNRVRBX0ZMQUdTKSB7XG4gICAgaWYgKHJlZ0V4cHMuc29tZSgocmVnRXhwKSA9PiBoYXNGbGFnKHJlZ0V4cCwgZmxhZykpKSB7XG4gICAgICBmaW5hbEZsYWdzLmFkZChmbGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU2VtYW50aWNGbGFncyhcbiAgZmluYWxGbGFnczogU2V0PHN0cmluZz4sXG4gIHJlZ0V4cHM6IFJlZ0V4cFtdLFxuICBzdHJhdGVneTogUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbik6IHZvaWQge1xuICBjb25zdCBTRU1BTlRJQ19GTEFHUyA9IFsnaScsICdtJywgJ3MnLCAneSddO1xuICBmb3IgKGNvbnN0IGZsYWcgb2YgU0VNQU5USUNfRkxBR1MpIHtcbiAgICBpZiAoc2hvdWxkUGlja0ZsYWcocmVnRXhwcywgZmxhZywgc3RyYXRlZ3kpKSB7XG4gICAgICBmaW5hbEZsYWdzLmFkZChmbGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVW5pY29kZUZsYWdzKFxuICBmaW5hbEZsYWdzOiBTZXQ8c3RyaW5nPixcbiAgcmVnRXhwczogUmVnRXhwW10sXG4gIHN0cmF0ZWd5OiBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneVxuKTogdm9pZCB7XG4gIGNvbnN0IGNvdW50VSA9IHJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndScpKS5sZW5ndGg7XG4gIGNvbnN0IGNvdW50ViA9IHJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndicpKS5sZW5ndGg7XG5cbiAgbGV0IHNob3VsZFVzZVVGbGFnOiBib29sZWFuO1xuICBsZXQgc2hvdWxkVXNlVkZsYWc6IGJvb2xlYW47XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIHY4IGNvdW50cyB0aGUgaW1wbGljaXQgZGVmYXVsdCBicmFuY2ggYXMgdW5jb3ZlcmVkIGV2ZW4gd2hlbiBhbGwgZW51bSBjYXNlcyBhcmUgaGFuZGxlZC4gKi9cbiAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5JbnRlcnNlY3Q6XG4gICAgICBzaG91bGRVc2VVRmxhZyA9IGNvdW50VSA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBzaG91bGRVc2VWRmxhZyA9IGNvdW50ViA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OiB7XG4gICAgICBjb25zdCBhbGxVID0gY291bnRVID09PSByZWdFeHBzLmxlbmd0aDtcbiAgICAgIGNvbnN0IG5vbmVVID0gY291bnRVID09PSAwO1xuICAgICAgY29uc3QgYWxsViA9IGNvdW50ViA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBjb25zdCBub25lViA9IGNvdW50ViA9PT0gMDtcblxuICAgICAgaWYgKCEoYWxsVSB8fCBub25lVSkgfHwgIShhbGxWIHx8IG5vbmVWKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZsaWN0aW5nIFxcJ3VcXCcvXFwndlxcJyBmbGFncyBhY3Jvc3MgcGF0dGVybnMuJyk7XG4gICAgICB9XG5cbiAgICAgIHNob3VsZFVzZVVGbGFnID0gYWxsVTtcbiAgICAgIHNob3VsZFVzZVZGbGFnID0gYWxsVjtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlVuaW9uOlxuICAgICAgc2hvdWxkVXNlVUZsYWcgPSBjb3VudFUgPiAwO1xuICAgICAgc2hvdWxkVXNlVkZsYWcgPSBjb3VudFYgPiAwO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgIGFzc2VydChmYWxzZSwgYEludmFsaWQgc3RyYXRlZ3k6ICR7c3RyYXRlZ3kgYXMgc3RyaW5nfWApO1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxuXG4gIGlmIChzaG91bGRVc2VVRmxhZyAmJiBzaG91bGRVc2VWRmxhZykge1xuICAgIGFzc2VydChzdHJhdGVneSAhPT0gUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVGhyb3csICdDYW5ub3QgY29tYmluZSBib3RoIFxcJ3VcXCcvXFwndlxcJyBmbGFncyBpbiBvbmUgUmVnRXhwLicpO1xuICAgIHNob3VsZFVzZVVGbGFnID0gZmFsc2U7XG4gIH1cblxuICBpZiAoc2hvdWxkVXNlVUZsYWcpIHtcbiAgICBmaW5hbEZsYWdzLmFkZCgndScpO1xuICB9XG4gIGlmIChzaG91bGRVc2VWRmxhZykge1xuICAgIGZpbmFsRmxhZ3MuYWRkKCd2Jyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsY0FBYztBQUtoQixJQUFLLG1DQUFMLGtCQUFLQSxzQ0FBTDtBQUlMLEVBQUFBLGtDQUFBLGVBQVk7QUFJWixFQUFBQSxrQ0FBQSxXQUFRO0FBSVIsRUFBQUEsa0NBQUEsV0FBUTtBQVpFLFNBQUFBO0FBQUEsR0FBQTtBQXFCTCxTQUFTLGFBQWEsS0FBcUI7QUFFaEQsU0FBTyxJQUFJLFdBQVcsdUJBQXVCLE1BQU07QUFDckQ7QUFRTyxTQUFTLGNBQWMsS0FBc0I7QUFDbEQsTUFBSTtBQUNGLFFBQUksT0FBTyxHQUFHO0FBQ2QsV0FBTztBQUFBLEVBQ1QsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFFQSxTQUFTLFFBQVEsUUFBZ0IsTUFBdUI7QUFDdEQsU0FBTyxPQUFPLE1BQU0sU0FBUyxJQUFJO0FBQ25DO0FBRUEsU0FBUyxlQUFlLFNBQW1CLE1BQWMsVUFBcUQ7QUFDNUcsUUFBTSxRQUFRLFFBQVEsT0FBTyxDQUFDLFdBQVcsUUFBUSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBRWhFLFVBQVEsVUFBVTtBQUFBO0FBQUEsSUFFaEIsS0FBSztBQUNILGFBQU8sVUFBVSxRQUFRO0FBQUEsSUFDM0IsS0FBSztBQUNIO0FBQUEsSUFDRixLQUFLO0FBQ0gsYUFBTyxRQUFRO0FBQUEsSUFDakI7QUFFRSxhQUFPLE9BQU8scUJBQXFCLFFBQWtCLEVBQUU7QUFBQSxFQUUzRDtBQUVBLFFBQU0sVUFBVSxVQUFVLEtBQUssVUFBVSxRQUFRO0FBQ2pELE1BQUksQ0FBQyxTQUFTO0FBQ1osVUFBTSxJQUFJLE1BQU0scUJBQXFCLElBQUksb0JBQW9CO0FBQUEsRUFDL0Q7QUFDQSxTQUFPLFVBQVUsUUFBUTtBQUMzQjtBQUtPLE1BQU0sdUJBQXVCO0FBSzdCLE1BQU0sc0JBQXNCO0FBUzVCLFNBQVMsTUFDZCxTQUNBLFdBQTZDLHFCQUNyQztBQUNSLE1BQUksUUFBUSxXQUFXLEdBQUc7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLFFBQVEsV0FBVyxLQUFLLFFBQVEsQ0FBQyxNQUFNLFFBQVc7QUFDcEQsV0FBTyxRQUFRLENBQUM7QUFBQSxFQUNsQjtBQUVBLFFBQU0sU0FBUyxRQUFRLElBQUksQ0FBQyxXQUFXLE1BQU0sT0FBTyxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUc7QUFFdkUsUUFBTSxhQUFhLG9CQUFJLElBQVk7QUFDbkMsbUJBQWlCLFlBQVksU0FBUyxRQUFRO0FBQzlDLGtCQUFnQixZQUFZLFNBQVMsUUFBUTtBQUM3QyxlQUFhLFlBQVksT0FBTztBQUVoQyxTQUFPLElBQUksT0FBTyxRQUFRLENBQUMsR0FBRyxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDcEQ7QUFFQSxTQUFTLGFBQWEsWUFBeUIsU0FBeUI7QUFDdEUsUUFBTSxhQUFhLENBQUMsS0FBSyxHQUFHO0FBQzVCLGFBQVcsUUFBUSxZQUFZO0FBQzdCLFFBQUksUUFBUSxLQUFLLENBQUMsV0FBVyxRQUFRLFFBQVEsSUFBSSxDQUFDLEdBQUc7QUFDbkQsaUJBQVcsSUFBSSxJQUFJO0FBQUEsSUFDckI7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLGlCQUNQLFlBQ0EsU0FDQSxVQUNNO0FBQ04sUUFBTSxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssS0FBSyxHQUFHO0FBQzFDLGFBQVcsUUFBUSxnQkFBZ0I7QUFDakMsUUFBSSxlQUFlLFNBQVMsTUFBTSxRQUFRLEdBQUc7QUFDM0MsaUJBQVcsSUFBSSxJQUFJO0FBQUEsSUFDckI7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLGdCQUNQLFlBQ0EsU0FDQSxVQUNNO0FBQ04sUUFBTSxTQUFTLFFBQVEsT0FBTyxDQUFDLFdBQVcsUUFBUSxRQUFRLEdBQUcsQ0FBQyxFQUFFO0FBQ2hFLFFBQU0sU0FBUyxRQUFRLE9BQU8sQ0FBQyxXQUFXLFFBQVEsUUFBUSxHQUFHLENBQUMsRUFBRTtBQUVoRSxNQUFJO0FBQ0osTUFBSTtBQUdKLFVBQVEsVUFBVTtBQUFBO0FBQUEsSUFFaEIsS0FBSztBQUNILHVCQUFpQixXQUFXLFFBQVE7QUFDcEMsdUJBQWlCLFdBQVcsUUFBUTtBQUNwQztBQUFBLElBQ0YsS0FBSyxxQkFBd0M7QUFDM0MsWUFBTSxPQUFPLFdBQVcsUUFBUTtBQUNoQyxZQUFNLFFBQVEsV0FBVztBQUN6QixZQUFNLE9BQU8sV0FBVyxRQUFRO0FBQ2hDLFlBQU0sUUFBUSxXQUFXO0FBRXpCLFVBQUksRUFBRSxRQUFRLFVBQVUsRUFBRSxRQUFRLFFBQVE7QUFDeEMsY0FBTSxJQUFJLE1BQU0sNENBQWdEO0FBQUEsTUFDbEU7QUFFQSx1QkFBaUI7QUFDakIsdUJBQWlCO0FBQ2pCO0FBQUEsSUFDRjtBQUFBLElBQ0EsS0FBSztBQUNILHVCQUFpQixTQUFTO0FBQzFCLHVCQUFpQixTQUFTO0FBQzFCO0FBQUEsSUFDRjtBQUVFLGFBQU8sT0FBTyxxQkFBcUIsUUFBa0IsRUFBRTtBQUFBLEVBRTNEO0FBRUEsTUFBSSxrQkFBa0IsZ0JBQWdCO0FBQ3BDLFdBQU8sYUFBYSxxQkFBd0Msa0RBQXNEO0FBQ2xILHFCQUFpQjtBQUFBLEVBQ25CO0FBRUEsTUFBSSxnQkFBZ0I7QUFDbEIsZUFBVyxJQUFJLEdBQUc7QUFBQSxFQUNwQjtBQUNBLE1BQUksZ0JBQWdCO0FBQ2xCLGVBQVcsSUFBSSxHQUFHO0FBQUEsRUFDcEI7QUFDRjsiLAogICJuYW1lcyI6IFsiUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kiXQp9Cg==
145
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlZy1leHAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG4gKiBBIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgbXVsdGlwbGUgcmVnZXggZmxhZ3MgaW50byBvbmUgYWx0ZXJuYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbGwgcmVnZXhlcy5cbiAgICovXG4gIEludGVyc2VjdCA9ICdJbnRlcnNlY3QnLFxuICAvKipcbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlZ2V4ZXMgaGF2ZSBjb25mbGljdGluZyBmbGFncy5cbiAgICovXG4gIFRocm93ID0gJ1Rocm93JyxcbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgZmxhZ3MgcHJlc2VudCBpbiBhbnkgcmVnZXguXG4gICAqL1xuICBVbmlvbiA9ICdVbmlvbidcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB0byBzYWZlbHkgdXNlIGl0IHdpdGhpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgcHJlZml4ZWQgd2l0aCBhIGJhY2tzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIE5PVEU6IFdlIGNhbid0IHVzZSBgcmVwbGFjZUFsbCgpYCBmcm9tIGBTdHJpbmcudHNgIGhlcmUgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cbiAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSZWdFeHAoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBuZXcgUmVnRXhwKHN0cik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNGbGFnKHJlZ0V4cDogUmVnRXhwLCBmbGFnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlZ0V4cC5mbGFncy5pbmNsdWRlcyhmbGFnKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkUGlja0ZsYWcocmVnRXhwczogUmVnRXhwW10sIGZsYWc6IHN0cmluZywgc3RyYXRlZ3k6IFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5KTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvdW50ID0gcmVnRXhwcy5maWx0ZXIoKHJlZ0V4cCkgPT4gaGFzRmxhZyhyZWdFeHAsIGZsYWcpKS5sZW5ndGg7XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBjb3VudHMgdGhlIGltcGxpY2l0IGRlZmF1bHQgYnJhbmNoIGFzIHVuY292ZXJlZCBldmVuIHdoZW4gYWxsIGVudW0gY2FzZXMgYXJlIGhhbmRsZWQuICovXG4gIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGNhc2UgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuSW50ZXJzZWN0OlxuICAgICAgcmV0dXJuIGNvdW50ID09PSByZWdFeHBzLmxlbmd0aDtcbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5VbmlvbjpcbiAgICAgIHJldHVybiBjb3VudCA+IDA7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgIGFzc2VydChmYWxzZSwgYEludmFsaWQgc3RyYXRlZ3k6ICR7c3RyYXRlZ3kgYXMgc3RyaW5nfWApO1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxuXG4gIGNvbnN0IGFsbFNhbWUgPSBjb3VudCA9PT0gMCB8fCBjb3VudCA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gIGlmICghYWxsU2FtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmxpY3RpbmcgZmxhZyAnJHtmbGFnfScgYWNyb3NzIHBhdHRlcm5zLmApO1xuICB9XG4gIHJldHVybiBjb3VudCA9PT0gcmVnRXhwcy5sZW5ndGg7XG59XG5cbi8qKlxuICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBhbHdheXMgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFMV0FZU19NQVRDSF9SRUdfRVhQID0gLyg/OikvO1xuXG4vKipcbiAqIEEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgbmV2ZXIgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVkVSX01BVENIX1JFR19FWFAgPSAvLl4vO1xuXG4vKipcbiAqIENvbWJpbmUgbXVsdGlwbGUgcmVnZXhlcyBpbnRvIG9uZSBhbHRlcm5hdGlvbiwgaGFuZGxpbmcgZmxhZ3MuXG4gKlxuICogQHBhcmFtIHJlZ0V4cHMgLSBUaGUgcmVnZXhlcyB0byBjb21iaW5lLlxuICogQHBhcmFtIHN0cmF0ZWd5IC0gVGhlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIG1lcmdpbmcgZmxhZ3MgKGRlZmF1bHQ6IGBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd2ApLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIHJlZ2V4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25lT2YoXG4gIHJlZ0V4cHM6IFJlZ0V4cFtdLFxuICBzdHJhdGVneTogUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kgPSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5UaHJvd1xuKTogUmVnRXhwIHtcbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEFMV0FZU19NQVRDSF9SRUdfRVhQO1xuICB9XG5cbiAgaWYgKHJlZ0V4cHMubGVuZ3RoID09PSAxICYmIHJlZ0V4cHNbMF0gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZWdFeHBzWzBdO1xuICB9XG5cbiAgY29uc3Qgc291cmNlID0gcmVnRXhwcy5tYXAoKHJlZ0V4cCkgPT4gYCg/OiR7cmVnRXhwLnNvdXJjZX0pYCkuam9pbignfCcpO1xuXG4gIGNvbnN0IGZpbmFsRmxhZ3MgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgYWRkU2VtYW50aWNGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzLCBzdHJhdGVneSk7XG4gIGFkZFVuaWNvZGVGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzLCBzdHJhdGVneSk7XG4gIGFkZE1ldGFGbGFncyhmaW5hbEZsYWdzLCByZWdFeHBzKTtcblxuICByZXR1cm4gbmV3IFJlZ0V4cChzb3VyY2UsIFsuLi5maW5hbEZsYWdzXS5qb2luKCcnKSk7XG59XG5cbmZ1bmN0aW9uIGFkZE1ldGFGbGFncyhmaW5hbEZsYWdzOiBTZXQ8c3RyaW5nPiwgcmVnRXhwczogUmVnRXhwW10pOiB2b2lkIHtcbiAgY29uc3QgTUVUQV9GTEFHUyA9IFsnZycsICdkJ107XG4gIGZvciAoY29uc3QgZmxhZyBvZiBNRVRBX0ZMQUdTKSB7XG4gICAgaWYgKHJlZ0V4cHMuc29tZSgocmVnRXhwKSA9PiBoYXNGbGFnKHJlZ0V4cCwgZmxhZykpKSB7XG4gICAgICBmaW5hbEZsYWdzLmFkZChmbGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU2VtYW50aWNGbGFncyhcbiAgZmluYWxGbGFnczogU2V0PHN0cmluZz4sXG4gIHJlZ0V4cHM6IFJlZ0V4cFtdLFxuICBzdHJhdGVneTogUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbik6IHZvaWQge1xuICBjb25zdCBTRU1BTlRJQ19GTEFHUyA9IFsnaScsICdtJywgJ3MnLCAneSddO1xuICBmb3IgKGNvbnN0IGZsYWcgb2YgU0VNQU5USUNfRkxBR1MpIHtcbiAgICBpZiAoc2hvdWxkUGlja0ZsYWcocmVnRXhwcywgZmxhZywgc3RyYXRlZ3kpKSB7XG4gICAgICBmaW5hbEZsYWdzLmFkZChmbGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVW5pY29kZUZsYWdzKFxuICBmaW5hbEZsYWdzOiBTZXQ8c3RyaW5nPixcbiAgcmVnRXhwczogUmVnRXhwW10sXG4gIHN0cmF0ZWd5OiBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneVxuKTogdm9pZCB7XG4gIGNvbnN0IGNvdW50VSA9IHJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndScpKS5sZW5ndGg7XG4gIGNvbnN0IGNvdW50ViA9IHJlZ0V4cHMuZmlsdGVyKChyZWdFeHApID0+IGhhc0ZsYWcocmVnRXhwLCAndicpKS5sZW5ndGg7XG5cbiAgbGV0IHNob3VsZFVzZVVGbGFnOiBib29sZWFuO1xuICBsZXQgc2hvdWxkVXNlVkZsYWc6IGJvb2xlYW47XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIHY4IGNvdW50cyB0aGUgaW1wbGljaXQgZGVmYXVsdCBicmFuY2ggYXMgdW5jb3ZlcmVkIGV2ZW4gd2hlbiBhbGwgZW51bSBjYXNlcyBhcmUgaGFuZGxlZC4gKi9cbiAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY2FzZSBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneS5JbnRlcnNlY3Q6XG4gICAgICBzaG91bGRVc2VVRmxhZyA9IGNvdW50VSA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBzaG91bGRVc2VWRmxhZyA9IGNvdW50ViA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlRocm93OiB7XG4gICAgICBjb25zdCBhbGxVID0gY291bnRVID09PSByZWdFeHBzLmxlbmd0aDtcbiAgICAgIGNvbnN0IG5vbmVVID0gY291bnRVID09PSAwO1xuICAgICAgY29uc3QgYWxsViA9IGNvdW50ViA9PT0gcmVnRXhwcy5sZW5ndGg7XG4gICAgICBjb25zdCBub25lViA9IGNvdW50ViA9PT0gMDtcblxuICAgICAgaWYgKCEoYWxsVSB8fCBub25lVSkgfHwgIShhbGxWIHx8IG5vbmVWKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZsaWN0aW5nIFxcJ3VcXCcvXFwndlxcJyBmbGFncyBhY3Jvc3MgcGF0dGVybnMuJyk7XG4gICAgICB9XG5cbiAgICAgIHNob3VsZFVzZVVGbGFnID0gYWxsVTtcbiAgICAgIHNob3VsZFVzZVZGbGFnID0gYWxsVjtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5LlVuaW9uOlxuICAgICAgc2hvdWxkVXNlVUZsYWcgPSBjb3VudFUgPiAwO1xuICAgICAgc2hvdWxkVXNlVkZsYWcgPSBjb3VudFYgPiAwO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgIGFzc2VydChmYWxzZSwgYEludmFsaWQgc3RyYXRlZ3k6ICR7c3RyYXRlZ3kgYXMgc3RyaW5nfWApO1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxuXG4gIGlmIChzaG91bGRVc2VVRmxhZyAmJiBzaG91bGRVc2VWRmxhZykge1xuICAgIGFzc2VydChzdHJhdGVneSAhPT0gUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3kuVGhyb3csICdDYW5ub3QgY29tYmluZSBib3RoIFxcJ3VcXCcvXFwndlxcJyBmbGFncyBpbiBvbmUgUmVnRXhwLicpO1xuICAgIHNob3VsZFVzZVVGbGFnID0gZmFsc2U7XG4gIH1cblxuICBpZiAoc2hvdWxkVXNlVUZsYWcpIHtcbiAgICBmaW5hbEZsYWdzLmFkZCgndScpO1xuICB9XG4gIGlmIChzaG91bGRVc2VWRmxhZykge1xuICAgIGZpbmFsRmxhZ3MuYWRkKCd2Jyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxjQUFjO0FBS2hCLElBQUssbUNBQUwsa0JBQUtBLHNDQUFMO0FBSUwsRUFBQUEsa0NBQUEsZUFBWTtBQUlaLEVBQUFBLGtDQUFBLFdBQVE7QUFJUixFQUFBQSxrQ0FBQSxXQUFRO0FBWkUsU0FBQUE7QUFBQSxHQUFBO0FBcUJMLFNBQVMsYUFBYSxLQUFxQjtBQUVoRCxTQUFPLElBQUksV0FBVyx1QkFBdUIsTUFBTTtBQUNyRDtBQVFPLFNBQVMsY0FBYyxLQUFzQjtBQUNsRCxNQUFJO0FBQ0YsUUFBSSxPQUFPLEdBQUc7QUFDZCxXQUFPO0FBQUEsRUFDVCxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLFNBQVMsUUFBUSxRQUFnQixNQUF1QjtBQUN0RCxTQUFPLE9BQU8sTUFBTSxTQUFTLElBQUk7QUFDbkM7QUFFQSxTQUFTLGVBQWUsU0FBbUIsTUFBYyxVQUFxRDtBQUM1RyxRQUFNLFFBQVEsUUFBUSxPQUFPLENBQUMsV0FBVyxRQUFRLFFBQVEsSUFBSSxDQUFDLEVBQUU7QUFFaEUsVUFBUSxVQUFVO0FBQUE7QUFBQSxJQUVoQixLQUFLO0FBQ0gsYUFBTyxVQUFVLFFBQVE7QUFBQSxJQUMzQixLQUFLO0FBQ0g7QUFBQSxJQUNGLEtBQUs7QUFDSCxhQUFPLFFBQVE7QUFBQSxJQUNqQjtBQUVFLGFBQU8sT0FBTyxxQkFBcUIsUUFBa0IsRUFBRTtBQUFBLEVBRTNEO0FBRUEsUUFBTSxVQUFVLFVBQVUsS0FBSyxVQUFVLFFBQVE7QUFDakQsTUFBSSxDQUFDLFNBQVM7QUFDWixVQUFNLElBQUksTUFBTSxxQkFBcUIsSUFBSSxvQkFBb0I7QUFBQSxFQUMvRDtBQUNBLFNBQU8sVUFBVSxRQUFRO0FBQzNCO0FBS08sTUFBTSx1QkFBdUI7QUFLN0IsTUFBTSxzQkFBc0I7QUFTNUIsU0FBUyxNQUNkLFNBQ0EsV0FBNkMscUJBQ3JDO0FBQ1IsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksUUFBUSxXQUFXLEtBQUssUUFBUSxDQUFDLE1BQU0sUUFBVztBQUNwRCxXQUFPLFFBQVEsQ0FBQztBQUFBLEVBQ2xCO0FBRUEsUUFBTSxTQUFTLFFBQVEsSUFBSSxDQUFDLFdBQVcsTUFBTSxPQUFPLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRztBQUV2RSxRQUFNLGFBQWEsb0JBQUksSUFBWTtBQUNuQyxtQkFBaUIsWUFBWSxTQUFTLFFBQVE7QUFDOUMsa0JBQWdCLFlBQVksU0FBUyxRQUFRO0FBQzdDLGVBQWEsWUFBWSxPQUFPO0FBRWhDLFNBQU8sSUFBSSxPQUFPLFFBQVEsQ0FBQyxHQUFHLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNwRDtBQUVBLFNBQVMsYUFBYSxZQUF5QixTQUF5QjtBQUN0RSxRQUFNLGFBQWEsQ0FBQyxLQUFLLEdBQUc7QUFDNUIsYUFBVyxRQUFRLFlBQVk7QUFDN0IsUUFBSSxRQUFRLEtBQUssQ0FBQyxXQUFXLFFBQVEsUUFBUSxJQUFJLENBQUMsR0FBRztBQUNuRCxpQkFBVyxJQUFJLElBQUk7QUFBQSxJQUNyQjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsaUJBQ1AsWUFDQSxTQUNBLFVBQ007QUFDTixRQUFNLGlCQUFpQixDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUc7QUFDMUMsYUFBVyxRQUFRLGdCQUFnQjtBQUNqQyxRQUFJLGVBQWUsU0FBUyxNQUFNLFFBQVEsR0FBRztBQUMzQyxpQkFBVyxJQUFJLElBQUk7QUFBQSxJQUNyQjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsZ0JBQ1AsWUFDQSxTQUNBLFVBQ007QUFDTixRQUFNLFNBQVMsUUFBUSxPQUFPLENBQUMsV0FBVyxRQUFRLFFBQVEsR0FBRyxDQUFDLEVBQUU7QUFDaEUsUUFBTSxTQUFTLFFBQVEsT0FBTyxDQUFDLFdBQVcsUUFBUSxRQUFRLEdBQUcsQ0FBQyxFQUFFO0FBRWhFLE1BQUk7QUFDSixNQUFJO0FBR0osVUFBUSxVQUFVO0FBQUE7QUFBQSxJQUVoQixLQUFLO0FBQ0gsdUJBQWlCLFdBQVcsUUFBUTtBQUNwQyx1QkFBaUIsV0FBVyxRQUFRO0FBQ3BDO0FBQUEsSUFDRixLQUFLLHFCQUF3QztBQUMzQyxZQUFNLE9BQU8sV0FBVyxRQUFRO0FBQ2hDLFlBQU0sUUFBUSxXQUFXO0FBQ3pCLFlBQU0sT0FBTyxXQUFXLFFBQVE7QUFDaEMsWUFBTSxRQUFRLFdBQVc7QUFFekIsVUFBSSxFQUFFLFFBQVEsVUFBVSxFQUFFLFFBQVEsUUFBUTtBQUN4QyxjQUFNLElBQUksTUFBTSw0Q0FBZ0Q7QUFBQSxNQUNsRTtBQUVBLHVCQUFpQjtBQUNqQix1QkFBaUI7QUFDakI7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQ0gsdUJBQWlCLFNBQVM7QUFDMUIsdUJBQWlCLFNBQVM7QUFDMUI7QUFBQSxJQUNGO0FBRUUsYUFBTyxPQUFPLHFCQUFxQixRQUFrQixFQUFFO0FBQUEsRUFFM0Q7QUFFQSxNQUFJLGtCQUFrQixnQkFBZ0I7QUFDcEMsV0FBTyxhQUFhLHFCQUF3QyxrREFBc0Q7QUFDbEgscUJBQWlCO0FBQUEsRUFDbkI7QUFFQSxNQUFJLGdCQUFnQjtBQUNsQixlQUFXLElBQUksR0FBRztBQUFBLEVBQ3BCO0FBQ0EsTUFBSSxnQkFBZ0I7QUFDbEIsZUFBVyxJQUFJLEdBQUc7QUFBQSxFQUNwQjtBQUNGOyIsCiAgIm5hbWVzIjogWyJSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneSJdCn0K
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -77,4 +79,4 @@ export {
77
79
  buildCompileTypeScript,
78
80
  buildStatic
79
81
  };
80
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idWlsZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgYnVpbGQgcHJvY2VzcyBmb3Igc3RhdGljIGFzc2V0cyBhbmQgY2xlYW5pbmdcbiAqIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gY29weSBzdGF0aWMgZmlsZXMgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXJcbiAqIGFuZCB0byByZW1vdmUgdGhlIGV4aXN0aW5nIGJ1aWxkIG91dHB1dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRzQ29uZmlnSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7IHJlYWRkaXJQb3NpeCB9IGZyb20gJy4vZnMudHMnO1xuaW1wb3J0IHsgcmVhZEpzb24gfSBmcm9tICcuL2pzb24udHMnO1xuaW1wb3J0IHsgbnBtUnVuT3B0aW9uYWwgfSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXIgYW5kIGl0cyBjb250ZW50cy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGVudGlyZSBkaXN0cmlidXRpb24gZm9sZGVyIHRvIGVuc3VyZSBhIGNsZWFuIGJ1aWxkIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZm9sZGVyIGhhcyBiZWVuIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBybShPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdidWlsZDpjb21waWxlOnN2ZWx0ZScpKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlU3ZlbHRlKCk7XG4gIH1cbiAgaWYgKCFhd2FpdCBucG1SdW5PcHRpb25hbCgnYnVpbGQ6Y29tcGlsZTp0eXBlc2NyaXB0JykpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgU3ZlbHRlIGNvZGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb2RlIGNvbXBpbGVzIHN1Y2Nlc3NmdWxseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ29tcGlsZVN2ZWx0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdHNDb25maWdQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Uc0NvbmZpZ0pzb24pO1xuICBjb25zdCB0c0NvbmZpZyA9IGF3YWl0IHJlYWRKc29uPFRzQ29uZmlnSnNvbj4odHNDb25maWdQYXRoKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCB0b0FycmF5KGdsb2IodHNDb25maWcuaW5jbHVkZSA/PyBbXSwgeyBleGNsdWRlOiB0c0NvbmZpZy5leGNsdWRlID8/IFtdIH0pKTtcbiAgY29uc3Qgc3ZlbHRlRmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5zdmVsdGUnKSB8fCBmaWxlLmVuZHNXaXRoKCcuc3ZlbHRlLmpzJykgfHwgZmlsZS5lbmRzV2l0aCgnLnN2ZWx0ZS50cycpKTtcblxuICBpZiAoc3ZlbHRlRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdzdmVsdGUtY2hlY2snLCAnLS10c2NvbmZpZycsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uXSk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFR5cGVTY3JpcHQgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ3RzYycsICctLWJ1aWxkJywgJy0tZm9yY2UnXSk7XG59XG5cbi8qKlxuICogQ29waWVzIGFsbCBzdGF0aWMgZmlsZXMgZnJvbSB0aGUgc3RhdGljIGFzc2V0cyBmb2xkZXIgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHN0YXRpYyBhc3NldHMgZm9sZGVyIGFuZCBjb3BpZXNcbiAqIGVhY2ggZmlsZSB0byB0aGUgY29ycmVzcG9uZGluZyBwYXRoIGluIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU3RhdGljKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdGF0aWMsIHsgcmVjdXJzaXZlOiB0cnVlLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pKSB7XG4gICAgaWYgKCFkaXJlbnQuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0cmltU3RhcnQoam9pbihkaXJlbnQucGFyZW50UGF0aCwgZGlyZW50Lm5hbWUpLCBgJHtPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0YXRpY30vYCk7XG4gICAgYXdhaXQgY3Aoam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0YXRpYywgcGF0aCksIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCBwYXRoKSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMsZUFBZTtBQUN4QixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLFlBQVk7QUFDckIsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxvQkFBb0I7QUFDN0IsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxpQ0FBaUM7QUFDMUM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFTUCxlQUFzQixhQUE0QjtBQUNoRCxRQUFNLEdBQUcsMEJBQTBCLE1BQU0sRUFBRSxPQUFPLE1BQU0sV0FBVyxLQUFLLENBQUM7QUFDM0U7QUFPQSxlQUFzQixlQUE4QjtBQUNsRCxNQUFJLENBQUMsTUFBTSxlQUFlLHNCQUFzQixHQUFHO0FBQ2pELFVBQU0sbUJBQW1CO0FBQUEsRUFDM0I7QUFDQSxNQUFJLENBQUMsTUFBTSxlQUFlLDBCQUEwQixHQUFHO0FBQ3JELFVBQU0sdUJBQXVCO0FBQUEsRUFDL0I7QUFDRjtBQU9BLGVBQXNCLHFCQUFvQztBQUN4RCxRQUFNLGVBQWUsd0JBQXdCLDBCQUEwQixZQUFZO0FBQ25GLFFBQU0sV0FBVyxNQUFNLFNBQXVCLFlBQVk7QUFDMUQsUUFBTSxXQUFXLE1BQU0sUUFBUSxLQUFLLFNBQVMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLFNBQVMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hHLFFBQU0sY0FBYyxTQUFTLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxTQUFTLEtBQUssS0FBSyxTQUFTLFlBQVksS0FBSyxLQUFLLFNBQVMsWUFBWSxDQUFDO0FBRXBJLE1BQUksWUFBWSxXQUFXLEdBQUc7QUFDNUIsbUJBQWUsMEJBQTBCLEVBQUUsbUVBQW1FO0FBQzlHO0FBQUEsRUFDRjtBQUVBLFFBQU0sYUFBYSxDQUFDLE9BQU8sZ0JBQWdCLGNBQWMsMEJBQTBCLFlBQVksQ0FBQztBQUNsRztBQU9BLGVBQXNCLHlCQUF3QztBQUM1RCxRQUFNLGFBQWEsQ0FBQyxPQUFPLE9BQU8sV0FBVyxTQUFTLENBQUM7QUFDekQ7QUFVQSxlQUFzQixjQUE2QjtBQUNqRCxhQUFXLFVBQVUsTUFBTSxhQUFhLDBCQUEwQixRQUFRLEVBQUUsV0FBVyxNQUFNLGVBQWUsS0FBSyxDQUFDLEdBQUc7QUFDbkgsUUFBSSxDQUFDLE9BQU8sT0FBTyxHQUFHO0FBQ3BCO0FBQUEsSUFDRjtBQUVBLFVBQU0sT0FBTyxVQUFVLEtBQUssT0FBTyxZQUFZLE9BQU8sSUFBSSxHQUFHLEdBQUcsMEJBQTBCLE1BQU0sR0FBRztBQUNuRyxVQUFNLEdBQUcsS0FBSywwQkFBMEIsUUFBUSxJQUFJLEdBQUcsS0FBSywwQkFBMEIsTUFBTSxJQUFJLENBQUM7QUFBQSxFQUNuRztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
82
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idWlsZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSB0aGUgYnVpbGQgcHJvY2VzcyBmb3Igc3RhdGljIGFzc2V0cyBhbmQgY2xlYW5pbmdcbiAqIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gY29weSBzdGF0aWMgZmlsZXMgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXJcbiAqIGFuZCB0byByZW1vdmUgdGhlIGV4aXN0aW5nIGJ1aWxkIG91dHB1dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRzQ29uZmlnSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7IHJlYWRkaXJQb3NpeCB9IGZyb20gJy4vZnMudHMnO1xuaW1wb3J0IHsgcmVhZEpzb24gfSBmcm9tICcuL2pzb24udHMnO1xuaW1wb3J0IHsgbnBtUnVuT3B0aW9uYWwgfSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXIgYW5kIGl0cyBjb250ZW50cy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGVudGlyZSBkaXN0cmlidXRpb24gZm9sZGVyIHRvIGVuc3VyZSBhIGNsZWFuIGJ1aWxkIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZm9sZGVyIGhhcyBiZWVuIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBybShPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdidWlsZDpjb21waWxlOnN2ZWx0ZScpKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlU3ZlbHRlKCk7XG4gIH1cbiAgaWYgKCFhd2FpdCBucG1SdW5PcHRpb25hbCgnYnVpbGQ6Y29tcGlsZTp0eXBlc2NyaXB0JykpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgU3ZlbHRlIGNvZGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb2RlIGNvbXBpbGVzIHN1Y2Nlc3NmdWxseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ29tcGlsZVN2ZWx0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdHNDb25maWdQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Uc0NvbmZpZ0pzb24pO1xuICBjb25zdCB0c0NvbmZpZyA9IGF3YWl0IHJlYWRKc29uPFRzQ29uZmlnSnNvbj4odHNDb25maWdQYXRoKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCB0b0FycmF5KGdsb2IodHNDb25maWcuaW5jbHVkZSA/PyBbXSwgeyBleGNsdWRlOiB0c0NvbmZpZy5leGNsdWRlID8/IFtdIH0pKTtcbiAgY29uc3Qgc3ZlbHRlRmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5zdmVsdGUnKSB8fCBmaWxlLmVuZHNXaXRoKCcuc3ZlbHRlLmpzJykgfHwgZmlsZS5lbmRzV2l0aCgnLnN2ZWx0ZS50cycpKTtcblxuICBpZiAoc3ZlbHRlRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdzdmVsdGUtY2hlY2snLCAnLS10c2NvbmZpZycsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuVHNDb25maWdKc29uXSk7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFR5cGVTY3JpcHQgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ3RzYycsICctLWJ1aWxkJywgJy0tZm9yY2UnXSk7XG59XG5cbi8qKlxuICogQ29waWVzIGFsbCBzdGF0aWMgZmlsZXMgZnJvbSB0aGUgc3RhdGljIGFzc2V0cyBmb2xkZXIgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHN0YXRpYyBhc3NldHMgZm9sZGVyIGFuZCBjb3BpZXNcbiAqIGVhY2ggZmlsZSB0byB0aGUgY29ycmVzcG9uZGluZyBwYXRoIGluIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU3RhdGljKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdGF0aWMsIHsgcmVjdXJzaXZlOiB0cnVlLCB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pKSB7XG4gICAgaWYgKCFkaXJlbnQuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0cmltU3RhcnQoam9pbihkaXJlbnQucGFyZW50UGF0aCwgZGlyZW50Lm5hbWUpLCBgJHtPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0YXRpY30vYCk7XG4gICAgYXdhaXQgY3Aoam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0YXRpYywgcGF0aCksIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCBwYXRoKSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsc0JBQXNCO0FBQy9CLFNBQVMsWUFBWTtBQUNyQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLG9CQUFvQjtBQUM3QixTQUFTLGdCQUFnQjtBQUN6QixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVNQLGVBQXNCLGFBQTRCO0FBQ2hELFFBQU0sR0FBRywwQkFBMEIsTUFBTSxFQUFFLE9BQU8sTUFBTSxXQUFXLEtBQUssQ0FBQztBQUMzRTtBQU9BLGVBQXNCLGVBQThCO0FBQ2xELE1BQUksQ0FBQyxNQUFNLGVBQWUsc0JBQXNCLEdBQUc7QUFDakQsVUFBTSxtQkFBbUI7QUFBQSxFQUMzQjtBQUNBLE1BQUksQ0FBQyxNQUFNLGVBQWUsMEJBQTBCLEdBQUc7QUFDckQsVUFBTSx1QkFBdUI7QUFBQSxFQUMvQjtBQUNGO0FBT0EsZUFBc0IscUJBQW9DO0FBQ3hELFFBQU0sZUFBZSx3QkFBd0IsMEJBQTBCLFlBQVk7QUFDbkYsUUFBTSxXQUFXLE1BQU0sU0FBdUIsWUFBWTtBQUMxRCxRQUFNLFdBQVcsTUFBTSxRQUFRLEtBQUssU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLFNBQVMsU0FBUyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaEcsUUFBTSxjQUFjLFNBQVMsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLFNBQVMsS0FBSyxLQUFLLFNBQVMsWUFBWSxLQUFLLEtBQUssU0FBUyxZQUFZLENBQUM7QUFFcEksTUFBSSxZQUFZLFdBQVcsR0FBRztBQUM1QixtQkFBZSwwQkFBMEIsRUFBRSxtRUFBbUU7QUFDOUc7QUFBQSxFQUNGO0FBRUEsUUFBTSxhQUFhLENBQUMsT0FBTyxnQkFBZ0IsY0FBYywwQkFBMEIsWUFBWSxDQUFDO0FBQ2xHO0FBT0EsZUFBc0IseUJBQXdDO0FBQzVELFFBQU0sYUFBYSxDQUFDLE9BQU8sT0FBTyxXQUFXLFNBQVMsQ0FBQztBQUN6RDtBQVVBLGVBQXNCLGNBQTZCO0FBQ2pELGFBQVcsVUFBVSxNQUFNLGFBQWEsMEJBQTBCLFFBQVEsRUFBRSxXQUFXLE1BQU0sZUFBZSxLQUFLLENBQUMsR0FBRztBQUNuSCxRQUFJLENBQUMsT0FBTyxPQUFPLEdBQUc7QUFDcEI7QUFBQSxJQUNGO0FBRUEsVUFBTSxPQUFPLFVBQVUsS0FBSyxPQUFPLFlBQVksT0FBTyxJQUFJLEdBQUcsR0FBRywwQkFBMEIsTUFBTSxHQUFHO0FBQ25HLFVBQU0sR0FBRyxLQUFLLDBCQUEwQixRQUFRLElBQUksR0FBRyxLQUFLLDBCQUEwQixNQUFNLElBQUksQ0FBQztBQUFBLEVBQ25HO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -55,4 +57,4 @@ function changeExtensionPlugin(extension) {
55
57
  export {
56
58
  changeExtensionPlugin
57
59
  };
58
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY2hhbmdlLWV4dGVuc2lvbi1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY2hhbmdlcyB0aGUgZXh0ZW5zaW9uIG9mIEphdmFTY3JpcHQgZmlsZXMgYWZ0ZXIgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcmV3cml0ZXMgZmlsZSBleHRlbnNpb25zIGF0IGJ1aWxkIHRpbWU7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vLi4vLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNoYW5nZXMgdGhlIGV4dGVuc2lvbiBvZiBKYXZhU2NyaXB0IGZpbGVzIGFmdGVyIHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGNoYW5nZSB0aGUgZmlsZXMgdG8uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHJlbmFtaW5nIGFuZCBtb2RpZmljYXRpb24gb2Ygb3V0cHV0IGZpbGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlRXh0ZW5zaW9uUGx1Z2luKGV4dGVuc2lvbjogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY2hhbmdlLWV4dGVuc2lvbicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGlmICghZmlsZS5wYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuSnNFeHRlbnNpb24pIHx8IGZpbGUucGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRqc0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSByZXBsYWNlQWxsKGZpbGUucGF0aCwgL1xcLmpzJC9nLCBleHRlbnNpb24pO1xuXG4gICAgICAgICAgbGV0IG5ld1RleHQgPSByZXBsYWNlQWxsKGZpbGUudGV4dCwgL3JlcXVpcmVcXChbXCInXSg/PEltcG9ydFBhdGg+Lis/KVtcIiddXFwpL2csICh7IGNhcHR1cmVkR3JvdXBBcmdzOiBbaW1wb3J0UGF0aCA9ICcnXSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW1wb3J0UGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkR0c0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaXhlZEltcG9ydFBhdGggPSByZXBsYWNlQWxsKGltcG9ydFBhdGgsIC9cXC50cyQvZywgZXh0ZW5zaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBgcmVxdWlyZSgnJHtmaXhlZEltcG9ydFBhdGh9JylgO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbmV3VGV4dCA9IHJlcGxhY2VBbGwobmV3VGV4dCwgL2Zyb20gXCIoPzxJbXBvcnRQYXRoPi4rPylcIi9nLCAoeyBjYXB0dXJlZEdyb3VwQXJnczogW2ltcG9ydFBhdGggPSAnJ10gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGltcG9ydFBhdGguZW5kc1dpdGgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EdHNFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZml4ZWRJbXBvcnRQYXRoID0gcmVwbGFjZUFsbChpbXBvcnRQYXRoLCAvXFwudHMkL2csIGV4dGVuc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gYGZyb20gXCIke2ZpeGVkSW1wb3J0UGF0aH1cImA7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUobmV3UGF0aCwgbmV3VGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLFNBQVMsaUJBQWlCO0FBRTFCLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsaUNBQWlDO0FBUW5DLFNBQVMsc0JBQXNCLFdBQTJCO0FBQy9ELFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sT0FBTyxXQUFXO0FBQzVCLG1CQUFXLFFBQVEsT0FBTyxlQUFlLENBQUMsR0FBRztBQUMzQyxjQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsMEJBQTBCLFdBQVcsS0FBSyxLQUFLLEtBQUssU0FBUywwQkFBMEIsWUFBWSxHQUFHO0FBQzVIO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsV0FBVyxLQUFLLE1BQU0sVUFBVSxTQUFTO0FBRXpELGNBQUksVUFBVSxXQUFXLEtBQUssTUFBTSwwQ0FBMEMsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU07QUFDMUgsZ0JBQUksV0FBVyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDL0QscUJBQU87QUFBQSxZQUNUO0FBRUEsa0JBQU0sa0JBQWtCLFdBQVcsWUFBWSxVQUFVLFNBQVM7QUFDbEUsbUJBQU8sWUFBWSxlQUFlO0FBQUEsVUFDcEMsQ0FBQztBQUVELG9CQUFVLFdBQVcsU0FBUyw4QkFBOEIsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU07QUFDeEcsZ0JBQUksV0FBVyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDL0QscUJBQU87QUFBQSxZQUNUO0FBRUEsa0JBQU0sa0JBQWtCLFdBQVcsWUFBWSxVQUFVLFNBQVM7QUFDbEUsbUJBQU8sU0FBUyxlQUFlO0FBQUEsVUFDakMsQ0FBQztBQUVELGdCQUFNLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDbEM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
60
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY2hhbmdlLWV4dGVuc2lvbi1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY2hhbmdlcyB0aGUgZXh0ZW5zaW9uIG9mIEphdmFTY3JpcHQgZmlsZXMgYWZ0ZXIgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcmV3cml0ZXMgZmlsZSBleHRlbnNpb25zIGF0IGJ1aWxkIHRpbWU7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vLi4vLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNoYW5nZXMgdGhlIGV4dGVuc2lvbiBvZiBKYXZhU2NyaXB0IGZpbGVzIGFmdGVyIHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGNoYW5nZSB0aGUgZmlsZXMgdG8uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHJlbmFtaW5nIGFuZCBtb2RpZmljYXRpb24gb2Ygb3V0cHV0IGZpbGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlRXh0ZW5zaW9uUGx1Z2luKGV4dGVuc2lvbjogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY2hhbmdlLWV4dGVuc2lvbicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGlmICghZmlsZS5wYXRoLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuSnNFeHRlbnNpb24pIHx8IGZpbGUucGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRqc0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSByZXBsYWNlQWxsKGZpbGUucGF0aCwgL1xcLmpzJC9nLCBleHRlbnNpb24pO1xuXG4gICAgICAgICAgbGV0IG5ld1RleHQgPSByZXBsYWNlQWxsKGZpbGUudGV4dCwgL3JlcXVpcmVcXChbXCInXSg/PEltcG9ydFBhdGg+Lis/KVtcIiddXFwpL2csICh7IGNhcHR1cmVkR3JvdXBBcmdzOiBbaW1wb3J0UGF0aCA9ICcnXSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW1wb3J0UGF0aC5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkR0c0V4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaXhlZEltcG9ydFBhdGggPSByZXBsYWNlQWxsKGltcG9ydFBhdGgsIC9cXC50cyQvZywgZXh0ZW5zaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBgcmVxdWlyZSgnJHtmaXhlZEltcG9ydFBhdGh9JylgO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbmV3VGV4dCA9IHJlcGxhY2VBbGwobmV3VGV4dCwgL2Zyb20gXCIoPzxJbXBvcnRQYXRoPi4rPylcIi9nLCAoeyBjYXB0dXJlZEdyb3VwQXJnczogW2ltcG9ydFBhdGggPSAnJ10gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGltcG9ydFBhdGguZW5kc1dpdGgoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EdHNFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZml4ZWRJbXBvcnRQYXRoID0gcmVwbGFjZUFsbChpbXBvcnRQYXRoLCAvXFwudHMkL2csIGV4dGVuc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gYGZyb20gXCIke2ZpeGVkSW1wb3J0UGF0aH1cImA7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUobmV3UGF0aCwgbmV3VGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyxpQkFBaUI7QUFFMUIsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxpQ0FBaUM7QUFRbkMsU0FBUyxzQkFBc0IsV0FBMkI7QUFDL0QsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLFlBQU0sTUFBTSxPQUFPLFdBQVc7QUFDNUIsbUJBQVcsUUFBUSxPQUFPLGVBQWUsQ0FBQyxHQUFHO0FBQzNDLGNBQUksQ0FBQyxLQUFLLEtBQUssU0FBUywwQkFBMEIsV0FBVyxLQUFLLEtBQUssS0FBSyxTQUFTLDBCQUEwQixZQUFZLEdBQUc7QUFDNUg7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sVUFBVSxXQUFXLEtBQUssTUFBTSxVQUFVLFNBQVM7QUFFekQsY0FBSSxVQUFVLFdBQVcsS0FBSyxNQUFNLDBDQUEwQyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTTtBQUMxSCxnQkFBSSxXQUFXLFNBQVMsMEJBQTBCLFlBQVksR0FBRztBQUMvRCxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxrQkFBTSxrQkFBa0IsV0FBVyxZQUFZLFVBQVUsU0FBUztBQUNsRSxtQkFBTyxZQUFZLGVBQWU7QUFBQSxVQUNwQyxDQUFDO0FBRUQsb0JBQVUsV0FBVyxTQUFTLDhCQUE4QixDQUFDLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTTtBQUN4RyxnQkFBSSxXQUFXLFNBQVMsMEJBQTBCLFlBQVksR0FBRztBQUMvRCxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxrQkFBTSxrQkFBa0IsV0FBVyxZQUFZLFVBQVUsU0FBUztBQUNsRSxtQkFBTyxTQUFTLGVBQWU7QUFBQSxVQUNqQyxDQUFDO0FBRUQsZ0JBQU0sVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNsQztBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -104,4 +106,4 @@ async function enableCommunityPlugin(obsidianConfigFolder, pluginId) {
104
106
  export {
105
107
  copyToObsidianPluginsFolderPlugin
106
108
  };
107
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBldmFsSW5PYnNpZGlhbiB9IGZyb20gJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dCB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHBhcmFtIGRpc3RGb2xkZXIgLSBUaGUgZm9sZGVyIHdoZXJlIHRoZSBidWlsdCBmaWxlcyBhcmUgbG9jYXRlZC5cbiAqIEBwYXJhbSBvYnNpZGlhbkNvbmZpZ0ZvbGRlciAtIFRoZSBmb2xkZXIgb2YgdGhlIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIElmIG5vdCBwcm92aWRlZCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBjb3B5IGZpbGVzLlxuICogQHBhcmFtIHBsdWdpbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4oXG4gIGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuLFxuICBkaXN0Rm9sZGVyOiBzdHJpbmcsXG4gIG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmcsXG4gIHBsdWdpbk5hbWU6IHN0cmluZ1xuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlcicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvYnNpZGlhbkNvbmZpZ0ZvbGRlcikge1xuICAgICAgICAgIGdldExpYkRlYnVnZ2VyKCdjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4nKShcbiAgICAgICAgICAgICdObyBPYnNpZGlhbiBjb25maWcgZm9sZGVyIGNvbmZpZ3VyZWQuIGBPQlNJRElBTl9DT05GSUdfRk9MREVSYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0IGluIHN5c3RlbSBvciBpbiBgLmVudmAgZmlsZS4gVGhlIGNvbXBpbGVkIHBsdWdpbiB3aWxsIG5vdCBiZSBjb3BpZWQgaW50byBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci4nXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHRvUG9zaXhQYXRoKG9ic2lkaWFuQ29uZmlnRm9sZGVyKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5Gb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucycsIHBsdWdpbk5hbWUpO1xuXG4gICAgICAgIGlmICghZXhpc3RzU3luYyhwbHVnaW5Gb2xkZXIpKSB7XG4gICAgICAgICAgYXdhaXQgbWtkaXIocGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGNwKGRpc3RGb2xkZXIsIHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgY29uc3QgaG90UmVsb2FkRm9sZGVyID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ3BsdWdpbnMvaG90LXJlbG9hZCcpO1xuICAgICAgICBpZiAoIWV4aXN0c1N5bmMoaG90UmVsb2FkRm9sZGVyKSkge1xuICAgICAgICAgIGF3YWl0IG1rZGlyKGhvdFJlbG9hZEZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgY29uc3QgaG90UmVsb2FkUmVwb1VybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcGplYnkvaG90LXJlbG9hZC9tYXN0ZXIvJztcbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIFsnbWFpbi5qcycsICdtYW5pZmVzdC5qc29uJ10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBob3RSZWxvYWRSZXBvVXJsICsgZmlsZU5hbWU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzIC0tIFdlIHJ1biB0aGlzIG91dHNpZGUgb2YgT2JzaWRpYW4sIHNvIHdlIGRvbid0IGhhdmUgYHJlcXVlc3RVcmwoKWAuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZpbGVVcmwpO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShqb2luKGhvdFJlbG9hZEZvbGRlciwgZmlsZU5hbWUpLCB0ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdob3QtcmVsb2FkJyk7XG4gICAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgcGx1Z2luTmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlcjogc3RyaW5nLCBwbHVnaW5JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbW11bml0eVBsdWdpbnNQYXRoID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ2NvbW11bml0eS1wbHVnaW5zLmpzb24nKTtcbiAgbGV0IHBsdWdpbnM6IHN0cmluZ1tdID0gW107XG4gIGlmIChleGlzdHNTeW5jKGNvbW11bml0eVBsdWdpbnNQYXRoKSkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjb21tdW5pdHlQbHVnaW5zUGF0aCwgJ3V0Zi04Jyk7XG4gICAgcGx1Z2lucyA9IEpTT04ucGFyc2UoY29udGVudCkgYXMgc3RyaW5nW107XG4gIH1cblxuICBpZiAoIXBsdWdpbnMuaW5jbHVkZXMocGx1Z2luSWQpKSB7XG4gICAgcGx1Z2lucy5wdXNoKHBsdWdpbklkKTtcbiAgICBjb25zdCBKU09OX0lOREVOVCA9IDI7XG4gICAgYXdhaXQgd3JpdGVGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCBKU09OLnN0cmluZ2lmeShwbHVnaW5zLCBudWxsLCBKU09OX0lOREVOVCksICd1dGYtOCcpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBldmFsSW5PYnNpZGlhbih7XG4gICAgICBhcmdzOiB7IHBsdWdpbklkIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93IC0tIE5vIGFjdHVhbCBzaGFkb3dpbmcgYXMgdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGV4dGVybmFsbHkuXG4gICAgICBhc3luYyBmbih7IGFwcCwgcGx1Z2luSWQgfSkge1xuICAgICAgICBhd2FpdCBhcHAucGx1Z2lucy5lbmFibGVQbHVnaW5BbmRTYXZlKHBsdWdpbklkKTtcbiAgICAgIH0sXG4gICAgICB2YXVsdFBhdGg6IGRpcm5hbWUob2JzaWRpYW5Db25maWdGb2xkZXIpXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG4gICAgY29uc3QgaXNOb3RGb3VuZCA9IGVycm9yTWVzc2FnZS5pbmNsdWRlcygnRU5PRU5UJykgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdub3QgZm91bmQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCByZWNvZ25pemVkJyk7XG4gICAgaWYgKGlzTm90Rm91bmQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE9ic2lkaWFuIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbHVnaW4gJyR7cGx1Z2luSWR9JyB3aWxsIGJlIGVuYWJsZWQgb24gbmV4dCB2YXVsdCBvcGVuLiBTZWUgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL2NsaWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZW5hYmxlIHBsdWdpbiAnJHtwbHVnaW5JZH0nIHZpYSBPYnNpZGlhbiBDTEkuYCwgZSk7XG4gICAgfVxuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxzQkFBc0I7QUFFL0IsU0FBUyxzQkFBc0I7QUFDL0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBV0EsU0FBUyxrQ0FDZCxtQkFDQSxZQUNBLHNCQUNBLFlBQ1E7QUFDUixTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxNQUFNLFlBQVk7QUFDdEIsWUFBSSxtQkFBbUI7QUFDckI7QUFBQSxRQUNGO0FBRUEsWUFBSSxDQUFDLHNCQUFzQjtBQUN6Qix5QkFBZSxtQ0FBbUM7QUFBQSxZQUNoRDtBQUFBLFVBQ0Y7QUFDQTtBQUFBLFFBQ0Y7QUFFQSwrQkFBdUIsWUFBWSxvQkFBb0I7QUFFdkQsY0FBTSxlQUFlLEtBQUssc0JBQXNCLFdBQVcsVUFBVTtBQUVyRSxZQUFJLENBQUMsV0FBVyxZQUFZLEdBQUc7QUFDN0IsZ0JBQU0sTUFBTSxjQUFjLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFBQSxRQUMvQztBQUVBLGNBQU0sR0FBRyxZQUFZLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUV0RCxjQUFNLGtCQUFrQixLQUFLLHNCQUFzQixvQkFBb0I7QUFDdkUsWUFBSSxDQUFDLFdBQVcsZUFBZSxHQUFHO0FBQ2hDLGdCQUFNLE1BQU0saUJBQWlCLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFDaEQsZ0JBQU0sbUJBQW1CO0FBQ3pCLHFCQUFXLFlBQVksQ0FBQyxXQUFXLGVBQWUsR0FBRztBQUNuRCxrQkFBTSxVQUFVLG1CQUFtQjtBQUVuQyxrQkFBTSxXQUFXLE1BQU0sTUFBTSxPQUFPO0FBQ3BDLGtCQUFNLE9BQU8sTUFBTSxTQUFTLEtBQUs7QUFDakMsa0JBQU0sVUFBVSxLQUFLLGlCQUFpQixRQUFRLEdBQUcsSUFBSTtBQUFBLFVBQ3ZEO0FBQUEsUUFDRjtBQUVBLGNBQU0sc0JBQXNCLHNCQUFzQixZQUFZO0FBQzlELGNBQU0sc0JBQXNCLHNCQUFzQixVQUFVO0FBQUEsTUFDOUQsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxlQUFlLHNCQUFzQixzQkFBOEIsVUFBaUM7QUFDbEcsUUFBTSx1QkFBdUIsS0FBSyxzQkFBc0Isd0JBQXdCO0FBQ2hGLE1BQUksVUFBb0IsQ0FBQztBQUN6QixNQUFJLFdBQVcsb0JBQW9CLEdBQUc7QUFDcEMsVUFBTSxVQUFVLE1BQU0sU0FBUyxzQkFBc0IsT0FBTztBQUM1RCxjQUFVLEtBQUssTUFBTSxPQUFPO0FBQUEsRUFDOUI7QUFFQSxNQUFJLENBQUMsUUFBUSxTQUFTLFFBQVEsR0FBRztBQUMvQixZQUFRLEtBQUssUUFBUTtBQUNyQixVQUFNLGNBQWM7QUFDcEIsVUFBTSxVQUFVLHNCQUFzQixLQUFLLFVBQVUsU0FBUyxNQUFNLFdBQVcsR0FBRyxPQUFPO0FBQUEsRUFDM0Y7QUFFQSxNQUFJO0FBQ0YsVUFBTSxlQUFlO0FBQUEsTUFDbkIsTUFBTSxFQUFFLFNBQVM7QUFBQTtBQUFBLE1BRWpCLE1BQU0sR0FBRyxFQUFFLEtBQUssVUFBQUEsVUFBUyxHQUFHO0FBQzFCLGNBQU0sSUFBSSxRQUFRLG9CQUFvQkEsU0FBUTtBQUFBLE1BQ2hEO0FBQUEsTUFDQSxXQUFXLFFBQVEsb0JBQW9CO0FBQUEsSUFDekMsQ0FBQztBQUFBLEVBQ0gsU0FBUyxHQUFZO0FBQ25CLFVBQU0sZUFBZSxhQUFhLFFBQVEsRUFBRSxVQUFVLE9BQU8sQ0FBQztBQUM5RCxVQUFNLGFBQWEsYUFBYSxTQUFTLFFBQVEsS0FBSyxhQUFhLFNBQVMsV0FBVyxLQUFLLGFBQWEsU0FBUyxnQkFBZ0I7QUFDbEksUUFBSSxZQUFZO0FBQ2QsY0FBUSxNQUFNLDBDQUEwQyxRQUFRLHdFQUF3RTtBQUFBLElBQzFJLE9BQU87QUFDTCxjQUFRLE1BQU0sNEJBQTRCLFFBQVEsdUJBQXVCLENBQUM7QUFBQSxJQUM1RTtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsicGx1Z2luSWQiXQp9Cg==
109
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBldmFsSW5PYnNpZGlhbiB9IGZyb20gJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dCB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHBhcmFtIGRpc3RGb2xkZXIgLSBUaGUgZm9sZGVyIHdoZXJlIHRoZSBidWlsdCBmaWxlcyBhcmUgbG9jYXRlZC5cbiAqIEBwYXJhbSBvYnNpZGlhbkNvbmZpZ0ZvbGRlciAtIFRoZSBmb2xkZXIgb2YgdGhlIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIElmIG5vdCBwcm92aWRlZCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBjb3B5IGZpbGVzLlxuICogQHBhcmFtIHBsdWdpbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4oXG4gIGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuLFxuICBkaXN0Rm9sZGVyOiBzdHJpbmcsXG4gIG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmcsXG4gIHBsdWdpbk5hbWU6IHN0cmluZ1xuKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlcicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvYnNpZGlhbkNvbmZpZ0ZvbGRlcikge1xuICAgICAgICAgIGdldExpYkRlYnVnZ2VyKCdjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4nKShcbiAgICAgICAgICAgICdObyBPYnNpZGlhbiBjb25maWcgZm9sZGVyIGNvbmZpZ3VyZWQuIGBPQlNJRElBTl9DT05GSUdfRk9MREVSYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0IGluIHN5c3RlbSBvciBpbiBgLmVudmAgZmlsZS4gVGhlIGNvbXBpbGVkIHBsdWdpbiB3aWxsIG5vdCBiZSBjb3BpZWQgaW50byBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci4nXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHRvUG9zaXhQYXRoKG9ic2lkaWFuQ29uZmlnRm9sZGVyKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5Gb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucycsIHBsdWdpbk5hbWUpO1xuXG4gICAgICAgIGlmICghZXhpc3RzU3luYyhwbHVnaW5Gb2xkZXIpKSB7XG4gICAgICAgICAgYXdhaXQgbWtkaXIocGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGNwKGRpc3RGb2xkZXIsIHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgY29uc3QgaG90UmVsb2FkRm9sZGVyID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ3BsdWdpbnMvaG90LXJlbG9hZCcpO1xuICAgICAgICBpZiAoIWV4aXN0c1N5bmMoaG90UmVsb2FkRm9sZGVyKSkge1xuICAgICAgICAgIGF3YWl0IG1rZGlyKGhvdFJlbG9hZEZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgY29uc3QgaG90UmVsb2FkUmVwb1VybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcGplYnkvaG90LXJlbG9hZC9tYXN0ZXIvJztcbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIFsnbWFpbi5qcycsICdtYW5pZmVzdC5qc29uJ10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBob3RSZWxvYWRSZXBvVXJsICsgZmlsZU5hbWU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzIC0tIFdlIHJ1biB0aGlzIG91dHNpZGUgb2YgT2JzaWRpYW4sIHNvIHdlIGRvbid0IGhhdmUgYHJlcXVlc3RVcmwoKWAuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZpbGVVcmwpO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShqb2luKGhvdFJlbG9hZEZvbGRlciwgZmlsZU5hbWUpLCB0ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdob3QtcmVsb2FkJyk7XG4gICAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgcGx1Z2luTmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlcjogc3RyaW5nLCBwbHVnaW5JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbW11bml0eVBsdWdpbnNQYXRoID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ2NvbW11bml0eS1wbHVnaW5zLmpzb24nKTtcbiAgbGV0IHBsdWdpbnM6IHN0cmluZ1tdID0gW107XG4gIGlmIChleGlzdHNTeW5jKGNvbW11bml0eVBsdWdpbnNQYXRoKSkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjb21tdW5pdHlQbHVnaW5zUGF0aCwgJ3V0Zi04Jyk7XG4gICAgcGx1Z2lucyA9IEpTT04ucGFyc2UoY29udGVudCkgYXMgc3RyaW5nW107XG4gIH1cblxuICBpZiAoIXBsdWdpbnMuaW5jbHVkZXMocGx1Z2luSWQpKSB7XG4gICAgcGx1Z2lucy5wdXNoKHBsdWdpbklkKTtcbiAgICBjb25zdCBKU09OX0lOREVOVCA9IDI7XG4gICAgYXdhaXQgd3JpdGVGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCBKU09OLnN0cmluZ2lmeShwbHVnaW5zLCBudWxsLCBKU09OX0lOREVOVCksICd1dGYtOCcpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBldmFsSW5PYnNpZGlhbih7XG4gICAgICBhcmdzOiB7IHBsdWdpbklkIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93IC0tIE5vIGFjdHVhbCBzaGFkb3dpbmcgYXMgdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGV4dGVybmFsbHkuXG4gICAgICBhc3luYyBmbih7IGFwcCwgcGx1Z2luSWQgfSkge1xuICAgICAgICBhd2FpdCBhcHAucGx1Z2lucy5lbmFibGVQbHVnaW5BbmRTYXZlKHBsdWdpbklkKTtcbiAgICAgIH0sXG4gICAgICB2YXVsdFBhdGg6IGRpcm5hbWUob2JzaWRpYW5Db25maWdGb2xkZXIpXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG4gICAgY29uc3QgaXNOb3RGb3VuZCA9IGVycm9yTWVzc2FnZS5pbmNsdWRlcygnRU5PRU5UJykgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdub3QgZm91bmQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCByZWNvZ25pemVkJyk7XG4gICAgaWYgKGlzTm90Rm91bmQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE9ic2lkaWFuIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbHVnaW4gJyR7cGx1Z2luSWR9JyB3aWxsIGJlIGVuYWJsZWQgb24gbmV4dCB2YXVsdCBvcGVuLiBTZWUgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL2NsaWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZW5hYmxlIHBsdWdpbiAnJHtwbHVnaW5JZH0nIHZpYSBPYnNpZGlhbiBDTEkuYCwgZSk7XG4gICAgfVxuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHNCQUFzQjtBQUUvQixTQUFTLHNCQUFzQjtBQUMvQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFXQSxTQUFTLGtDQUNkLG1CQUNBLFlBQ0Esc0JBQ0EsWUFDUTtBQUNSLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sWUFBWTtBQUN0QixZQUFJLG1CQUFtQjtBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLENBQUMsc0JBQXNCO0FBQ3pCLHlCQUFlLG1DQUFtQztBQUFBLFlBQ2hEO0FBQUEsVUFDRjtBQUNBO0FBQUEsUUFDRjtBQUVBLCtCQUF1QixZQUFZLG9CQUFvQjtBQUV2RCxjQUFNLGVBQWUsS0FBSyxzQkFBc0IsV0FBVyxVQUFVO0FBRXJFLFlBQUksQ0FBQyxXQUFXLFlBQVksR0FBRztBQUM3QixnQkFBTSxNQUFNLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUFBLFFBQy9DO0FBRUEsY0FBTSxHQUFHLFlBQVksY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXRELGNBQU0sa0JBQWtCLEtBQUssc0JBQXNCLG9CQUFvQjtBQUN2RSxZQUFJLENBQUMsV0FBVyxlQUFlLEdBQUc7QUFDaEMsZ0JBQU0sTUFBTSxpQkFBaUIsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNoRCxnQkFBTSxtQkFBbUI7QUFDekIscUJBQVcsWUFBWSxDQUFDLFdBQVcsZUFBZSxHQUFHO0FBQ25ELGtCQUFNLFVBQVUsbUJBQW1CO0FBRW5DLGtCQUFNLFdBQVcsTUFBTSxNQUFNLE9BQU87QUFDcEMsa0JBQU0sT0FBTyxNQUFNLFNBQVMsS0FBSztBQUNqQyxrQkFBTSxVQUFVLEtBQUssaUJBQWlCLFFBQVEsR0FBRyxJQUFJO0FBQUEsVUFDdkQ7QUFBQSxRQUNGO0FBRUEsY0FBTSxzQkFBc0Isc0JBQXNCLFlBQVk7QUFDOUQsY0FBTSxzQkFBc0Isc0JBQXNCLFVBQVU7QUFBQSxNQUM5RCxDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLGVBQWUsc0JBQXNCLHNCQUE4QixVQUFpQztBQUNsRyxRQUFNLHVCQUF1QixLQUFLLHNCQUFzQix3QkFBd0I7QUFDaEYsTUFBSSxVQUFvQixDQUFDO0FBQ3pCLE1BQUksV0FBVyxvQkFBb0IsR0FBRztBQUNwQyxVQUFNLFVBQVUsTUFBTSxTQUFTLHNCQUFzQixPQUFPO0FBQzVELGNBQVUsS0FBSyxNQUFNLE9BQU87QUFBQSxFQUM5QjtBQUVBLE1BQUksQ0FBQyxRQUFRLFNBQVMsUUFBUSxHQUFHO0FBQy9CLFlBQVEsS0FBSyxRQUFRO0FBQ3JCLFVBQU0sY0FBYztBQUNwQixVQUFNLFVBQVUsc0JBQXNCLEtBQUssVUFBVSxTQUFTLE1BQU0sV0FBVyxHQUFHLE9BQU87QUFBQSxFQUMzRjtBQUVBLE1BQUk7QUFDRixVQUFNLGVBQWU7QUFBQSxNQUNuQixNQUFNLEVBQUUsU0FBUztBQUFBO0FBQUEsTUFFakIsTUFBTSxHQUFHLEVBQUUsS0FBSyxVQUFBQSxVQUFTLEdBQUc7QUFDMUIsY0FBTSxJQUFJLFFBQVEsb0JBQW9CQSxTQUFRO0FBQUEsTUFDaEQ7QUFBQSxNQUNBLFdBQVcsUUFBUSxvQkFBb0I7QUFBQSxJQUN6QyxDQUFDO0FBQUEsRUFDSCxTQUFTLEdBQVk7QUFDbkIsVUFBTSxlQUFlLGFBQWEsUUFBUSxFQUFFLFVBQVUsT0FBTyxDQUFDO0FBQzlELFVBQU0sYUFBYSxhQUFhLFNBQVMsUUFBUSxLQUFLLGFBQWEsU0FBUyxXQUFXLEtBQUssYUFBYSxTQUFTLGdCQUFnQjtBQUNsSSxRQUFJLFlBQVk7QUFDZCxjQUFRLE1BQU0sMENBQTBDLFFBQVEsd0VBQXdFO0FBQUEsSUFDMUksT0FBTztBQUNMLGNBQVEsTUFBTSw0QkFBNEIsUUFBUSx1QkFBdUIsQ0FBQztBQUFBLElBQzVFO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJwbHVnaW5JZCJdCn0K
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
7
8
  if (globalThis.process) {
8
9
  return;
9
10
  }
@@ -16,6 +17,7 @@ if you want to view the source, please visit the github repository of this plugi
16
17
  env: {},
17
18
  platform: 'android'
18
19
  };
20
+ // eslint-disable-next-line obsidianmd/prefer-active-doc -- Actively use globalThis.
19
21
  globalThis.process = browserProcess;
20
22
  })();
21
23
 
@@ -30,4 +32,4 @@ function customEsbuildOptionsPlugin(customizeEsbuildOptions) {
30
32
  export {
31
33
  customEsbuildOptionsPlugin
32
34
  };
33
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYWxsb3dzIGZvciBjdXN0b20gZXNidWlsZCBvcHRpb25zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IGFwcGxpZXMgY3VzdG9tIGJ1aWxkIG9wdGlvbnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRPcHRpb25zLFxuICBQbHVnaW5cbn0gZnJvbSAnZXNidWlsZCc7XG5cbi8qKlxuICogQSBwbHVnaW4gdGhhdCBhbGxvd3MgZm9yIGN1c3RvbSBlc2J1aWxkIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zIC0gQSBmdW5jdGlvbiB0aGF0IGN1c3RvbWl6ZXMgdGhlIGVzYnVpbGQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcGx1Z2luIHRoYXQgYWxsb3dzIGZvciBjdXN0b20gZXNidWlsZCBvcHRpb25zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tRXNidWlsZE9wdGlvbnNQbHVnaW4oY3VzdG9taXplRXNidWlsZE9wdGlvbnM/OiAob3B0aW9uczogQnVpbGRPcHRpb25zKSA9PiB2b2lkKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY3VzdG9tLWVzYnVpbGQtb3B0aW9ucycsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zPy4oYnVpbGQuaW5pdGlhbE9wdGlvbnMpO1xuICAgIH1cbiAgfTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CTyxTQUFTLDJCQUEyQix5QkFBbUU7QUFDNUcsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLGdDQUEwQixNQUFNLGNBQWM7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
35
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYWxsb3dzIGZvciBjdXN0b20gZXNidWlsZCBvcHRpb25zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IGFwcGxpZXMgY3VzdG9tIGJ1aWxkIG9wdGlvbnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRPcHRpb25zLFxuICBQbHVnaW5cbn0gZnJvbSAnZXNidWlsZCc7XG5cbi8qKlxuICogQSBwbHVnaW4gdGhhdCBhbGxvd3MgZm9yIGN1c3RvbSBlc2J1aWxkIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zIC0gQSBmdW5jdGlvbiB0aGF0IGN1c3RvbWl6ZXMgdGhlIGVzYnVpbGQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcGx1Z2luIHRoYXQgYWxsb3dzIGZvciBjdXN0b20gZXNidWlsZCBvcHRpb25zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tRXNidWlsZE9wdGlvbnNQbHVnaW4oY3VzdG9taXplRXNidWlsZE9wdGlvbnM/OiAob3B0aW9uczogQnVpbGRPcHRpb25zKSA9PiB2b2lkKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY3VzdG9tLWVzYnVpbGQtb3B0aW9ucycsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zPy4oYnVpbGQuaW5pdGlhbE9wdGlvbnMpO1xuICAgIH1cbiAgfTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJPLFNBQVMsMkJBQTJCLHlCQUFtRTtBQUM1RyxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsZ0NBQTBCLE1BQU0sY0FBYztBQUFBLElBQ2hEO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=