@mnaoumov/obsidian-lib 3.3.0 → 3.3.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 (775) hide show
  1. package/dist/lib/cjs/@types/i18next.d.cts +1 -1
  2. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +3 -3
  3. package/dist/lib/cjs/@types/original-fs.d.cts +2 -1
  4. package/dist/lib/cjs/__merged.cjs +2 -21
  5. package/dist/lib/cjs/__merged.d.cts +1 -1
  6. package/dist/lib/cjs/active-file-provider.cjs +1 -47
  7. package/dist/lib/cjs/active-file-provider.d.cts +1 -1
  8. package/dist/lib/cjs/app.cjs +1 -47
  9. package/dist/lib/cjs/app.d.cts +1 -1
  10. package/dist/lib/cjs/async-with-notice.cjs +2 -21
  11. package/dist/lib/cjs/async-with-notice.d.cts +2 -1
  12. package/dist/lib/cjs/attachment-path.cjs +2 -21
  13. package/dist/lib/cjs/attachment-path.d.cts +1 -1
  14. package/dist/lib/cjs/attachment-unit-folder.cjs +2 -21
  15. package/dist/lib/cjs/attachment-unit-folder.d.cts +1 -1
  16. package/dist/lib/cjs/backlink-index.cjs +2 -21
  17. package/dist/lib/cjs/backlink-index.d.cts +1 -1
  18. package/dist/lib/cjs/backlink.cjs +2 -21
  19. package/dist/lib/cjs/backlink.d.cts +1 -1
  20. package/dist/lib/cjs/bases-view-registrar.cjs +2 -21
  21. package/dist/lib/cjs/bases-view-registrar.d.cts +1 -1
  22. package/dist/lib/cjs/callout.cjs +2 -21
  23. package/dist/lib/cjs/callout.d.cts +2 -1
  24. package/dist/lib/cjs/canvas.cjs +2 -21
  25. package/dist/lib/cjs/canvas.d.cts +1 -1
  26. package/dist/lib/cjs/case-insensitive-file-index.cjs +2 -21
  27. package/dist/lib/cjs/case-insensitive-file-index.d.cts +1 -1
  28. package/dist/lib/cjs/code-block-markdown-information.cjs +1 -47
  29. package/dist/lib/cjs/code-block-markdown-information.d.cts +1 -1
  30. package/dist/lib/cjs/code-block-reg-exp.cjs +1 -47
  31. package/dist/lib/cjs/code-block-reg-exp.d.cts +1 -1
  32. package/dist/lib/cjs/codemirror/index.cjs +2 -48
  33. package/dist/lib/cjs/codemirror/index.d.cts +1 -1
  34. package/dist/lib/cjs/codemirror/state-field-spec.cjs +1 -47
  35. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +1 -1
  36. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +2 -21
  37. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +1 -1
  38. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +2 -21
  39. package/dist/lib/cjs/command-handlers/command-handler-component.d.cts +1 -1
  40. package/dist/lib/cjs/command-handlers/command-handler.cjs +2 -21
  41. package/dist/lib/cjs/command-handlers/command-handler.d.cts +1 -1
  42. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +2 -21
  43. package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +1 -1
  44. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +5 -24
  45. package/dist/lib/cjs/command-handlers/file-command-handler.d.cts +1 -1
  46. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +5 -24
  47. package/dist/lib/cjs/command-handlers/folder-command-handler.d.cts +1 -1
  48. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +3 -22
  49. package/dist/lib/cjs/command-handlers/global-command-handler.d.cts +1 -1
  50. package/dist/lib/cjs/command-handlers/index.cjs +11 -57
  51. package/dist/lib/cjs/command-handlers/index.d.cts +1 -1
  52. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +2 -21
  53. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.d.cts +1 -1
  54. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +1 -47
  55. package/dist/lib/cjs/command-handlers/open-settings-command-handler.d.cts +1 -1
  56. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +1 -47
  57. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.d.cts +1 -1
  58. package/dist/lib/cjs/command-registrar.cjs +1 -47
  59. package/dist/lib/cjs/command-registrar.d.cts +1 -1
  60. package/dist/lib/cjs/community-plugins.cjs +2 -21
  61. package/dist/lib/cjs/community-plugins.d.cts +1 -1
  62. package/dist/lib/cjs/components/abort-signal-component.cjs +2 -21
  63. package/dist/lib/cjs/components/abort-signal-component.d.cts +2 -1
  64. package/dist/lib/cjs/components/all-windows-event-component.cjs +1 -47
  65. package/dist/lib/cjs/components/all-windows-event-component.d.cts +2 -1
  66. package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -21
  67. package/dist/lib/cjs/components/async-error-handler-component.d.cts +1 -1
  68. package/dist/lib/cjs/components/async-events-component.cjs +2 -21
  69. package/dist/lib/cjs/components/async-events-component.d.cts +1 -1
  70. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +1 -47
  71. package/dist/lib/cjs/components/case-insensitive-file-index-component.d.cts +1 -1
  72. package/dist/lib/cjs/components/component-ex.cjs +3 -16
  73. package/dist/lib/cjs/components/component-ex.d.cts +1 -1
  74. package/dist/lib/cjs/components/console-debug-component.cjs +2 -21
  75. package/dist/lib/cjs/components/console-debug-component.d.cts +1 -1
  76. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +2 -21
  77. package/dist/lib/cjs/components/core-plugin-toggle-component.d.cts +1 -1
  78. package/dist/lib/cjs/components/disposable-component.cjs +3 -16
  79. package/dist/lib/cjs/components/disposable-component.d.cts +1 -1
  80. package/dist/lib/cjs/components/embed-extensions-component.cjs +1 -47
  81. package/dist/lib/cjs/components/embed-extensions-component.d.cts +1 -1
  82. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +1 -47
  83. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.d.cts +1 -1
  84. package/dist/lib/cjs/components/index.cjs +30 -76
  85. package/dist/lib/cjs/components/index.d.cts +1 -1
  86. package/dist/lib/cjs/components/layout-ready-component.cjs +2 -21
  87. package/dist/lib/cjs/components/layout-ready-component.d.cts +1 -1
  88. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +1 -47
  89. package/dist/lib/cjs/components/menu-event-registrar-component.d.cts +1 -1
  90. package/dist/lib/cjs/components/monkey-around-component.cjs +2 -21
  91. package/dist/lib/cjs/components/monkey-around-component.d.cts +1 -1
  92. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +2 -21
  93. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.d.cts +1 -1
  94. package/dist/lib/cjs/components/plugin-context-component.cjs +2 -21
  95. package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -1
  96. package/dist/lib/cjs/components/plugin-gate-component.cjs +2 -21
  97. package/dist/lib/cjs/components/plugin-gate-component.d.cts +2 -1
  98. package/dist/lib/cjs/components/plugin-notice-component.cjs +3 -16
  99. package/dist/lib/cjs/components/plugin-notice-component.d.cts +2 -1
  100. package/dist/lib/cjs/components/plugin-settings-component.cjs +2 -21
  101. package/dist/lib/cjs/components/plugin-settings-component.d.cts +1 -1
  102. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +2 -21
  103. package/dist/lib/cjs/components/plugin-settings-tab-component.d.cts +1 -1
  104. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +2 -21
  105. package/dist/lib/cjs/components/plugin-suggestion-component.d.cts +2 -1
  106. package/dist/lib/cjs/components/pointer-position-component.cjs +1 -47
  107. package/dist/lib/cjs/components/pointer-position-component.d.cts +1 -1
  108. package/dist/lib/cjs/components/registry-component.cjs +2 -21
  109. package/dist/lib/cjs/components/registry-component.d.cts +1 -1
  110. package/dist/lib/cjs/components/release-notes-component.cjs +2 -21
  111. package/dist/lib/cjs/components/release-notes-component.d.cts +2 -1
  112. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +3 -16
  113. package/dist/lib/cjs/components/rename-delete-handler-component.d.cts +1 -1
  114. package/dist/lib/cjs/components/rmdir-guard-component.cjs +1 -47
  115. package/dist/lib/cjs/components/rmdir-guard-component.d.cts +1 -1
  116. package/dist/lib/cjs/components/settings-migration-component.cjs +2 -21
  117. package/dist/lib/cjs/components/settings-migration-component.d.cts +1 -1
  118. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +2 -21
  119. package/dist/lib/cjs/components/syntax-highlighting-component.d.cts +1 -1
  120. package/dist/lib/cjs/components/templates-language-component.cjs +3 -49
  121. package/dist/lib/cjs/components/templates-language-component.d.cts +1 -1
  122. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +3 -16
  123. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.d.cts +1 -1
  124. package/dist/lib/cjs/constructors/index.cjs +2 -48
  125. package/dist/lib/cjs/constructors/index.d.cts +1 -1
  126. package/dist/lib/cjs/css-class.cjs +1 -47
  127. package/dist/lib/cjs/css-class.d.cts +1 -1
  128. package/dist/lib/cjs/data-handler.cjs +1 -47
  129. package/dist/lib/cjs/data-handler.d.cts +1 -1
  130. package/dist/lib/cjs/dataview-link.cjs +2 -21
  131. package/dist/lib/cjs/dataview-link.d.cts +1 -1
  132. package/dist/lib/cjs/dataview.cjs +2 -21
  133. package/dist/lib/cjs/dataview.d.cts +2 -1
  134. package/dist/lib/cjs/debug.cjs +2 -21
  135. package/dist/lib/cjs/debug.d.cts +1 -1
  136. package/dist/lib/cjs/demo-vault-helper-settings.cjs +1 -47
  137. package/dist/lib/cjs/demo-vault-helper-settings.d.cts +1 -1
  138. package/dist/lib/cjs/demo-vault-helper.cjs +2 -21
  139. package/dist/lib/cjs/demo-vault-helper.d.cts +1 -1
  140. package/dist/lib/cjs/demo-vault-naming.cjs +1 -47
  141. package/dist/lib/cjs/demo-vault-naming.d.cts +1 -1
  142. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +3 -16
  143. package/dist/lib/cjs/desktop-demo-vault-opener.d.cts +1 -1
  144. package/dist/lib/cjs/desktop-trusted-input.cjs +2 -21
  145. package/dist/lib/cjs/desktop-trusted-input.d.cts +2 -1
  146. package/dist/lib/cjs/editor-extension-registrar.cjs +2 -21
  147. package/dist/lib/cjs/editor-extension-registrar.d.cts +1 -1
  148. package/dist/lib/cjs/editor-suggest-registrar.cjs +2 -21
  149. package/dist/lib/cjs/editor-suggest-registrar.d.cts +1 -1
  150. package/dist/lib/cjs/editor.cjs +2 -21
  151. package/dist/lib/cjs/editor.d.cts +1 -1
  152. package/dist/lib/cjs/events.cjs +2 -21
  153. package/dist/lib/cjs/events.d.cts +1 -1
  154. package/dist/lib/cjs/extensions-registrar.cjs +2 -21
  155. package/dist/lib/cjs/extensions-registrar.d.cts +1 -1
  156. package/dist/lib/cjs/file-change.cjs +2 -21
  157. package/dist/lib/cjs/file-change.d.cts +2 -1
  158. package/dist/lib/cjs/file-explorer.cjs +2 -21
  159. package/dist/lib/cjs/file-explorer.d.cts +1 -1
  160. package/dist/lib/cjs/file-manager.cjs +2 -21
  161. package/dist/lib/cjs/file-manager.d.cts +2 -1
  162. package/dist/lib/cjs/file-system.cjs +2 -21
  163. package/dist/lib/cjs/file-system.d.cts +1 -1
  164. package/dist/lib/cjs/folder-note.cjs +2 -21
  165. package/dist/lib/cjs/folder-note.d.cts +1 -1
  166. package/dist/lib/cjs/frontmatter-formatting.cjs +2 -21
  167. package/dist/lib/cjs/frontmatter-formatting.d.cts +1 -1
  168. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +2 -21
  169. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.d.cts +1 -1
  170. package/dist/lib/cjs/frontmatter.cjs +2 -21
  171. package/dist/lib/cjs/frontmatter.d.cts +1 -1
  172. package/dist/lib/cjs/generated-during-build.cjs +2 -48
  173. package/dist/lib/cjs/generated-during-build.d.cts +1 -1
  174. package/dist/lib/cjs/hover-link-source-registrar.cjs +2 -21
  175. package/dist/lib/cjs/hover-link-source-registrar.d.cts +1 -1
  176. package/dist/lib/cjs/html-element.cjs +1 -47
  177. package/dist/lib/cjs/html-element.d.cts +2 -1
  178. package/dist/lib/cjs/i18n/custom-type-options.cjs +1 -47
  179. package/dist/lib/cjs/i18n/custom-type-options.d.cts +1 -1
  180. package/dist/lib/cjs/i18n/default-translations.cjs +1 -47
  181. package/dist/lib/cjs/i18n/default-translations.d.cts +1 -1
  182. package/dist/lib/cjs/i18n/i18n.cjs +3 -22
  183. package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
  184. package/dist/lib/cjs/i18n/index.cjs +5 -51
  185. package/dist/lib/cjs/i18n/index.d.cts +1 -1
  186. package/dist/lib/cjs/i18n/locales/en.cjs +1 -47
  187. package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
  188. package/dist/lib/cjs/i18n/locales/index.cjs +3 -49
  189. package/dist/lib/cjs/i18n/locales/index.d.cts +1 -1
  190. package/dist/lib/cjs/i18n/locales/translations-map.cjs +1 -47
  191. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
  192. package/dist/lib/cjs/index.cjs +96 -142
  193. package/dist/lib/cjs/index.d.cts +1 -1
  194. package/dist/lib/cjs/is-in-obsidian.cjs +1 -47
  195. package/dist/lib/cjs/is-in-obsidian.d.cts +1 -1
  196. package/dist/lib/cjs/library-references.d.cts +2 -0
  197. package/dist/lib/cjs/library-styles.cjs +2 -21
  198. package/dist/lib/cjs/library-styles.d.cts +2 -1
  199. package/dist/lib/cjs/library.cjs +1 -47
  200. package/dist/lib/cjs/link-name.cjs +1 -47
  201. package/dist/lib/cjs/link-name.d.cts +1 -1
  202. package/dist/lib/cjs/link-update-progress.cjs +1 -47
  203. package/dist/lib/cjs/link-update-progress.d.cts +1 -1
  204. package/dist/lib/cjs/link.cjs +3 -16
  205. package/dist/lib/cjs/link.d.cts +2 -1
  206. package/dist/lib/cjs/logger.cjs +2 -21
  207. package/dist/lib/cjs/logger.d.cts +2 -1
  208. package/dist/lib/cjs/loop.cjs +3 -16
  209. package/dist/lib/cjs/loop.d.cts +2 -1
  210. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +2 -21
  211. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +2 -1
  212. package/dist/lib/cjs/markdown-code-block-processor.cjs +2 -21
  213. package/dist/lib/cjs/markdown-code-block-processor.d.cts +2 -1
  214. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +2 -21
  215. package/dist/lib/cjs/markdown-post-processor-registrar.d.cts +2 -1
  216. package/dist/lib/cjs/markdown-view.cjs +1 -47
  217. package/dist/lib/cjs/markdown-view.d.cts +1 -1
  218. package/dist/lib/cjs/markdown.cjs +3 -16
  219. package/dist/lib/cjs/markdown.d.cts +2 -1
  220. package/dist/lib/cjs/menu-event-registrar.cjs +1 -47
  221. package/dist/lib/cjs/menu-event-registrar.d.cts +1 -1
  222. package/dist/lib/cjs/metadata-cache.cjs +3 -16
  223. package/dist/lib/cjs/metadata-cache.d.cts +1 -1
  224. package/dist/lib/cjs/mobile-trusted-input.cjs +1 -47
  225. package/dist/lib/cjs/mobile-trusted-input.d.cts +1 -1
  226. package/dist/lib/cjs/modals/alert.cjs +2 -21
  227. package/dist/lib/cjs/modals/alert.d.cts +2 -1
  228. package/dist/lib/cjs/modals/confirm.cjs +2 -21
  229. package/dist/lib/cjs/modals/confirm.d.cts +2 -1
  230. package/dist/lib/cjs/modals/index.cjs +10 -56
  231. package/dist/lib/cjs/modals/index.d.cts +1 -1
  232. package/dist/lib/cjs/modals/minimizable-modal.cjs +2 -21
  233. package/dist/lib/cjs/modals/minimizable-modal.d.cts +1 -1
  234. package/dist/lib/cjs/modals/modal-command-builder.cjs +2 -21
  235. package/dist/lib/cjs/modals/modal-command-builder.d.cts +2 -1
  236. package/dist/lib/cjs/modals/modal.cjs +2 -21
  237. package/dist/lib/cjs/modals/modal.d.cts +1 -1
  238. package/dist/lib/cjs/modals/prompt.cjs +2 -21
  239. package/dist/lib/cjs/modals/prompt.d.cts +2 -1
  240. package/dist/lib/cjs/modals/select-item.cjs +2 -21
  241. package/dist/lib/cjs/modals/select-item.d.cts +1 -1
  242. package/dist/lib/cjs/modals/select-option.cjs +2 -21
  243. package/dist/lib/cjs/modals/select-option.d.cts +2 -1
  244. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +1 -47
  245. package/dist/lib/cjs/modals/suggest-modal-command-builder.d.cts +1 -1
  246. package/dist/lib/cjs/note-priority.cjs +2 -21
  247. package/dist/lib/cjs/note-priority.d.cts +1 -1
  248. package/dist/lib/cjs/notebook-navigator.cjs +1 -47
  249. package/dist/lib/cjs/notebook-navigator.d.cts +1 -1
  250. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +2 -21
  251. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +1 -1
  252. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +2 -21
  253. package/dist/lib/cjs/obsidian-protocol-handler-registrar.d.cts +1 -1
  254. package/dist/lib/cjs/obsidian-settings.cjs +2 -21
  255. package/dist/lib/cjs/obsidian-settings.d.cts +1 -1
  256. package/dist/lib/cjs/parse-link.cjs +3 -22
  257. package/dist/lib/cjs/parse-link.d.cts +1 -1
  258. package/dist/lib/cjs/path-settings.cjs +2 -21
  259. package/dist/lib/cjs/path-settings.d.cts +1 -1
  260. package/dist/lib/cjs/pdf.cjs +2 -21
  261. package/dist/lib/cjs/pdf.d.cts +2 -1
  262. package/dist/lib/cjs/plugin/index.cjs +10 -56
  263. package/dist/lib/cjs/plugin/index.d.cts +1 -1
  264. package/dist/lib/cjs/plugin/plugin-api-schema.cjs +2 -21
  265. package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +1 -1
  266. package/dist/lib/cjs/plugin/plugin-api.cjs +2 -21
  267. package/dist/lib/cjs/plugin/plugin-api.d.cts +1 -1
  268. package/dist/lib/cjs/plugin/plugin-context.cjs +2 -21
  269. package/dist/lib/cjs/plugin/plugin-context.d.cts +2 -1
  270. package/dist/lib/cjs/plugin/plugin-event-source.cjs +1 -47
  271. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +1 -1
  272. package/dist/lib/cjs/plugin/plugin-install-state.cjs +1 -47
  273. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +1 -1
  274. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -47
  275. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +1 -1
  276. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +2 -21
  277. package/dist/lib/cjs/plugin/plugin-settings-tab.d.cts +2 -1
  278. package/dist/lib/cjs/plugin/plugin.cjs +2 -21
  279. package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
  280. package/dist/lib/cjs/plugin/settings-migration-api.cjs +2 -21
  281. package/dist/lib/cjs/plugin/settings-migration-api.d.cts +1 -1
  282. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +2 -21
  283. package/dist/lib/cjs/plugin-cli-handler-registrar.d.cts +1 -1
  284. package/dist/lib/cjs/popovers/field-popover.cjs +2 -21
  285. package/dist/lib/cjs/popovers/field-popover.d.cts +1 -1
  286. package/dist/lib/cjs/popovers/index.cjs +4 -50
  287. package/dist/lib/cjs/popovers/index.d.cts +1 -1
  288. package/dist/lib/cjs/popovers/popover-anchor.cjs +2 -21
  289. package/dist/lib/cjs/popovers/popover-anchor.d.cts +2 -1
  290. package/dist/lib/cjs/popovers/popover.cjs +2 -21
  291. package/dist/lib/cjs/popovers/popover.d.cts +2 -1
  292. package/dist/lib/cjs/property-entry.cjs +1 -47
  293. package/dist/lib/cjs/property-entry.d.cts +1 -1
  294. package/dist/lib/cjs/queue.cjs +2 -21
  295. package/dist/lib/cjs/queue.d.cts +2 -1
  296. package/dist/lib/cjs/react/app-context.cjs +2 -21
  297. package/dist/lib/cjs/react/app-context.d.cts +1 -1
  298. package/dist/lib/cjs/react/index.cjs +2 -48
  299. package/dist/lib/cjs/react/index.d.cts +1 -1
  300. package/dist/lib/cjs/reference.cjs +2 -21
  301. package/dist/lib/cjs/reference.d.cts +1 -1
  302. package/dist/lib/cjs/resource-lock.cjs +2 -21
  303. package/dist/lib/cjs/resource-lock.d.cts +2 -1
  304. package/dist/lib/cjs/resource-url.cjs +2 -21
  305. package/dist/lib/cjs/resource-url.d.cts +1 -1
  306. package/dist/lib/cjs/ribbon-icon-registrar.cjs +2 -21
  307. package/dist/lib/cjs/ribbon-icon-registrar.d.cts +2 -1
  308. package/dist/lib/cjs/setting-components/checkbox-component.cjs +2 -21
  309. package/dist/lib/cjs/setting-components/checkbox-component.d.cts +2 -1
  310. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +2 -21
  311. package/dist/lib/cjs/setting-components/code-highlighter-component.d.cts +2 -1
  312. package/dist/lib/cjs/setting-components/date-component.cjs +2 -21
  313. package/dist/lib/cjs/setting-components/date-component.d.cts +2 -1
  314. package/dist/lib/cjs/setting-components/date-time-component.cjs +2 -21
  315. package/dist/lib/cjs/setting-components/date-time-component.d.cts +2 -1
  316. package/dist/lib/cjs/setting-components/email-component.cjs +1 -47
  317. package/dist/lib/cjs/setting-components/email-component.d.cts +2 -1
  318. package/dist/lib/cjs/setting-components/file-component.cjs +1 -47
  319. package/dist/lib/cjs/setting-components/file-component.d.cts +2 -1
  320. package/dist/lib/cjs/setting-components/index.cjs +27 -73
  321. package/dist/lib/cjs/setting-components/index.d.cts +1 -1
  322. package/dist/lib/cjs/setting-components/month-component.cjs +2 -21
  323. package/dist/lib/cjs/setting-components/month-component.d.cts +2 -1
  324. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +2 -21
  325. package/dist/lib/cjs/setting-components/multiple-dropdown-component.d.cts +3 -1
  326. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +1 -47
  327. package/dist/lib/cjs/setting-components/multiple-email-component.d.cts +2 -1
  328. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +2 -21
  329. package/dist/lib/cjs/setting-components/multiple-file-component.d.cts +2 -1
  330. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +2 -21
  331. package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +2 -1
  332. package/dist/lib/cjs/setting-components/number-component.cjs +1 -47
  333. package/dist/lib/cjs/setting-components/number-component.d.cts +2 -1
  334. package/dist/lib/cjs/setting-components/password-component.cjs +1 -47
  335. package/dist/lib/cjs/setting-components/password-component.d.cts +2 -1
  336. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +2 -21
  337. package/dist/lib/cjs/setting-components/setting-component-wrapper.d.cts +2 -1
  338. package/dist/lib/cjs/setting-components/telephone-component.cjs +1 -47
  339. package/dist/lib/cjs/setting-components/telephone-component.d.cts +2 -1
  340. package/dist/lib/cjs/setting-components/text-based-component.cjs +2 -21
  341. package/dist/lib/cjs/setting-components/text-based-component.d.cts +1 -1
  342. package/dist/lib/cjs/setting-components/time-component.cjs +2 -21
  343. package/dist/lib/cjs/setting-components/time-component.d.cts +2 -1
  344. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +2 -21
  345. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.d.cts +2 -1
  346. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +2 -21
  347. package/dist/lib/cjs/setting-components/typed-dropdown-component.d.cts +3 -1
  348. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +2 -21
  349. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.d.cts +3 -1
  350. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +1 -47
  351. package/dist/lib/cjs/setting-components/typed-range-text-component.d.cts +1 -1
  352. package/dist/lib/cjs/setting-components/typed-text-component.cjs +2 -21
  353. package/dist/lib/cjs/setting-components/typed-text-component.d.cts +2 -1
  354. package/dist/lib/cjs/setting-components/url-component.cjs +1 -47
  355. package/dist/lib/cjs/setting-components/url-component.d.cts +2 -1
  356. package/dist/lib/cjs/setting-components/validator-component.cjs +2 -21
  357. package/dist/lib/cjs/setting-components/validator-component.d.cts +1 -1
  358. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +1 -47
  359. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.d.cts +1 -1
  360. package/dist/lib/cjs/setting-components/week-component.cjs +2 -21
  361. package/dist/lib/cjs/setting-components/week-component.d.cts +2 -1
  362. package/dist/lib/cjs/setting-ex.cjs +2 -21
  363. package/dist/lib/cjs/setting-ex.d.cts +2 -1
  364. package/dist/lib/cjs/setting-group-ex.cjs +2 -21
  365. package/dist/lib/cjs/setting-group-ex.d.cts +2 -1
  366. package/dist/lib/cjs/status-bar-item-registrar.cjs +2 -21
  367. package/dist/lib/cjs/status-bar-item-registrar.d.cts +2 -1
  368. package/dist/lib/cjs/templater.cjs +1 -47
  369. package/dist/lib/cjs/templater.d.cts +1 -1
  370. package/dist/lib/cjs/transformers/duration-transformer.cjs +2 -21
  371. package/dist/lib/cjs/transformers/duration-transformer.d.cts +1 -1
  372. package/dist/lib/cjs/transformers/index.cjs +2 -48
  373. package/dist/lib/cjs/transformers/index.d.cts +1 -1
  374. package/dist/lib/cjs/trusted-input.cjs +2 -21
  375. package/dist/lib/cjs/trusted-input.d.cts +1 -1
  376. package/dist/lib/cjs/validation.cjs +2 -21
  377. package/dist/lib/cjs/validation.d.cts +1 -1
  378. package/dist/lib/cjs/vault-delete.cjs +2 -21
  379. package/dist/lib/cjs/vault-delete.d.cts +1 -1
  380. package/dist/lib/cjs/vault-transaction.cjs +3 -16
  381. package/dist/lib/cjs/vault-transaction.d.cts +1 -1
  382. package/dist/lib/cjs/vault.cjs +3 -16
  383. package/dist/lib/cjs/vault.d.cts +1 -1
  384. package/dist/lib/cjs/view-registrar.cjs +2 -21
  385. package/dist/lib/cjs/view-registrar.d.cts +1 -1
  386. package/dist/lib/cjs/workspace.cjs +2 -21
  387. package/dist/lib/cjs/workspace.d.cts +2 -1
  388. package/dist/lib/esm/@types/i18next.d.mts +1 -1
  389. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +3 -3
  390. package/dist/lib/esm/@types/original-fs.d.mts +2 -1
  391. package/dist/lib/esm/__merged.d.mts +1 -1
  392. package/dist/lib/esm/__merged.mjs +2 -11
  393. package/dist/lib/esm/active-file-provider.d.mts +1 -1
  394. package/dist/lib/esm/active-file-provider.mjs +1 -37
  395. package/dist/lib/esm/app.d.mts +1 -1
  396. package/dist/lib/esm/app.mjs +1 -37
  397. package/dist/lib/esm/async-with-notice.d.mts +2 -1
  398. package/dist/lib/esm/async-with-notice.mjs +2 -11
  399. package/dist/lib/esm/attachment-path.d.mts +1 -1
  400. package/dist/lib/esm/attachment-path.mjs +2 -11
  401. package/dist/lib/esm/attachment-unit-folder.d.mts +1 -1
  402. package/dist/lib/esm/attachment-unit-folder.mjs +2 -11
  403. package/dist/lib/esm/backlink-index.d.mts +1 -1
  404. package/dist/lib/esm/backlink-index.mjs +2 -11
  405. package/dist/lib/esm/backlink.d.mts +1 -1
  406. package/dist/lib/esm/backlink.mjs +2 -11
  407. package/dist/lib/esm/bases-view-registrar.d.mts +1 -1
  408. package/dist/lib/esm/bases-view-registrar.mjs +2 -11
  409. package/dist/lib/esm/callout.d.mts +2 -1
  410. package/dist/lib/esm/callout.mjs +2 -11
  411. package/dist/lib/esm/canvas.d.mts +1 -1
  412. package/dist/lib/esm/canvas.mjs +2 -11
  413. package/dist/lib/esm/case-insensitive-file-index.d.mts +1 -1
  414. package/dist/lib/esm/case-insensitive-file-index.mjs +2 -11
  415. package/dist/lib/esm/code-block-markdown-information.d.mts +1 -1
  416. package/dist/lib/esm/code-block-markdown-information.mjs +0 -36
  417. package/dist/lib/esm/code-block-reg-exp.d.mts +1 -1
  418. package/dist/lib/esm/code-block-reg-exp.mjs +1 -37
  419. package/dist/lib/esm/codemirror/index.d.mts +1 -1
  420. package/dist/lib/esm/codemirror/index.mjs +1 -37
  421. package/dist/lib/esm/codemirror/state-field-spec.d.mts +1 -1
  422. package/dist/lib/esm/codemirror/state-field-spec.mjs +0 -36
  423. package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +1 -1
  424. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +2 -11
  425. package/dist/lib/esm/command-handlers/command-handler-component.d.mts +1 -1
  426. package/dist/lib/esm/command-handlers/command-handler-component.mjs +2 -11
  427. package/dist/lib/esm/command-handlers/command-handler.d.mts +1 -1
  428. package/dist/lib/esm/command-handlers/command-handler.mjs +2 -11
  429. package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +1 -1
  430. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +2 -11
  431. package/dist/lib/esm/command-handlers/file-command-handler.d.mts +1 -1
  432. package/dist/lib/esm/command-handlers/file-command-handler.mjs +5 -14
  433. package/dist/lib/esm/command-handlers/folder-command-handler.d.mts +1 -1
  434. package/dist/lib/esm/command-handlers/folder-command-handler.mjs +5 -14
  435. package/dist/lib/esm/command-handlers/global-command-handler.d.mts +1 -1
  436. package/dist/lib/esm/command-handlers/global-command-handler.mjs +3 -12
  437. package/dist/lib/esm/command-handlers/index.d.mts +1 -1
  438. package/dist/lib/esm/command-handlers/index.mjs +1 -37
  439. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.d.mts +1 -1
  440. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +2 -11
  441. package/dist/lib/esm/command-handlers/open-settings-command-handler.d.mts +1 -1
  442. package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +1 -37
  443. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.d.mts +1 -1
  444. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +1 -37
  445. package/dist/lib/esm/command-registrar.d.mts +1 -1
  446. package/dist/lib/esm/command-registrar.mjs +1 -37
  447. package/dist/lib/esm/community-plugins.d.mts +1 -1
  448. package/dist/lib/esm/community-plugins.mjs +2 -11
  449. package/dist/lib/esm/components/abort-signal-component.d.mts +2 -1
  450. package/dist/lib/esm/components/abort-signal-component.mjs +2 -11
  451. package/dist/lib/esm/components/all-windows-event-component.d.mts +2 -1
  452. package/dist/lib/esm/components/all-windows-event-component.mjs +1 -37
  453. package/dist/lib/esm/components/async-error-handler-component.d.mts +1 -1
  454. package/dist/lib/esm/components/async-error-handler-component.mjs +2 -11
  455. package/dist/lib/esm/components/async-events-component.d.mts +1 -1
  456. package/dist/lib/esm/components/async-events-component.mjs +2 -11
  457. package/dist/lib/esm/components/case-insensitive-file-index-component.d.mts +1 -1
  458. package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +1 -37
  459. package/dist/lib/esm/components/component-ex.d.mts +1 -1
  460. package/dist/lib/esm/components/component-ex.mjs +3 -6
  461. package/dist/lib/esm/components/console-debug-component.d.mts +1 -1
  462. package/dist/lib/esm/components/console-debug-component.mjs +2 -11
  463. package/dist/lib/esm/components/core-plugin-toggle-component.d.mts +1 -1
  464. package/dist/lib/esm/components/core-plugin-toggle-component.mjs +2 -11
  465. package/dist/lib/esm/components/disposable-component.d.mts +1 -1
  466. package/dist/lib/esm/components/disposable-component.mjs +3 -6
  467. package/dist/lib/esm/components/embed-extensions-component.d.mts +1 -1
  468. package/dist/lib/esm/components/embed-extensions-component.mjs +1 -37
  469. package/dist/lib/esm/components/generate-markdown-link-default-params-component.d.mts +1 -1
  470. package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +1 -37
  471. package/dist/lib/esm/components/index.d.mts +1 -1
  472. package/dist/lib/esm/components/index.mjs +1 -37
  473. package/dist/lib/esm/components/layout-ready-component.d.mts +1 -1
  474. package/dist/lib/esm/components/layout-ready-component.mjs +2 -11
  475. package/dist/lib/esm/components/menu-event-registrar-component.d.mts +1 -1
  476. package/dist/lib/esm/components/menu-event-registrar-component.mjs +1 -37
  477. package/dist/lib/esm/components/monkey-around-component.d.mts +1 -1
  478. package/dist/lib/esm/components/monkey-around-component.mjs +2 -11
  479. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.d.mts +1 -1
  480. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +2 -11
  481. package/dist/lib/esm/components/plugin-context-component.d.mts +1 -1
  482. package/dist/lib/esm/components/plugin-context-component.mjs +2 -11
  483. package/dist/lib/esm/components/plugin-gate-component.d.mts +2 -1
  484. package/dist/lib/esm/components/plugin-gate-component.mjs +2 -11
  485. package/dist/lib/esm/components/plugin-notice-component.d.mts +2 -1
  486. package/dist/lib/esm/components/plugin-notice-component.mjs +3 -6
  487. package/dist/lib/esm/components/plugin-settings-component.d.mts +1 -1
  488. package/dist/lib/esm/components/plugin-settings-component.mjs +2 -11
  489. package/dist/lib/esm/components/plugin-settings-tab-component.d.mts +1 -1
  490. package/dist/lib/esm/components/plugin-settings-tab-component.mjs +2 -11
  491. package/dist/lib/esm/components/plugin-suggestion-component.d.mts +2 -1
  492. package/dist/lib/esm/components/plugin-suggestion-component.mjs +2 -11
  493. package/dist/lib/esm/components/pointer-position-component.d.mts +1 -1
  494. package/dist/lib/esm/components/pointer-position-component.mjs +1 -37
  495. package/dist/lib/esm/components/registry-component.d.mts +1 -1
  496. package/dist/lib/esm/components/registry-component.mjs +2 -11
  497. package/dist/lib/esm/components/release-notes-component.d.mts +2 -1
  498. package/dist/lib/esm/components/release-notes-component.mjs +2 -11
  499. package/dist/lib/esm/components/rename-delete-handler-component.d.mts +1 -1
  500. package/dist/lib/esm/components/rename-delete-handler-component.mjs +3 -6
  501. package/dist/lib/esm/components/rmdir-guard-component.d.mts +1 -1
  502. package/dist/lib/esm/components/rmdir-guard-component.mjs +1 -37
  503. package/dist/lib/esm/components/settings-migration-component.d.mts +1 -1
  504. package/dist/lib/esm/components/settings-migration-component.mjs +2 -11
  505. package/dist/lib/esm/components/syntax-highlighting-component.d.mts +1 -1
  506. package/dist/lib/esm/components/syntax-highlighting-component.mjs +2 -11
  507. package/dist/lib/esm/components/templates-language-component.d.mts +1 -1
  508. package/dist/lib/esm/components/templates-language-component.mjs +3 -39
  509. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.d.mts +1 -1
  510. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +3 -6
  511. package/dist/lib/esm/constructors/index.d.mts +1 -1
  512. package/dist/lib/esm/constructors/index.mjs +1 -37
  513. package/dist/lib/esm/css-class.d.mts +1 -1
  514. package/dist/lib/esm/css-class.mjs +1 -37
  515. package/dist/lib/esm/data-handler.d.mts +1 -1
  516. package/dist/lib/esm/data-handler.mjs +1 -37
  517. package/dist/lib/esm/dataview-link.d.mts +1 -1
  518. package/dist/lib/esm/dataview-link.mjs +2 -11
  519. package/dist/lib/esm/dataview.d.mts +2 -1
  520. package/dist/lib/esm/dataview.mjs +2 -11
  521. package/dist/lib/esm/debug.d.mts +1 -1
  522. package/dist/lib/esm/debug.mjs +2 -11
  523. package/dist/lib/esm/demo-vault-helper-settings.d.mts +1 -1
  524. package/dist/lib/esm/demo-vault-helper-settings.mjs +0 -36
  525. package/dist/lib/esm/demo-vault-helper.d.mts +1 -1
  526. package/dist/lib/esm/demo-vault-helper.mjs +2 -11
  527. package/dist/lib/esm/demo-vault-naming.d.mts +1 -1
  528. package/dist/lib/esm/demo-vault-naming.mjs +1 -37
  529. package/dist/lib/esm/desktop-demo-vault-opener.d.mts +1 -1
  530. package/dist/lib/esm/desktop-demo-vault-opener.mjs +3 -6
  531. package/dist/lib/esm/desktop-trusted-input.d.mts +2 -1
  532. package/dist/lib/esm/desktop-trusted-input.mjs +2 -11
  533. package/dist/lib/esm/editor-extension-registrar.d.mts +1 -1
  534. package/dist/lib/esm/editor-extension-registrar.mjs +2 -11
  535. package/dist/lib/esm/editor-suggest-registrar.d.mts +1 -1
  536. package/dist/lib/esm/editor-suggest-registrar.mjs +2 -11
  537. package/dist/lib/esm/editor.d.mts +1 -1
  538. package/dist/lib/esm/editor.mjs +2 -11
  539. package/dist/lib/esm/events.d.mts +1 -1
  540. package/dist/lib/esm/events.mjs +2 -11
  541. package/dist/lib/esm/extensions-registrar.d.mts +1 -1
  542. package/dist/lib/esm/extensions-registrar.mjs +2 -11
  543. package/dist/lib/esm/file-change.d.mts +2 -1
  544. package/dist/lib/esm/file-change.mjs +2 -11
  545. package/dist/lib/esm/file-explorer.d.mts +1 -1
  546. package/dist/lib/esm/file-explorer.mjs +2 -11
  547. package/dist/lib/esm/file-manager.d.mts +2 -1
  548. package/dist/lib/esm/file-manager.mjs +2 -11
  549. package/dist/lib/esm/file-system.d.mts +1 -1
  550. package/dist/lib/esm/file-system.mjs +2 -11
  551. package/dist/lib/esm/folder-note.d.mts +1 -1
  552. package/dist/lib/esm/folder-note.mjs +2 -11
  553. package/dist/lib/esm/frontmatter-formatting.d.mts +1 -1
  554. package/dist/lib/esm/frontmatter-formatting.mjs +2 -11
  555. package/dist/lib/esm/frontmatter-link-cache-with-offsets.d.mts +1 -1
  556. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +2 -11
  557. package/dist/lib/esm/frontmatter.d.mts +1 -1
  558. package/dist/lib/esm/frontmatter.mjs +2 -11
  559. package/dist/lib/esm/generated-during-build.d.mts +1 -1
  560. package/dist/lib/esm/generated-during-build.mjs +2 -38
  561. package/dist/lib/esm/hover-link-source-registrar.d.mts +1 -1
  562. package/dist/lib/esm/hover-link-source-registrar.mjs +2 -11
  563. package/dist/lib/esm/html-element.d.mts +2 -1
  564. package/dist/lib/esm/html-element.mjs +1 -37
  565. package/dist/lib/esm/i18n/custom-type-options.d.mts +1 -1
  566. package/dist/lib/esm/i18n/custom-type-options.mjs +1 -37
  567. package/dist/lib/esm/i18n/default-translations.d.mts +1 -1
  568. package/dist/lib/esm/i18n/default-translations.mjs +1 -37
  569. package/dist/lib/esm/i18n/i18n.d.mts +1 -1
  570. package/dist/lib/esm/i18n/i18n.mjs +2 -11
  571. package/dist/lib/esm/i18n/index.d.mts +1 -1
  572. package/dist/lib/esm/i18n/index.mjs +1 -37
  573. package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
  574. package/dist/lib/esm/i18n/locales/en.mjs +1 -37
  575. package/dist/lib/esm/i18n/locales/index.d.mts +1 -1
  576. package/dist/lib/esm/i18n/locales/index.mjs +1 -37
  577. package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
  578. package/dist/lib/esm/i18n/locales/translations-map.mjs +1 -37
  579. package/dist/lib/esm/index.d.mts +1 -1
  580. package/dist/lib/esm/index.mjs +1 -37
  581. package/dist/lib/esm/is-in-obsidian.d.mts +1 -1
  582. package/dist/lib/esm/is-in-obsidian.mjs +1 -37
  583. package/dist/lib/esm/library-references.d.mts +2 -0
  584. package/dist/lib/esm/library-styles.d.mts +2 -1
  585. package/dist/lib/esm/library-styles.mjs +2 -11
  586. package/dist/lib/esm/library.mjs +1 -37
  587. package/dist/lib/esm/link-name.d.mts +1 -1
  588. package/dist/lib/esm/link-name.mjs +1 -37
  589. package/dist/lib/esm/link-update-progress.d.mts +1 -1
  590. package/dist/lib/esm/link-update-progress.mjs +0 -36
  591. package/dist/lib/esm/link.d.mts +2 -1
  592. package/dist/lib/esm/link.mjs +3 -6
  593. package/dist/lib/esm/logger.d.mts +2 -1
  594. package/dist/lib/esm/logger.mjs +2 -11
  595. package/dist/lib/esm/loop.d.mts +2 -1
  596. package/dist/lib/esm/loop.mjs +3 -6
  597. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +2 -1
  598. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +2 -11
  599. package/dist/lib/esm/markdown-code-block-processor.d.mts +2 -1
  600. package/dist/lib/esm/markdown-code-block-processor.mjs +2 -11
  601. package/dist/lib/esm/markdown-post-processor-registrar.d.mts +2 -1
  602. package/dist/lib/esm/markdown-post-processor-registrar.mjs +2 -11
  603. package/dist/lib/esm/markdown-view.d.mts +1 -1
  604. package/dist/lib/esm/markdown-view.mjs +1 -37
  605. package/dist/lib/esm/markdown.d.mts +2 -1
  606. package/dist/lib/esm/markdown.mjs +3 -6
  607. package/dist/lib/esm/menu-event-registrar.d.mts +1 -1
  608. package/dist/lib/esm/menu-event-registrar.mjs +0 -36
  609. package/dist/lib/esm/metadata-cache.d.mts +1 -1
  610. package/dist/lib/esm/metadata-cache.mjs +3 -6
  611. package/dist/lib/esm/mobile-trusted-input.d.mts +1 -1
  612. package/dist/lib/esm/mobile-trusted-input.mjs +1 -37
  613. package/dist/lib/esm/modals/alert.d.mts +2 -1
  614. package/dist/lib/esm/modals/alert.mjs +2 -11
  615. package/dist/lib/esm/modals/confirm.d.mts +2 -1
  616. package/dist/lib/esm/modals/confirm.mjs +2 -11
  617. package/dist/lib/esm/modals/index.d.mts +1 -1
  618. package/dist/lib/esm/modals/index.mjs +1 -37
  619. package/dist/lib/esm/modals/minimizable-modal.d.mts +1 -1
  620. package/dist/lib/esm/modals/minimizable-modal.mjs +2 -11
  621. package/dist/lib/esm/modals/modal-command-builder.d.mts +2 -1
  622. package/dist/lib/esm/modals/modal-command-builder.mjs +2 -11
  623. package/dist/lib/esm/modals/modal.d.mts +1 -1
  624. package/dist/lib/esm/modals/modal.mjs +2 -11
  625. package/dist/lib/esm/modals/prompt.d.mts +2 -1
  626. package/dist/lib/esm/modals/prompt.mjs +2 -11
  627. package/dist/lib/esm/modals/select-item.d.mts +1 -1
  628. package/dist/lib/esm/modals/select-item.mjs +2 -11
  629. package/dist/lib/esm/modals/select-option.d.mts +2 -1
  630. package/dist/lib/esm/modals/select-option.mjs +2 -11
  631. package/dist/lib/esm/modals/suggest-modal-command-builder.d.mts +1 -1
  632. package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +1 -37
  633. package/dist/lib/esm/note-priority.d.mts +1 -1
  634. package/dist/lib/esm/note-priority.mjs +2 -11
  635. package/dist/lib/esm/notebook-navigator.d.mts +1 -1
  636. package/dist/lib/esm/notebook-navigator.mjs +1 -37
  637. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +1 -1
  638. package/dist/lib/esm/obsidian-dev-utils-state.mjs +2 -11
  639. package/dist/lib/esm/obsidian-protocol-handler-registrar.d.mts +1 -1
  640. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +2 -11
  641. package/dist/lib/esm/obsidian-settings.d.mts +1 -1
  642. package/dist/lib/esm/obsidian-settings.mjs +2 -11
  643. package/dist/lib/esm/parse-link.d.mts +1 -1
  644. package/dist/lib/esm/parse-link.mjs +2 -11
  645. package/dist/lib/esm/path-settings.d.mts +1 -1
  646. package/dist/lib/esm/path-settings.mjs +2 -11
  647. package/dist/lib/esm/pdf.d.mts +2 -1
  648. package/dist/lib/esm/pdf.mjs +2 -11
  649. package/dist/lib/esm/plugin/index.d.mts +1 -1
  650. package/dist/lib/esm/plugin/index.mjs +1 -37
  651. package/dist/lib/esm/plugin/plugin-api-schema.d.mts +1 -1
  652. package/dist/lib/esm/plugin/plugin-api-schema.mjs +2 -11
  653. package/dist/lib/esm/plugin/plugin-api.d.mts +1 -1
  654. package/dist/lib/esm/plugin/plugin-api.mjs +2 -11
  655. package/dist/lib/esm/plugin/plugin-context.d.mts +2 -1
  656. package/dist/lib/esm/plugin/plugin-context.mjs +2 -11
  657. package/dist/lib/esm/plugin/plugin-event-source.d.mts +1 -1
  658. package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -37
  659. package/dist/lib/esm/plugin/plugin-install-state.d.mts +1 -1
  660. package/dist/lib/esm/plugin/plugin-install-state.mjs +1 -37
  661. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +1 -1
  662. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
  663. package/dist/lib/esm/plugin/plugin-settings-tab.d.mts +2 -1
  664. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +2 -11
  665. package/dist/lib/esm/plugin/plugin.d.mts +1 -1
  666. package/dist/lib/esm/plugin/plugin.mjs +2 -11
  667. package/dist/lib/esm/plugin/settings-migration-api.d.mts +1 -1
  668. package/dist/lib/esm/plugin/settings-migration-api.mjs +2 -11
  669. package/dist/lib/esm/plugin-cli-handler-registrar.d.mts +1 -1
  670. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +2 -11
  671. package/dist/lib/esm/popovers/field-popover.d.mts +1 -1
  672. package/dist/lib/esm/popovers/field-popover.mjs +2 -11
  673. package/dist/lib/esm/popovers/index.d.mts +1 -1
  674. package/dist/lib/esm/popovers/index.mjs +1 -37
  675. package/dist/lib/esm/popovers/popover-anchor.d.mts +2 -1
  676. package/dist/lib/esm/popovers/popover-anchor.mjs +2 -11
  677. package/dist/lib/esm/popovers/popover.d.mts +2 -1
  678. package/dist/lib/esm/popovers/popover.mjs +2 -11
  679. package/dist/lib/esm/property-entry.d.mts +1 -1
  680. package/dist/lib/esm/property-entry.mjs +1 -37
  681. package/dist/lib/esm/queue.d.mts +2 -1
  682. package/dist/lib/esm/queue.mjs +2 -11
  683. package/dist/lib/esm/react/app-context.d.mts +1 -1
  684. package/dist/lib/esm/react/app-context.mjs +2 -11
  685. package/dist/lib/esm/react/index.d.mts +1 -1
  686. package/dist/lib/esm/react/index.mjs +1 -37
  687. package/dist/lib/esm/reference.d.mts +1 -1
  688. package/dist/lib/esm/reference.mjs +2 -11
  689. package/dist/lib/esm/resource-lock.d.mts +2 -1
  690. package/dist/lib/esm/resource-lock.mjs +2 -11
  691. package/dist/lib/esm/resource-url.d.mts +1 -1
  692. package/dist/lib/esm/resource-url.mjs +2 -11
  693. package/dist/lib/esm/ribbon-icon-registrar.d.mts +2 -1
  694. package/dist/lib/esm/ribbon-icon-registrar.mjs +2 -11
  695. package/dist/lib/esm/setting-components/checkbox-component.d.mts +2 -1
  696. package/dist/lib/esm/setting-components/checkbox-component.mjs +2 -11
  697. package/dist/lib/esm/setting-components/code-highlighter-component.d.mts +2 -1
  698. package/dist/lib/esm/setting-components/code-highlighter-component.mjs +2 -11
  699. package/dist/lib/esm/setting-components/date-component.d.mts +2 -1
  700. package/dist/lib/esm/setting-components/date-component.mjs +2 -11
  701. package/dist/lib/esm/setting-components/date-time-component.d.mts +2 -1
  702. package/dist/lib/esm/setting-components/date-time-component.mjs +2 -11
  703. package/dist/lib/esm/setting-components/email-component.d.mts +2 -1
  704. package/dist/lib/esm/setting-components/email-component.mjs +1 -37
  705. package/dist/lib/esm/setting-components/file-component.d.mts +2 -1
  706. package/dist/lib/esm/setting-components/file-component.mjs +1 -37
  707. package/dist/lib/esm/setting-components/index.d.mts +1 -1
  708. package/dist/lib/esm/setting-components/index.mjs +1 -37
  709. package/dist/lib/esm/setting-components/month-component.d.mts +2 -1
  710. package/dist/lib/esm/setting-components/month-component.mjs +2 -11
  711. package/dist/lib/esm/setting-components/multiple-dropdown-component.d.mts +3 -1
  712. package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +2 -11
  713. package/dist/lib/esm/setting-components/multiple-email-component.d.mts +2 -1
  714. package/dist/lib/esm/setting-components/multiple-email-component.mjs +1 -37
  715. package/dist/lib/esm/setting-components/multiple-file-component.d.mts +2 -1
  716. package/dist/lib/esm/setting-components/multiple-file-component.mjs +2 -11
  717. package/dist/lib/esm/setting-components/multiple-text-component.d.mts +2 -1
  718. package/dist/lib/esm/setting-components/multiple-text-component.mjs +2 -11
  719. package/dist/lib/esm/setting-components/number-component.d.mts +2 -1
  720. package/dist/lib/esm/setting-components/number-component.mjs +1 -37
  721. package/dist/lib/esm/setting-components/password-component.d.mts +2 -1
  722. package/dist/lib/esm/setting-components/password-component.mjs +1 -37
  723. package/dist/lib/esm/setting-components/setting-component-wrapper.d.mts +2 -1
  724. package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +2 -11
  725. package/dist/lib/esm/setting-components/telephone-component.d.mts +2 -1
  726. package/dist/lib/esm/setting-components/telephone-component.mjs +1 -37
  727. package/dist/lib/esm/setting-components/text-based-component.d.mts +1 -1
  728. package/dist/lib/esm/setting-components/text-based-component.mjs +2 -11
  729. package/dist/lib/esm/setting-components/time-component.d.mts +2 -1
  730. package/dist/lib/esm/setting-components/time-component.mjs +2 -11
  731. package/dist/lib/esm/setting-components/tri-state-checkbox-component.d.mts +2 -1
  732. package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +2 -11
  733. package/dist/lib/esm/setting-components/typed-dropdown-component.d.mts +3 -1
  734. package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +2 -11
  735. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.d.mts +3 -1
  736. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +2 -11
  737. package/dist/lib/esm/setting-components/typed-range-text-component.d.mts +1 -1
  738. package/dist/lib/esm/setting-components/typed-range-text-component.mjs +1 -37
  739. package/dist/lib/esm/setting-components/typed-text-component.d.mts +2 -1
  740. package/dist/lib/esm/setting-components/typed-text-component.mjs +2 -11
  741. package/dist/lib/esm/setting-components/url-component.d.mts +2 -1
  742. package/dist/lib/esm/setting-components/url-component.mjs +1 -37
  743. package/dist/lib/esm/setting-components/validator-component.d.mts +1 -1
  744. package/dist/lib/esm/setting-components/validator-component.mjs +2 -11
  745. package/dist/lib/esm/setting-components/value-component-with-change-tracking.d.mts +1 -1
  746. package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +0 -36
  747. package/dist/lib/esm/setting-components/week-component.d.mts +2 -1
  748. package/dist/lib/esm/setting-components/week-component.mjs +2 -11
  749. package/dist/lib/esm/setting-ex.d.mts +2 -1
  750. package/dist/lib/esm/setting-ex.mjs +2 -11
  751. package/dist/lib/esm/setting-group-ex.d.mts +2 -1
  752. package/dist/lib/esm/setting-group-ex.mjs +2 -11
  753. package/dist/lib/esm/status-bar-item-registrar.d.mts +2 -1
  754. package/dist/lib/esm/status-bar-item-registrar.mjs +2 -11
  755. package/dist/lib/esm/templater.d.mts +1 -1
  756. package/dist/lib/esm/templater.mjs +1 -37
  757. package/dist/lib/esm/transformers/duration-transformer.d.mts +1 -1
  758. package/dist/lib/esm/transformers/duration-transformer.mjs +2 -11
  759. package/dist/lib/esm/transformers/index.d.mts +1 -1
  760. package/dist/lib/esm/transformers/index.mjs +1 -37
  761. package/dist/lib/esm/trusted-input.d.mts +1 -1
  762. package/dist/lib/esm/trusted-input.mjs +2 -11
  763. package/dist/lib/esm/validation.d.mts +1 -1
  764. package/dist/lib/esm/validation.mjs +2 -11
  765. package/dist/lib/esm/vault-delete.d.mts +1 -1
  766. package/dist/lib/esm/vault-delete.mjs +2 -11
  767. package/dist/lib/esm/vault-transaction.d.mts +1 -1
  768. package/dist/lib/esm/vault-transaction.mjs +3 -6
  769. package/dist/lib/esm/vault.d.mts +1 -1
  770. package/dist/lib/esm/vault.mjs +3 -6
  771. package/dist/lib/esm/view-registrar.d.mts +1 -1
  772. package/dist/lib/esm/view-registrar.mjs +2 -11
  773. package/dist/lib/esm/workspace.d.mts +2 -1
  774. package/dist/lib/esm/workspace.mjs +2 -11
  775. package/package.json +15 -4
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,20 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
30
+ ensureBrowserProcess();
50
31
  })();
51
32
  (function patchObsidianRequire() {
52
33
  const originalRequire = require;
@@ -432,4 +413,4 @@ function resolveAttachmentFolder(params) {
432
413
  hasOwnAttachmentFolder,
433
414
  isAtProperAttachmentPath
434
415
  });
435
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2F0dGFjaG1lbnQtcGF0aC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYXR0YWNobWVudCBwYXRocy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwaUNvbnRyYWN0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRmlsZVN0YXRzLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVUeXBlR3VhcmRTY2hlbWFcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZVN0cmluZyxcbiAgcmVwbGFjZUFsbCxcbiAgdHJpbVN0YXJ0XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgZ2V0RGF0YUFkYXB0ZXJFeCxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGb2xkZXIsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgZ2V0UGF0aCxcbiAgaXNQYXRoT3JGaWxlLFxuICBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTlxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IGZpbmRQbHVnaW5BcGkgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tYXBpLnRzJztcblxuLyoqXG4gKiBBIGNvbnRleHQgZm9yIGFuIGF0dGFjaG1lbnQgcGF0aC5cbiAqL1xuZXhwb3J0IGVudW0gQXR0YWNobWVudFBhdGhDb250ZXh0IHtcbiAgLyoqXG4gICAqIEEgY29udGV4dCBmb3IgYSBkZWxldGUgbm90ZS5cbiAgICovXG4gIERlbGV0ZU5vdGUgPSAnRGVsZXRlTm90ZScsXG5cbiAgLyoqXG4gICAqIEEgY29udGV4dCBmb3IgYSByZW5hbWUgbm90ZS5cbiAgICovXG4gIFJlbmFtZU5vdGUgPSAnUmVuYW1lTm90ZScsXG5cbiAgLyoqXG4gICAqIEFuIHVua25vd24gY29udGV4dC5cbiAgICovXG4gIFVua25vd24gPSAnVW5rbm93bidcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZ2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyBleHRlbmRlZCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgYmFzZSBuYW1lIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVCYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBleHRlbnNpb24gb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0YXRzIG9mIHRoZSBhdHRhY2htZW50IGZpbGUuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZVN0YXRzPzogRmlsZVN0YXRzIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBBdHRhY2htZW50UGF0aENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb3IgZmlsZSBvZiB0aGUgb2xkIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9yIGZpbGUgb2YgdGhlIG9sZCBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkTm90ZVBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBMYXppbHkgcmVhZHMgdGhlIGNvbnRlbnQgb2YgdGhlIGF0dGFjaG1lbnQgZmlsZS5cbiAgICpcbiAgICogVGhlIGNvbnRlbnQgaXMgcmVhZCBvbiBkZW1hbmQgb25seSB3aGVuIGEgY29uc3VtZXIgYWN0dWFsbHkgbmVlZHMgdGhlIGJ5dGVzIChlLmcuIGEgdGVtcGxhdGVcbiAgICogdG9rZW4gdGhhdCBlbWJlZHMgdGhlbSkuIEZvciB0aGUgZGVmYXVsdCB0ZW1wbGF0ZXMgbm90aGluZyBwdWxscyB0aGUgYnl0ZXMsIHNvIHRoZSBwb3RlbnRpYWxseVxuICAgKiBleHBlbnNpdmUgKHNpemUtcHJvcG9ydGlvbmFsKSBgcmVhZEJpbmFyeWAgbmV2ZXIgcnVucy4gQ29uc3VtZXJzIHRoYXQgbWF5IGNhbGwgdGhpcyBtb3JlIHRoYW5cbiAgICogb25jZSBzaG91bGQgbWVtb2l6ZSB0aGUgZmlyc3QgY2FsbC4gYG51bGxgIHdoZW4gdGhlcmUgaXMgbm8gYXR0YWNobWVudCBmaWxlIHRvIHJlYWQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGF0dGFjaG1lbnQgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQ6ICgoKSA9PiBQcm9taXNlPEFycmF5QnVmZmVyPikgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBnZW5lcmF0ZWQgYXR0YWNobWVudCBmaWxlIG5hbWUgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBHZW5lcmF0ZWRBdHRhY2htZW50RmlsZU5hbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgbWlzc2luZyBhdHRhY2htZW50IGZvbGRlciBjcmVhdGlvbiBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyByZWdpc3RyeSBBUEkgdGhpcyBtb2R1bGUgY2FsbHMsIGRlY2xhcmVkIGhlcmUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQ6XG4gKiB0aGF0IHBsdWdpbiBzaGlwcyBpdHMgc3VyZmFjZSBhcyBhIGhhbmQtd3JpdHRlbiBgYXBpLmQudHNgLCBub3QgYXMgYSBwYWNrYWdlIChzZWUgcnVsZSBMOSBpbiBgQUdFTlRTLm1kYCkuXG4gKi9cbmludGVyZmFjZSBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaSB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgZnVsbCBhdHRhY2htZW50LXBhdGggcmVzb2x2ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgc2FtZSBmaWVsZHMgYXMge0BsaW5rIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRnVuY3Rpb25QYXJhbXN9LCB3aGljaCB0aGVcbiAgICogICBwbHVnaW4gZGVjbGFyZXMgZmllbGQgZm9yIGZpZWxkLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50J3MgcGF0aCBmcm9tIHRoZSB2YXVsdCByb290LlxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzOiAocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zKSA9PiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgZGVzaWduYXRlZCBhIGZvbGRlciBhbiBhdHRhY2htZW50IHVuaXQgZm9sZGVyLiBTeW5jaHJvbm91cyBvbiBwdXJwb3NlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGZvbGRlci5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgZm9sZGVyIGlzIGRlc2lnbmF0ZWQuXG4gICAqL1xuICBpc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiAocGFyYW1zOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaS5pc0F0dGFjaG1lbnRVbml0Rm9sZGVyfS5cbiAqL1xuaW50ZXJmYWNlIEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciwgYXMgYSB2YXVsdC1yZWxhdGl2ZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBwbHVnaW4gaWQgYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCBwdWJsaXNoZXMgaXRzIEFQSSB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX1BMVUdJTl9JRCA9ICdvYnNpZGlhbi1jdXN0b20tYXR0YWNobWVudC1sb2NhdGlvbic7XG5cbi8qKlxuICogVGhlIGNvbnRyYWN0IHZlcnNpb25zIG9mIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyBBUEkgdGhpcyBtb2R1bGUgY29tcGlsZWQgYWdhaW5zdC4gYDEuMy4wYCBpcyB0aGUgZmlyc3RcbiAqIHRvIGNhcnJ5IHRoZSB0d28gYXR0YWNobWVudC1wYXRoIG1ldGhvZHMuXG4gKi9cbmNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX0FUVEFDSE1FTlRfUEFUSF9BUElfVkVSU0lPTl9SQU5HRSA9ICdeMS4zLjAnO1xuXG4vKipcbiAqIFRoZSBjb250cmFjdCBvZiB0aGUgbWVtYmVycyBvZiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gJ3MgQVBJIHRoaXMgbW9kdWxlIGNhbGxzLCBzbyBhIHJlY29yZCB0aGF0IGxhY2tzXG4gKiBlaXRoZXIgaXMgcGFzc2VkIG92ZXIsIGFuZCBhIHBheWxvYWQgdGhhdCBicmVha3MgaXRzIHNpZ25hdHVyZSBpcyByZXBvcnRlZCB3aGlsZSB0aGUgYFBsdWdpbkFwaWAgZGVidWdnZXIgaXMgb24uXG4gKlxuICogQSBjb3B5IG9mIHRob3NlIHR3byBlbnRyaWVzIG9mIGBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9BUElfQ09OVFJBQ1RgLCB3aGljaCBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHNoaXBzIGFzIGl0cyByb290IGBhcGktY29udHJhY3QudHNgXG4gKiBhbmQgcHVibGlzaGVzLiBLZWVwIHRoZSBndWFyZHMgaW4gYWdyZWVtZW50IHdpdGggdGhhdCBmaWxlLCBzbyB0aGUgcHJvdmlkZXIgYW5kIHRoaXMgY29uc3VtZXIgY2hlY2sgb25lIGRlZmluaXRpb24uXG4gKi9cbmNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX0FUVEFDSE1FTlRfUEFUSF9BUElfQ09OVFJBQ1Q6IEFwaUNvbnRyYWN0PEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkF0dGFjaG1lbnRQYXRoQXBpPiA9IHtcbiAgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzOiB7XG4gICAgaW5wdXQ6IGNyZWF0ZUFyZ3VtZW50c1NjaGVtYTxbcGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zXT4oW3tcbiAgICAgIGV4cGVjdGVkOiAnYXZhaWxhYmxlLXBhdGgtZm9yLWF0dGFjaG1lbnRzIHBhcmFtcycsXG4gICAgICB0eXBlR3VhcmQ6IGlzR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGdW5jdGlvblBhcmFtc1xuICAgIH1dKSxcbiAgICBvdXRwdXQ6IGNyZWF0ZVR5cGVHdWFyZFNjaGVtYSh7IGV4cGVjdGVkOiAnYW4gYXR0YWNobWVudCBwYXRoJywgdHlwZUd1YXJkOiBpc1N0cmluZyB9KVxuICB9LFxuICBpc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiB7XG4gICAgaW5wdXQ6IGNyZWF0ZUFyZ3VtZW50c1NjaGVtYTxbcGFyYW1zOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zXT4oW3tcbiAgICAgIGV4cGVjdGVkOiAnYXR0YWNobWVudC11bml0LWZvbGRlciBwYXJhbXM6IHsgZm9sZGVyUGF0aDogc3RyaW5nIH0nLFxuICAgICAgdHlwZUd1YXJkOiBpc0N1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXNcbiAgICB9XSksXG4gICAgb3V0cHV0OiBjcmVhdGVUeXBlR3VhcmRTY2hlbWEoeyBleHBlY3RlZDogJ2EgYm9vbGVhbicsIHR5cGVHdWFyZDogaXNCb29sZWFuIH0pXG4gIH1cbn07XG5cbi8qKlxuICogRHVtbXkgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IERVTU1ZX1BBVEggPSAnX19EVU1NWV9fJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZ2V0QXR0YWNobWVudEZpbGVQYXRoIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGaWxlUGF0aFBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBBdHRhY2htZW50UGF0aENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBvbGQgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9sZE5vdGVQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBkdXBsaWNhdGUgY2hlY2sgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QXR0YWNobWVudEZvbGRlclBhdGh9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGb2xkZXJQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dC5cbiAgICpcbiAgICogQGRlZmF1bHQge0BsaW5rIEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3dufVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGxQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcbiAgLyoqXG4gICAqIEEgYmFzZSBuYW1lIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVCYXNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXh0ZW5zaW9uIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVFeHRlbnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZmlsZSB0byBhdHRhY2ggdG8uXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckZpbGU7XG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogU2hvdWxkIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgY3JlYXRpb24gYmUgc2tpcHBlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBoYXNPd25BdHRhY2htZW50Rm9sZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNPd25BdHRhY2htZW50Rm9sZGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dC5cbiAgICpcbiAgICogQGRlZmF1bHQge0BsaW5rIEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3dufVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXNBdFByb3BlckF0dGFjaG1lbnRQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBhdHRhY2htZW50IHRvIGNoZWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB7QGxpbmsgQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd259XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogQXR0YWNobWVudFBhdGhDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlIHRoYXQgcmVmZXJlbmNlcyB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRBdHRhY2htZW50RmlsZVBhdGhTeW5jfS5cbiAqL1xuaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jfS5cbiAqL1xuaW50ZXJmYWNlIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSBiYXNlIG5hbWUgb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZmlsZSB0byBhdHRhY2ggdG8uXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgZHVwbGljYXRlIGNoZWNrIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlQXR0YWNobWVudEZvbGRlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlQXR0YWNobWVudEZvbGRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIGZpbGUgdG8gYXR0YWNoIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFRoZSBhdHRhY2htZW50IGZvbGRlciBhIG5vdGUgcmVzb2x2ZXMgdG8sIGJlZm9yZSB0aGUgYXR0YWNobWVudCBmaWxlIG5hbWUgaXMgYXBwZW5kZWQuXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlQXR0YWNobWVudEZvbGRlclJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXR0YWNobWVudCBmb2xkZXIsIG9yIGBudWxsYCB3aGVuIGl0IGRvZXMgbm90IGV4aXN0IGluIHRoZSB2YXVsdCB5ZXQuXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI6IG51bGwgfCBURm9sZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9ybWFsaXplZCBhdHRhY2htZW50IGZvbGRlciBwYXRoLCB3aGV0aGVyIG9yIG5vdCB0aGUgZm9sZGVyIGV4aXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnQgb2YgdGhlIGBhdHRhY2htZW50Rm9sZGVyUGF0aGAgc2V0dGluZyB0aGF0IGZvbGxvd3MgYC4vYCwgb3IgYG51bGxgIHdoZW4gdGhlIHNldHRpbmcgaXMgbm90XG4gICAqIHJlbGF0aXZlIHRvIHRoZSBub3RlLiBPbmx5IGEgcmVsYXRpdmUgc2V0dGluZyBtYXkgaGF2ZSBpdHMgbWlzc2luZyBmb2xkZXIgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogbnVsbCB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZpbGUgcGF0aCBmb3IgYW4gYXR0YWNobWVudCB3aXRoaW4gYSBub3RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZmlsZSBwYXRoIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgZmlsZSBwYXRoIG9mIHRoZSBhdHRhY2htZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZpbGVQYXRoKHBhcmFtczogR2V0QXR0YWNobWVudEZpbGVQYXRoUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBjdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkgPSBmaW5kQ3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpKCk7XG4gIGlmICghY3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpKSB7XG4gICAgLy8gTm9ib2R5IG92ZXJyaWRlcyB0aGUgcmVzb2x1dGlvbiwgc28gaXQgaXMgZW50aXJlbHkgc3luY2hyb25vdXMuXG4gICAgLy8gVGhlIHNhbWUgY29yZSBhbnN3ZXJzIGBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGxgLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gaW4gc3RlcC5cbiAgICByZXR1cm4gZ2V0QXR0YWNobWVudEZpbGVQYXRoU3luYyh7XG4gICAgICBhcHAsXG4gICAgICBub3RlUGF0aE9yRmlsZSxcbiAgICAgIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXBwLCBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlQmFzZU5hbWUgPSBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pO1xuICBjb25zdCBhdHRhY2htZW50RmlsZSA9IGdldEZpbGVPck51bGwoeyBhcHAsIHBhdGhPckZpbGU6IGF0dGFjaG1lbnRQYXRoIH0pO1xuXG4gIHJldHVybiBhd2FpdCBjdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKHtcbiAgICBhdHRhY2htZW50RmlsZUJhc2VOYW1lLFxuICAgIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBhdHRhY2htZW50RmlsZUV4dGVuc2lvbi5zbGljZSgxKSxcbiAgICBhdHRhY2htZW50RmlsZVN0YXRzOiBhdHRhY2htZW50RmlsZT8uc3RhdCxcbiAgICBjb250ZXh0OiBwYXJhbXMuY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICBvbGROb3RlUGF0aE9yRmlsZTogcGFyYW1zLm9sZE5vdGVQYXRoT3JGaWxlLFxuICAgIHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQ6IGF0dGFjaG1lbnRGaWxlID8gKCk6IFByb21pc2U8QXJyYXlCdWZmZXI+ID0+IGFwcC52YXVsdC5yZWFkQmluYXJ5KGF0dGFjaG1lbnRGaWxlKSA6IG51bGwsXG4gICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uOiB0cnVlXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXR0YWNobWVudCBmb2xkZXIgcGF0aCBmb3IgYSBnaXZlbiBub3RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZm9sZGVyIHBhdGggZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGgocGFyYW1zOiBHZXRBdHRhY2htZW50Rm9sZGVyUGF0aFBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgY29udGV4dCA9IEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3duLFxuICAgIG5vdGVQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiBwYXJlbnRGb2xkZXJQYXRoKFxuICAgIGF3YWl0IGdldEF0dGFjaG1lbnRGaWxlUGF0aCh7XG4gICAgICBhcHAsXG4gICAgICBjb250ZXh0LFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogRFVNTVlfUEFUSCxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoIGZvciBhIGdpdmVuIG5vdGUgKipzeW5jaHJvbm91c2x5KiosIHdoZW4gdGhhdCBpcyBwb3NzaWJsZSBhdCBhbGwuXG4gKlxuICogT2JzaWRpYW4gYnVpbGRzIGl0cyBmaWxlL2ZvbGRlciBjb250ZXh0IG1lbnVzIGFuZCBldmFsdWF0ZXMgYSBjb21tYW5kJ3MgYGNoZWNrQ2FsbGJhY2tgIHN5bmNocm9ub3VzbHksIHNvIGFcbiAqIGNhbGxlciBkZWNpZGluZyB3aGV0aGVyIHRvIG1lcmVseSAqb2ZmZXIqIGEgY29tbWFuZCBjYW5ub3QgYXdhaXQge0BsaW5rIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRofS4gVGhpcyBpc1xuICogdGhlIHN5bmNocm9ub3VzIHR3aW4gc3VjaCBhIGNhbGxlciBjYW4gdXNlIGluc3RlYWQuXG4gKlxuICogVGhlIGFuc3dlciBpcyBgbnVsbGAgd2hlbiBpdCBpcyBub3Qga25vd2FibGUgc3luY2hyb25vdXNseSBcdTIwMTQgdGhhdCBpcywgd2hlbiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHB1Ymxpc2hlc1xuICogaXRzIGF0dGFjaG1lbnQtcGF0aCBBUEkgYW5kIHRoZXJlZm9yZSBvd25zIHRoZSByZXNvbHV0aW9uLCB3aGljaCBpcyBnZW51aW5lbHkgYXN5bmNocm9ub3VzLiBgbnVsbGAgbWVhbnMgXCJhc2sge0BsaW5rIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRofVwiLCBuZXZlciBcInRoZXJlIGlzIG5vIGF0dGFjaG1lbnRcbiAqIGZvbGRlclwiLiBPdGhlcndpc2UgdGhlIGFuc3dlciBpcyBleGFjdCByYXRoZXIgdGhhbiBhIGd1ZXNzOiBpdCBpcyBwcm9kdWNlZCBieSB0aGUgdmVyeSBzYW1lIGNvZGVcbiAqIHtAbGluayBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aH0gcnVucywgd2hvc2Ugb25seSBhc3luY2hyb25vdXMgc3RlcCBcdTIwMTQgY3JlYXRpbmcgYSBtaXNzaW5nIGF0dGFjaG1lbnQgZm9sZGVyIFx1MjAxNFxuICogaXMgdW5yZWFjaGFibGUgb24gdGhpcyBwYXRoLlxuICpcbiAqIFRoZXJlIGlzIGRlbGliZXJhdGVseSBubyBgY29udGV4dGAgcGFyYW1ldGVyOiB7QGxpbmsgQXR0YWNobWVudFBhdGhDb250ZXh0fSBvbmx5IGV2ZXIgcmVhY2hlcyB0aGF0IHBsdWdpbidzXG4gKiByZXNvbHZlciwgYW5kIHRoaXMgZnVuY3Rpb24gYW5zd2VycyBgbnVsbGAgd2hlbmV2ZXIgaXQgaXMgcHVibGlzaGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZm9sZGVyIHBhdGggc3luYyBvciBudWxsIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIGF0dGFjaG1lbnQgZm9sZGVyIHBhdGgsIG9yIGBudWxsYCB3aGVuIGl0IGNhbiBvbmx5IGJlIHJlc29sdmVkIGFzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsKHBhcmFtczogR2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgbm90ZVBhdGhPckZpbGVcbiAgfSA9IHBhcmFtcztcblxuICByZXR1cm4gZmluZEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSgpXG4gICAgPyBudWxsXG4gICAgOiBwYXJlbnRGb2xkZXJQYXRoKGdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmMoe1xuICAgICAgYXBwLFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogRFVNTVlfUEFUSCxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICAgIH0pKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgLy8gTWF0ZXJpYWxpemluZyBhIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgaXMgdGhlIE9ORSBnZW51aW5lbHkgYXN5bmNocm9ub3VzIHN0ZXAgaW4gdGhpcyBmdW5jdGlvbi5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGxpdmVzIGluIHRoZSBzeW5jaHJvbm91cyBjb3JlLCB3aGljaCB0aGUgc3luY2hyb25vdXMgZW50cnkgcG9pbnRzIHJldXNlIHZlcmJhdGltLlxuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyID0gcmVzb2x2ZUF0dGFjaG1lbnRGb2xkZXIoeyBhcHAsIG5vdGVQYXRoT3JGaWxlIH0pO1xuICBpZiAoIWF0dGFjaG1lbnRGb2xkZXIuZm9sZGVyICYmIGF0dGFjaG1lbnRGb2xkZXIucmVsYXRpdmVQYXRoICYmICFzaG91bGRTa2lwTWlzc2luZ0F0dGFjaG1lbnRGb2xkZXJDcmVhdGlvbikge1xuICAgIGF3YWl0IGFwcC52YXVsdC5jcmVhdGVGb2xkZXIoYXR0YWNobWVudEZvbGRlci5wYXRoKTtcbiAgfVxuXG4gIHJldHVybiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jKHBhcmFtcyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGF0dGFjaG1lbnQtdW5pdC1mb2xkZXIgZGVzaWduYXRpb24gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCBwdWJsaXNoZXMgdGhyb3VnaCBpdHMgcGx1Z2luIEFQSS5cbiAqXG4gKiBUaGUgZGVzaWduYXRpb24gaXMgb25lIHBsdWdpbidzIHNldHRpbmcgYnV0IGV2ZXJ5IHJlbG9jYXRpbmcgcGx1Z2luJ3MgYnVzaW5lc3MsIHNvIGl0IGlzIHJlYWQgZnJvbSB0aGUgc2FtZVxuICogQVBJIHRoYXQgYW5zd2VycyB0aGUgYXR0YWNobWVudCBwYXRoIGl0c2VsZi4gUmVhZGluZyBpdCBoZXJlIHJhdGhlciB0aGFuIGhhdmluZyBlYWNoIGNhbGxlciBsb29rIGZvciB0aGVcbiAqIHBsdWdpbiBpcyB0aGUgcG9pbnQgXHUyMDE0IGEgZm9sZGVyIGtlcHQgd2hvbGUgYnkgb25lIHBsdWdpbiBhbmQgdG9ybiBhcGFydCBieSBhbm90aGVyIGlzIGV4YWN0bHkgdGhlIGZhaWx1cmVcbiAqIGBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoYCBleGlzdHMgdG8gcHJldmVudC5cbiAqXG4gKiBgdW5kZWZpbmVkYCBtZWFucyBub2JvZHkgcHVibGlzaGVkIGEgZGVzaWduYXRpb24sIHRoZSBzYW1lIFwibm9ib2R5IG93bnMgdGhpcyBwb2xpY3lcIiBhbnN3ZXIgdGhhdCBzZW5kc1xuICoge0BsaW5rIGdldEF0dGFjaG1lbnRGaWxlUGF0aH0gdG8gT2JzaWRpYW4ncyBvd24gcmVzb2x1dGlvbi4gSXQgaXMgZGlzdGluY3QgZnJvbSBhIGRlc2lnbmF0aW9uIHRoYXQgYW5zd2Vyc1xuICogYGZhbHNlYCBmb3IgZXZlcnkgZm9sZGVyLlxuICpcbiAqIFRoZSByZWdpc3RyeSBpcyBsb29rZWQgdXAgb25jZSwgd2hlbiB0aGlzIGlzIGNhbGxlZCwgc28gYSBjYWxsZXIgd2Fsa2luZyBhIGZvbGRlcidzIGFuY2VzdG9ycyBhc2tzIHRoZSBzYW1lXG4gKiBBUEkgYWxsIHRoZSB3YXkgdXAuXG4gKlxuICogQHBhcmFtIF9hcHAgLSBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS4gVW51c2VkIHNpbmNlIHRoZSBhbnN3ZXIgY29tZXMgZnJvbSB0aGUgcGx1Z2luIEFQSSByZWdpc3RyeTtcbiAqICAga2VwdCBzbyBleGlzdGluZyBjYWxsZXJzIGNvbXBpbGUgdW5jaGFuZ2VkLlxuICogQHJldHVybnMgVGhlIGRlc2lnbmF0aW9uIHByZWRpY2F0ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBub2JvZHkgcHVibGlzaGVkIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uKF9hcHA6IEFwcCk6ICgoZm9sZGVyUGF0aDogc3RyaW5nKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSA9IGZpbmRDdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkoKTtcbiAgcmV0dXJuIGN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaVxuICAgID8gKGZvbGRlclBhdGg6IHN0cmluZyk6IGJvb2xlYW4gPT4gY3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpLmlzQXR0YWNobWVudFVuaXRGb2xkZXIoeyBmb2xkZXJQYXRoIH0pXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub3RlJ3MgYXR0YWNobWVudCBmb2xkZXIgaXMgc3BlY2lmaWMgdG8gdGhhdCBub3RlIHJhdGhlciB0aGFuIHNoYXJlZCB3aXRoIGl0cyBzaWJsaW5ncy5cbiAqXG4gKiBUaGUgYW5zd2VyIGlzIGRlcml2ZWQgYnkgY29tcGFyaW5nIHRoZSBub3RlJ3MgYXR0YWNobWVudCBmb2xkZXIgd2l0aCB0aGUgb25lIGEgc2FtZS1mb2xkZXIgc2libGluZyBub3RlXG4gKiB3b3VsZCBnZXQ6IHRoZXkgZGlmZmVyIG9ubHkgd2hlbiB0aGUgZm9sZGVyIGRlcGVuZHMgb24gdGhlIG5vdGUncyBOQU1FLiBFdmVyeSBidWlsdC1pblxuICogYGF0dGFjaG1lbnRGb2xkZXJQYXRoYCBtb2RlIFx1MjAxNCB0aGUgdmF1bHQgcm9vdCwgYSBmaXhlZCBmb2xkZXIsIHRoZSBub3RlJ3Mgb3duIGZvbGRlciAoYC4vYCksIGEgc3ViZm9sZGVyIG9mXG4gKiB0aGUgbm90ZSdzIGZvbGRlciAoYC4vc3ViYCkgXHUyMDE0IGlzIHNoYXJlZCBieSBldmVyeSBub3RlIGluIHRoYXQgZm9sZGVyLCBzbyBpdCBhbnN3ZXJzIGBmYWxzZWA7IGB0cnVlYCBhcmlzZXNcbiAqIGZyb20gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCdzIHJlc29sdmVyIGRlcml2aW5nIHRoZSBmb2xkZXIgZnJvbSB0aGUgbm90ZSdzIG5hbWUuXG4gKlxuICogVGhpcyBpcyB0aGUgZGlzdGluY3Rpb24gYSBjYWxsZXIgbmVlZHMgYmVmb3JlIHN3ZWVwaW5nIGFuIGF0dGFjaG1lbnQgZm9sZGVyIHdob2xlc2FsZTogb25seSBhXG4gKiBub3RlLXNwZWNpZmljIGZvbGRlciBjYW4gYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gdGhlIG5vdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBoYXMgb3duIGF0dGFjaG1lbnQgZm9sZGVyIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBub3RlIGhhcyBpdHMgb3duIGF0dGFjaG1lbnQgZm9sZGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFzT3duQXR0YWNobWVudEZvbGRlcihwYXJhbXM6IEhhc093bkF0dGFjaG1lbnRGb2xkZXJQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBjb250ZXh0ID0gQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd24sXG4gICAgcGF0aFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKHtcbiAgICBhcHAsXG4gICAgY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZTogcGF0aFxuICB9KTtcbiAgY29uc3QgZHVtbXlBdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKHtcbiAgICBhcHAsXG4gICAgY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZTogam9pbihkaXJuYW1lKHBhdGgpLCBgJHtEVU1NWV9QQVRIfS4ke01BUktET1dOX0ZJTEVfRVhURU5TSU9OfWApXG4gIH0pO1xuICByZXR1cm4gYXR0YWNobWVudEZvbGRlclBhdGggIT09IGR1bW15QXR0YWNobWVudEZvbGRlclBhdGg7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gYXR0YWNobWVudCBhbHJlYWR5IHNpdHMgYXQgaXRzIHByb3BlciBhdHRhY2htZW50IHBhdGguXG4gKlxuICogUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgYXR0YWNobWVudCdzIGN1cnJlbnQgcGF0aCBpcywgd2l0aGluIGl0cyBwcm9wZXIgYXR0YWNobWVudCBmb2xkZXIsIGVpdGhlciB0aGUgcHJvcGVyXG4gKiBiYXNlIG5hbWUgb3IgdGhlIHByb3BlciBiYXNlIG5hbWUgcGx1cyBhbiBPYnNpZGlhbiBkZWR1cGxpY2F0aW9uIHN1ZmZpeCAoYSBzcGFjZSBmb2xsb3dlZCBieSBkaWdpdHMsIGUuZy5cbiAqIGBpbWcgMWApIHdpdGggdGhlIHNhbWUgZXh0ZW5zaW9uLiBUaGUgcHJvcGVyIHBhdGggaXMgY29tcHV0ZWQgdmlhIHtAbGluayBnZXRBdHRhY2htZW50RmlsZVBhdGh9IHdpdGhcbiAqIHtAbGluayBHZXRBdHRhY2htZW50RmlsZVBhdGhQYXJhbXMuc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrfSBzZXQgdG8gYHRydWVgICh0aGUgdGFyZ2V0IGJlZm9yZSBhbnlcbiAqIGRlZHVwbGljYXRpb24gc3VmZml4KSwgYW5kIHRoZSBjb21wYXJpc29uIHJlc3BlY3RzIHRoZSBmaWxlIHN5c3RlbSBjYXNlLXNlbnNpdGl2aXR5IGZsYWdcbiAqIChgZ2V0RGF0YUFkYXB0ZXJFeChhcHApLmluc2Vuc2l0aXZlYCkgdGhhdCBgZ2V0U2FmZVJlbmFtZVBhdGhgIHVzZXMuXG4gKlxuICogVGhpcyBsZXRzIGEgY2FsbGVyIHJlY29nbml6ZSBhIGRlZHVwbGljYXRpb24tcGFya2VkIGF0dGFjaG1lbnQgYXMgYWxyZWFkeS1jb2xsZWN0ZWQsIHNvIGEgXCJuZWVkcyBtb3ZlP1wiXG4gKiBkZWNpc2lvbiBtYWRlIGFnYWluc3QgdGhlIGRlZHVwbGljYXRpb24tZnJlZSBwcm9wZXIgcGF0aCBjb252ZXJnZXMgaW5zdGVhZCBvZiByZS1zY2hlZHVsaW5nIHRoZSBmaWxlIGZvcmV2ZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBpcyBhdCBwcm9wZXIgYXR0YWNobWVudCBwYXRoIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBgdHJ1ZWAgd2hlbiB0aGUgYXR0YWNobWVudCBpcyBhbHJlYWR5IGF0IGl0cyBwcm9wZXIgcGF0aC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aChwYXJhbXM6IElzQXRQcm9wZXJBdHRhY2htZW50UGF0aFBhcmFtcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIGNvbnRleHQgPSBBdHRhY2htZW50UGF0aENvbnRleHQuVW5rbm93bixcbiAgICBub3RlUGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGN1cnJlbnRQYXRoID0gZ2V0UGF0aChhcHAsIGF0dGFjaG1lbnRQYXRoT3JGaWxlKTtcbiAgY29uc3QgcHJvcGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGaWxlUGF0aCh7XG4gICAgYXBwLFxuICAgIGNvbnRleHQsXG4gICAgbm90ZVBhdGhPckZpbGUsXG4gICAgb2xkQXR0YWNobWVudFBhdGhPckZpbGU6IGF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICB9KTtcblxuICBjb25zdCBpc0luc2Vuc2l0aXZlID0gZ2V0RGF0YUFkYXB0ZXJFeChhcHApLmluc2Vuc2l0aXZlO1xuXG4gIGZ1bmN0aW9uIGZvbGQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzSW5zZW5zaXRpdmUgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogdmFsdWU7XG4gIH1cblxuICBpZiAoZm9sZChkaXJuYW1lKGN1cnJlbnRQYXRoKSkgIT09IGZvbGQoZGlybmFtZShwcm9wZXJQYXRoKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjdXJyZW50RXh0ZW5zaW9uID0gZXh0bmFtZShjdXJyZW50UGF0aCk7XG4gIGNvbnN0IHByb3BlckV4dGVuc2lvbiA9IGV4dG5hbWUocHJvcGVyUGF0aCk7XG4gIGlmIChmb2xkKGN1cnJlbnRFeHRlbnNpb24pICE9PSBmb2xkKHByb3BlckV4dGVuc2lvbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjdXJyZW50QmFzZU5hbWUgPSBiYXNlbmFtZShjdXJyZW50UGF0aCwgY3VycmVudEV4dGVuc2lvbik7XG4gIGNvbnN0IHByb3BlckJhc2VOYW1lID0gYmFzZW5hbWUocHJvcGVyUGF0aCwgcHJvcGVyRXh0ZW5zaW9uKTtcblxuICBpZiAoZm9sZChjdXJyZW50QmFzZU5hbWUpID09PSBmb2xkKHByb3BlckJhc2VOYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgZGVkdXBsaWNhdGlvblByZWZpeCA9IGAke3Byb3BlckJhc2VOYW1lfSBgO1xuICBpZiAoIWZvbGQoY3VycmVudEJhc2VOYW1lKS5zdGFydHNXaXRoKGZvbGQoZGVkdXBsaWNhdGlvblByZWZpeCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGVkdXBsaWNhdGlvblN1ZmZpeCA9IGN1cnJlbnRCYXNlTmFtZS5zbGljZShkZWR1cGxpY2F0aW9uUHJlZml4Lmxlbmd0aCk7XG4gIHJldHVybiAvXlxcZCskLy50ZXN0KGRlZHVwbGljYXRpb25TdWZmaXgpO1xufVxuXG4vKipcbiAqIEZpbmRzIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyBhdHRhY2htZW50LXBhdGggQVBJIGluIHRoZSBwbHVnaW4gQVBJIHJlZ2lzdHJ5LiBJdHMgcHJlc2VuY2UgaXMgdGhlXG4gKiBzeW5jaHJvbm91cyBwcm9iZSBmb3IgXCJzb21lYm9keSBlbHNlIG93bnMgdGhlIHJlc29sdXRpb25cIi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQVBJLCBvciBgbnVsbGAgd2hlbiB0aGF0IHBsdWdpbiBwdWJsaXNoZXMgbm8gcmVjb3JkIHNhdGlzZnlpbmcgdGhlIHJhbmdlIGFuZCBjb250cmFjdC5cbiAqL1xuZnVuY3Rpb24gZmluZEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSgpOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaSB8IG51bGwge1xuICByZXR1cm4gZmluZFBsdWdpbkFwaTxDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaT4oe1xuICAgIGFwaVZlcnNpb25SYW5nZTogQ1VTVE9NX0FUVEFDSE1FTlRfTE9DQVRJT05fQVRUQUNITUVOVF9QQVRIX0FQSV9WRVJTSU9OX1JBTkdFLFxuICAgIGNvbnRyYWN0OiBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9BVFRBQ0hNRU5UX1BBVEhfQVBJX0NPTlRSQUNULFxuICAgIHBsdWdpbklkOiBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9QTFVHSU5fSURcbiAgfSk7XG59XG5cbi8qKlxuICogVGhlIHN5bmNocm9ub3VzIGNvcmUgb2Yge0BsaW5rIGdldEF0dGFjaG1lbnRGaWxlUGF0aH0sIHJlYWNoZWQgd2hlbiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHB1Ymxpc2hlcyBub1xuICogYXR0YWNobWVudC1wYXRoIEFQSS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdHRhY2htZW50IGZpbGUgcGF0aCBzeW5jIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIGZpbGUgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAqL1xuZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZpbGVQYXRoU3luYyhwYXJhbXM6IEdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmNQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVja1xuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXBwLCBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG5cbiAgcmV0dXJuIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmMoe1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pLFxuICAgIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBhdHRhY2htZW50RmlsZUV4dGVuc2lvbi5zbGljZSgxKSxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSk7XG59XG5cbi8qKlxuICogVGhlIHN5bmNocm9ub3VzIGNvcmUgb2Yge0BsaW5rIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c30sIHdoaWNoIGNhbm5vdCBjcmVhdGUgYSBtaXNzaW5nIGF0dGFjaG1lbnRcbiAqIGZvbGRlci4gSXRzIGNhbGxlciBjcmVhdGVzIHRoZSBmb2xkZXIgZmlyc3Qgd2hlbiB0aGF0IGlzIHdhbnRlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgc3luYyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gKi9cbmZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmMocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUV4dGVuc2lvbixcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgYXR0YWNobWVudEZvbGRlciA9IHJlc29sdmVBdHRhY2htZW50Rm9sZGVyKHsgYXBwLCBub3RlUGF0aE9yRmlsZSB9KTtcbiAgY29uc3QgYXR0YWNobWVudEZpbGVCYXNlTmFtZSA9IG5vcm1hbGl6ZVN0cmluZyhub3JtYWxpemVTbGFzaGVzKHBhcmFtcy5hdHRhY2htZW50RmlsZUJhc2VOYW1lKSk7XG5cbiAgLy8gQSBmb2xkZXIgdGhhdCBkb2VzIG5vdCBleGlzdCB5ZXQgc3RpbGwgb3ducyB0aGUgYXR0YWNobWVudCBwYXRoLlxuICAvLyBSZXNvbHZpbmcgaXQgYXMgYSBub24tZXhpc3RpbmcgZm9sZGVyIHN0b3BzIHRoZSBhbnN3ZXIgZnJvbSBjb2xsYXBzaW5nIHRvIHRoZSB2YXVsdCByb290LlxuICBjb25zdCBmb2xkZXIgPSBhdHRhY2htZW50Rm9sZGVyLmZvbGRlciA/PyBnZXRGb2xkZXIoeyBhcHAsIHBhdGhPckZvbGRlcjogYXR0YWNobWVudEZvbGRlci5wYXRoLCBzaG91bGRJbmNsdWRlTm9uRXhpc3Rpbmc6IHRydWUgfSk7XG5cbiAgY29uc3QgcHJlZml4ID0gZm9sZGVyLmdldFBhcmVudFByZWZpeCgpO1xuICByZXR1cm4gc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrXG4gICAgPyBtYWtlRmlsZU5hbWUoe1xuICAgICAgZmlsZUJhc2VOYW1lOiBwcmVmaXggKyBhdHRhY2htZW50RmlsZUJhc2VOYW1lLFxuICAgICAgZmlsZUV4dGVuc2lvbjogYXR0YWNobWVudEZpbGVFeHRlbnNpb25cbiAgICB9KVxuICAgIDogYXBwLnZhdWx0LmdldEF2YWlsYWJsZVBhdGgocHJlZml4ICsgYXR0YWNobWVudEZpbGVCYXNlTmFtZSwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pO1xufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXModmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIFJlZmxlY3QuZ2V0KHZhbHVlLCAnZm9sZGVyUGF0aCcpID09PSAnc3RyaW5nJztcbn1cblxuZnVuY3Rpb24gaXNGaWxlU3RhdHModmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBGaWxlU3RhdHMge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICYmIHZhbHVlICE9PSBudWxsXG4gICAgJiYgdHlwZW9mIFJlZmxlY3QuZ2V0KHZhbHVlLCAnY3RpbWUnKSA9PT0gJ251bWJlcidcbiAgICAmJiB0eXBlb2YgUmVmbGVjdC5nZXQodmFsdWUsICdtdGltZScpID09PSAnbnVtYmVyJ1xuICAgICYmIHR5cGVvZiBSZWZsZWN0LmdldCh2YWx1ZSwgJ3NpemUnKSA9PT0gJ251bWJlcic7XG59XG5cbmZ1bmN0aW9uIGlzR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGdW5jdGlvblBhcmFtcyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRnVuY3Rpb25QYXJhbXMge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWQoa2V5OiBrZXlvZiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zKTogdW5rbm93biB7XG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHZhbHVlIGFzIG9iamVjdCwga2V5KTtcbiAgfVxuXG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlU3RhdHMgPSByZWFkKCdhdHRhY2htZW50RmlsZVN0YXRzJyk7XG4gIGNvbnN0IGNvbnRleHQgPSByZWFkKCdjb250ZXh0Jyk7XG4gIGNvbnN0IG5vdGVQYXRoT3JGaWxlID0gcmVhZCgnbm90ZVBhdGhPckZpbGUnKTtcbiAgY29uc3Qgb2xkTm90ZVBhdGhPckZpbGUgPSByZWFkKCdvbGROb3RlUGF0aE9yRmlsZScpO1xuICBjb25zdCByZWFkQXR0YWNobWVudEZpbGVDb250ZW50ID0gcmVhZCgncmVhZEF0dGFjaG1lbnRGaWxlQ29udGVudCcpO1xuICByZXR1cm4gdHlwZW9mIHJlYWQoJ2F0dGFjaG1lbnRGaWxlQmFzZU5hbWUnKSA9PT0gJ3N0cmluZydcbiAgICAmJiB0eXBlb2YgcmVhZCgnYXR0YWNobWVudEZpbGVFeHRlbnNpb24nKSA9PT0gJ3N0cmluZydcbiAgICAmJiAoYXR0YWNobWVudEZpbGVTdGF0cyA9PT0gdW5kZWZpbmVkIHx8IGlzRmlsZVN0YXRzKGF0dGFjaG1lbnRGaWxlU3RhdHMpKVxuICAgICYmIE9iamVjdC52YWx1ZXMoQXR0YWNobWVudFBhdGhDb250ZXh0KS5pbmNsdWRlcyhjb250ZXh0KVxuICAgICYmIChub3RlUGF0aE9yRmlsZSA9PT0gbnVsbCB8fCBpc1BhdGhPckZpbGUobm90ZVBhdGhPckZpbGUpKVxuICAgICYmIGlzUGF0aE9yRmlsZShyZWFkKCdvbGRBdHRhY2htZW50UGF0aE9yRmlsZScpKVxuICAgICYmIChvbGROb3RlUGF0aE9yRmlsZSA9PT0gdW5kZWZpbmVkIHx8IGlzUGF0aE9yRmlsZShvbGROb3RlUGF0aE9yRmlsZSkpXG4gICAgJiYgKHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQgPT09IG51bGwgfHwgdHlwZW9mIHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQgPT09ICdmdW5jdGlvbicpXG4gICAgJiYgaXNPcHRpb25hbEJvb2xlYW4ocmVhZCgnc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrJykpXG4gICAgJiYgaXNPcHRpb25hbEJvb2xlYW4ocmVhZCgnc2hvdWxkU2tpcEdlbmVyYXRlZEF0dGFjaG1lbnRGaWxlTmFtZScpKVxuICAgICYmIGlzT3B0aW9uYWxCb29sZWFuKHJlYWQoJ3Nob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uJykpO1xufVxuZnVuY3Rpb24gaXNPcHRpb25hbEJvb2xlYW4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgaXNCb29sZWFuKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcGF0aCBieSBjb21iaW5pbmcgbXVsdGlwbGUgc2xhc2hlcyBpbnRvIGEgc2luZ2xlIHNsYXNoIGFuZCByZW1vdmluZyBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gUGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTbGFzaGVzKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHBhdGggPSByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBwYXRoLFxuICAgIHJlcGxhY2VyOiAnLycsXG4gICAgc2VhcmNoVmFsdWU6IC8oPzpbXFxcXC9dKSsvZ1xuICB9KTtcbiAgcGF0aCA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHBhdGgsXG4gICAgcmVwbGFjZXI6ICcnLFxuICAgIHNlYXJjaFZhbHVlOiAvXlxcLyt8XFwvKyQvZ1xuICB9KTtcbiAgcmV0dXJuIHBhdGggfHwgJy8nO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBgYXR0YWNobWVudEZvbGRlclBhdGhgIHNldHRpbmcgYWdhaW5zdCBhIG5vdGUgaW50byBhIGNvbmNyZXRlIGF0dGFjaG1lbnQgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x2ZSBhdHRhY2htZW50IGZvbGRlciBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhdHRhY2htZW50IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUF0dGFjaG1lbnRGb2xkZXIocGFyYW1zOiBSZXNvbHZlQXR0YWNobWVudEZvbGRlclBhcmFtcyk6IFJlc29sdmVBdHRhY2htZW50Rm9sZGVyUmVzdWx0IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBub3RlUGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuICBsZXQgYXR0YWNobWVudEZvbGRlclBhdGggPSBhcHAudmF1bHQuZ2V0Q29uZmlnKCdhdHRhY2htZW50Rm9sZGVyUGF0aCcpIGFzIHN0cmluZztcbiAgY29uc3QgaXNDdXJyZW50Rm9sZGVyID0gYXR0YWNobWVudEZvbGRlclBhdGggPT09ICcuJyB8fCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gJy4vJztcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gYXR0YWNobWVudEZvbGRlclBhdGguc3RhcnRzV2l0aCgnLi8nKVxuICAgID8gdHJpbVN0YXJ0KHtcbiAgICAgICRzdHJpbmc6IGF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICAgICAgcHJlZml4OiAnLi8nXG4gICAgfSlcbiAgICA6IG51bGw7XG5cbiAgLy8gQSBub3RlIHRoYXQgZG9lcyBub3QgZXhpc3QgeWV0IChhIHJlbmFtZSB0YXJnZXQsIGEgZHVtbXkgc2libGluZykgc3RpbGwgYmVsb25ncyB0byBpdHMgb3duIGZvbGRlci5cbiAgLy8gTWF0ZXJpYWxpemluZyBpdCBmcm9tIGl0cyBwYXRoIGtlZXBzIHRoYXQgZm9sZGVyLCB3aGVyZSBhIHZhdWx0IGxvb2t1cCB3b3VsZCBmYWxsIGJhY2sgdG8gdGhlIHJvb3QuXG4gIC8vIE9ubHkgYW4gZXhwbGljaXRseSBub3RlLWxlc3MgYXR0YWNobWVudCByZXNvbHZlcyB0byB0aGUgdmF1bHQgcm9vdC5cbiAgY29uc3Qgbm90ZUZpbGVPck51bGwgPSBub3RlUGF0aE9yRmlsZSA9PT0gbnVsbFxuICAgID8gbnVsbFxuICAgIDogZ2V0RmlsZSh7XG4gICAgICBhcHAsXG4gICAgICBwYXRoT3JGaWxlOiBub3RlUGF0aE9yRmlsZSxcbiAgICAgIHNob3VsZEluY2x1ZGVOb25FeGlzdGluZzogdHJ1ZVxuICAgIH0pO1xuXG4gIGlmIChpc0N1cnJlbnRGb2xkZXIpIHtcbiAgICBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IG5vdGVGaWxlT3JOdWxsID8gbm90ZUZpbGVPck51bGwucGFyZW50Py5wYXRoID8/ICcnIDogJyc7XG4gIH0gZWxzZSBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgYXR0YWNobWVudEZvbGRlclBhdGggPSAobm90ZUZpbGVPck51bGwgPyBub3RlRmlsZU9yTnVsbC5wYXJlbnQ/LmdldFBhcmVudFByZWZpeCgpID8/ICcnIDogJycpICsgcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgYXR0YWNobWVudEZvbGRlclBhdGggPSBub3JtYWxpemVTdHJpbmcobm9ybWFsaXplU2xhc2hlcyhhdHRhY2htZW50Rm9sZGVyUGF0aCkpO1xuXG4gIHJldHVybiB7XG4gICAgZm9sZGVyOiBnZXRGb2xkZXJPck51bGwoeyBhcHAsIGlzQ2FzZUluc2Vuc2l0aXZlOiB0cnVlLCBwYXRoT3JGb2xkZXI6IGF0dGFjaG1lbnRGb2xkZXJQYXRoIH0pLFxuICAgIHBhdGg6IGF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICAgIHJlbGF0aXZlUGF0aFxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLDBCQUdPO0FBQ1Asa0JBTU87QUFDUCxvQkFJTztBQUNQLDZCQUdPO0FBSVAseUJBUU87QUFDUCx3QkFBOEI7QUFLdkIsSUFBSyx3QkFBTCxrQkFBS0EsMkJBQUw7QUFJTCxFQUFBQSx1QkFBQSxnQkFBYTtBQUtiLEVBQUFBLHVCQUFBLGdCQUFhO0FBS2IsRUFBQUEsdUJBQUEsYUFBVTtBQWRBLFNBQUFBO0FBQUEsR0FBQTtBQXdITCxNQUFNLHVDQUF1QztBQU1wRCxNQUFNLCtEQUErRDtBQVNyRSxNQUFNLDBEQUFrSDtBQUFBLEVBQ3RILGdDQUFnQztBQUFBLElBQzlCLFdBQU8sMkNBQXNGLENBQUM7QUFBQSxNQUM1RixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsSUFDYixDQUFDLENBQUM7QUFBQSxJQUNGLFlBQVEsMkNBQXNCLEVBQUUsVUFBVSxzQkFBc0IsV0FBVyxTQUFTLENBQUM7QUFBQSxFQUN2RjtBQUFBLEVBQ0Esd0JBQXdCO0FBQUEsSUFDdEIsV0FBTywyQ0FBc0YsQ0FBQztBQUFBLE1BQzVGLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxJQUNiLENBQUMsQ0FBQztBQUFBLElBQ0YsWUFBUSwyQ0FBc0IsRUFBRSxVQUFVLGFBQWEsV0FBVyxVQUFVLENBQUM7QUFBQSxFQUMvRTtBQUNGO0FBS08sTUFBTSxhQUFhO0FBOFAxQixlQUFzQixzQkFBc0IsUUFBc0Q7QUFDaEcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLDhCQUE4QixnQ0FBZ0M7QUFDcEUsTUFBSSxDQUFDLDZCQUE2QjtBQUdoQyxXQUFPLDBCQUEwQjtBQUFBLE1BQy9CO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUVBLFFBQU0scUJBQWlCLDRCQUFRLEtBQUssdUJBQXVCO0FBQzNELFFBQU0sOEJBQTBCLHFCQUFRLGNBQWM7QUFDdEQsUUFBTSw2QkFBeUIsc0JBQVMsZ0JBQWdCLHVCQUF1QjtBQUMvRSxRQUFNLHFCQUFpQixrQ0FBYyxFQUFFLEtBQUssWUFBWSxlQUFlLENBQUM7QUFFeEUsU0FBTyxNQUFNLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN0RTtBQUFBLElBQ0EseUJBQXlCLHdCQUF3QixNQUFNLENBQUM7QUFBQSxJQUN4RCxxQkFBcUIsZ0JBQWdCO0FBQUEsSUFDckMsU0FBUyxPQUFPO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsSUFDQSxtQkFBbUIsT0FBTztBQUFBLElBQzFCLDJCQUEyQixpQkFBaUIsTUFBNEIsSUFBSSxNQUFNLFdBQVcsY0FBYyxJQUFJO0FBQUEsSUFDL0c7QUFBQSxJQUNBLDJDQUEyQztBQUFBLEVBQzdDLENBQUM7QUFDSDtBQVFBLGVBQXNCLHdCQUF3QixRQUF3RDtBQUNwRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1Y7QUFBQSxFQUNGLElBQUk7QUFDSixhQUFPO0FBQUEsSUFDTCxNQUFNLHNCQUFzQjtBQUFBLE1BQzFCO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLE1BQ3pCLDBCQUEwQjtBQUFBLElBQzVCLENBQUM7QUFBQSxFQUNIO0FBQ0Y7QUFxQk8sU0FBUyxrQ0FBa0MsUUFBZ0U7QUFDaEgsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosU0FBTyxnQ0FBZ0MsSUFDbkMsV0FDQSx5Q0FBaUIsMEJBQTBCO0FBQUEsSUFDM0M7QUFBQSxJQUNBO0FBQUEsSUFDQSx5QkFBeUI7QUFBQSxJQUN6QiwwQkFBMEI7QUFBQSxFQUM1QixDQUFDLENBQUM7QUFDTjtBQVFBLGVBQXNCLCtCQUErQixRQUErRDtBQUNsSCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBSUosUUFBTSxtQkFBbUIsd0JBQXdCLEVBQUUsS0FBSyxlQUFlLENBQUM7QUFDeEUsTUFBSSxDQUFDLGlCQUFpQixVQUFVLGlCQUFpQixnQkFBZ0IsQ0FBQywyQ0FBMkM7QUFDM0csVUFBTSxJQUFJLE1BQU0sYUFBYSxpQkFBaUIsSUFBSTtBQUFBLEVBQ3BEO0FBRUEsU0FBTyxtQ0FBbUMsTUFBTTtBQUNsRDtBQXFCTyxTQUFTLHVDQUF1QyxNQUEwRDtBQUMvRyxRQUFNLDhCQUE4QixnQ0FBZ0M7QUFDcEUsU0FBTyw4QkFDSCxDQUFDLGVBQWdDLDRCQUE0Qix1QkFBdUIsRUFBRSxXQUFXLENBQUMsSUFDbEc7QUFDTjtBQWlCQSxlQUFzQix1QkFBdUIsUUFBd0Q7QUFDbkcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSx1QkFBdUIsTUFBTSx3QkFBd0I7QUFBQSxJQUN6RDtBQUFBLElBQ0E7QUFBQSxJQUNBLGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFDRCxRQUFNLDRCQUE0QixNQUFNLHdCQUF3QjtBQUFBLElBQzlEO0FBQUEsSUFDQTtBQUFBLElBQ0Esb0JBQWdCLHNCQUFLLHFCQUFRLElBQUksR0FBRyxHQUFHLFVBQVUsSUFBSSwwQ0FBdUIsRUFBRTtBQUFBLEVBQ2hGLENBQUM7QUFDRCxTQUFPLHlCQUF5QjtBQUNsQztBQWtCQSxlQUFzQix5QkFBeUIsUUFBMEQ7QUFDdkcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVjtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sa0JBQWMsNEJBQVEsS0FBSyxvQkFBb0I7QUFDckQsUUFBTSxhQUFhLE1BQU0sc0JBQXNCO0FBQUEsSUFDN0M7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EseUJBQXlCO0FBQUEsSUFDekIsMEJBQTBCO0FBQUEsRUFDNUIsQ0FBQztBQUVELFFBQU0sb0JBQWdCLHlDQUFpQixHQUFHLEVBQUU7QUFFNUMsV0FBUyxLQUFLLE9BQXVCO0FBQ25DLFdBQU8sZ0JBQWdCLE1BQU0sWUFBWSxJQUFJO0FBQUEsRUFDL0M7QUFFQSxNQUFJLFNBQUsscUJBQVEsV0FBVyxDQUFDLE1BQU0sU0FBSyxxQkFBUSxVQUFVLENBQUMsR0FBRztBQUM1RCxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sdUJBQW1CLHFCQUFRLFdBQVc7QUFDNUMsUUFBTSxzQkFBa0IscUJBQVEsVUFBVTtBQUMxQyxNQUFJLEtBQUssZ0JBQWdCLE1BQU0sS0FBSyxlQUFlLEdBQUc7QUFDcEQsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLHNCQUFrQixzQkFBUyxhQUFhLGdCQUFnQjtBQUM5RCxRQUFNLHFCQUFpQixzQkFBUyxZQUFZLGVBQWU7QUFFM0QsTUFBSSxLQUFLLGVBQWUsTUFBTSxLQUFLLGNBQWMsR0FBRztBQUNsRCxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sc0JBQXNCLEdBQUcsY0FBYztBQUM3QyxNQUFJLENBQUMsS0FBSyxlQUFlLEVBQUUsV0FBVyxLQUFLLG1CQUFtQixDQUFDLEdBQUc7QUFDaEUsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLHNCQUFzQixnQkFBZ0IsTUFBTSxvQkFBb0IsTUFBTTtBQUM1RSxTQUFPLFFBQVEsS0FBSyxtQkFBbUI7QUFDekM7QUFRQSxTQUFTLGtDQUFvRjtBQUMzRixhQUFPLGlDQUF5RDtBQUFBLElBQzlELGlCQUFpQjtBQUFBLElBQ2pCLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxFQUNaLENBQUM7QUFDSDtBQVNBLFNBQVMsMEJBQTBCLFFBQWlEO0FBQ2xGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxxQkFBaUIsNEJBQVEsS0FBSyx1QkFBdUI7QUFDM0QsUUFBTSw4QkFBMEIscUJBQVEsY0FBYztBQUV0RCxTQUFPLG1DQUFtQztBQUFBLElBQ3hDO0FBQUEsSUFDQSw0QkFBd0Isc0JBQVMsZ0JBQWdCLHVCQUF1QjtBQUFBLElBQ3hFLHlCQUF5Qix3QkFBd0IsTUFBTSxDQUFDO0FBQUEsSUFDeEQ7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFTQSxTQUFTLG1DQUFtQyxRQUEwRDtBQUNwRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sbUJBQW1CLHdCQUF3QixFQUFFLEtBQUssZUFBZSxDQUFDO0FBQ3hFLFFBQU0sNkJBQXlCLCtCQUFnQixpQkFBaUIsT0FBTyxzQkFBc0IsQ0FBQztBQUk5RixRQUFNLFNBQVMsaUJBQWlCLGNBQVUsOEJBQVUsRUFBRSxLQUFLLGNBQWMsaUJBQWlCLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUVoSSxRQUFNLFNBQVMsT0FBTyxnQkFBZ0I7QUFDdEMsU0FBTywrQkFDSCwwQkFBYTtBQUFBLElBQ2IsY0FBYyxTQUFTO0FBQUEsSUFDdkIsZUFBZTtBQUFBLEVBQ2pCLENBQUMsSUFDQyxJQUFJLE1BQU0saUJBQWlCLFNBQVMsd0JBQXdCLHVCQUF1QjtBQUN6RjtBQUVBLFNBQVMsVUFBVSxPQUFrQztBQUNuRCxTQUFPLE9BQU8sVUFBVTtBQUMxQjtBQUVBLFNBQVMsdURBQXVELE9BQStFO0FBQzdJLFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLE9BQU8sUUFBUSxJQUFJLE9BQU8sWUFBWSxNQUFNO0FBQ3BHO0FBRUEsU0FBUyxZQUFZLE9BQW9DO0FBQ3ZELFNBQU8sT0FBTyxVQUFVLFlBQ25CLFVBQVUsUUFDVixPQUFPLFFBQVEsSUFBSSxPQUFPLE9BQU8sTUFBTSxZQUN2QyxPQUFPLFFBQVEsSUFBSSxPQUFPLE9BQU8sTUFBTSxZQUN2QyxPQUFPLFFBQVEsSUFBSSxPQUFPLE1BQU0sTUFBTTtBQUM3QztBQUVBLFNBQVMsdURBQXVELE9BQStFO0FBQzdJLE1BQUksT0FBTyxVQUFVLFlBQVksVUFBVSxNQUFNO0FBQy9DLFdBQU87QUFBQSxFQUNUO0FBRUEsV0FBUyxLQUFLLEtBQTBFO0FBQ3RGLFdBQU8sUUFBUSxJQUFJLE9BQWlCLEdBQUc7QUFBQSxFQUN6QztBQUVBLFFBQU0sc0JBQXNCLEtBQUsscUJBQXFCO0FBQ3RELFFBQU0sVUFBVSxLQUFLLFNBQVM7QUFDOUIsUUFBTSxpQkFBaUIsS0FBSyxnQkFBZ0I7QUFDNUMsUUFBTSxvQkFBb0IsS0FBSyxtQkFBbUI7QUFDbEQsUUFBTSw0QkFBNEIsS0FBSywyQkFBMkI7QUFDbEUsU0FBTyxPQUFPLEtBQUssd0JBQXdCLE1BQU0sWUFDNUMsT0FBTyxLQUFLLHlCQUF5QixNQUFNLGFBQzFDLHdCQUF3QixVQUFhLFlBQVksbUJBQW1CLE1BQ3JFLE9BQU8sT0FBTyxxQkFBcUIsRUFBRSxTQUFTLE9BQU8sTUFDcEQsbUJBQW1CLFlBQVEsaUNBQWEsY0FBYyxVQUN2RCxpQ0FBYSxLQUFLLHlCQUF5QixDQUFDLE1BQzNDLHNCQUFzQixjQUFhLGlDQUFhLGlCQUFpQixPQUNqRSw4QkFBOEIsUUFBUSxPQUFPLDhCQUE4QixlQUM1RSxrQkFBa0IsS0FBSywwQkFBMEIsQ0FBQyxLQUNsRCxrQkFBa0IsS0FBSyx1Q0FBdUMsQ0FBQyxLQUMvRCxrQkFBa0IsS0FBSywyQ0FBMkMsQ0FBQztBQUMxRTtBQUNBLFNBQVMsa0JBQWtCLE9BQThDO0FBQ3ZFLFNBQU8sVUFBVSxVQUFhLFVBQVUsS0FBSztBQUMvQztBQUVBLFNBQVMsU0FBUyxPQUFpQztBQUNqRCxTQUFPLE9BQU8sVUFBVTtBQUMxQjtBQVFBLFNBQVMsaUJBQWlCLE1BQXNCO0FBQzlDLGFBQU8sMEJBQVc7QUFBQSxJQUNoQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsRUFDZixDQUFDO0FBQ0QsYUFBTywwQkFBVztBQUFBLElBQ2hCLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxFQUNmLENBQUM7QUFDRCxTQUFPLFFBQVE7QUFDakI7QUFRQSxTQUFTLHdCQUF3QixRQUFzRTtBQUNyRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLHVCQUF1QixJQUFJLE1BQU0sVUFBVSxzQkFBc0I7QUFDckUsUUFBTSxrQkFBa0IseUJBQXlCLE9BQU8seUJBQXlCO0FBQ2pGLFFBQU0sZUFBZSxxQkFBcUIsV0FBVyxJQUFJLFFBQ3JELHlCQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsRUFDVixDQUFDLElBQ0M7QUFLSixRQUFNLGlCQUFpQixtQkFBbUIsT0FDdEMsV0FDQSw0QkFBUTtBQUFBLElBQ1I7QUFBQSxJQUNBLFlBQVk7QUFBQSxJQUNaLDBCQUEwQjtBQUFBLEVBQzVCLENBQUM7QUFFSCxNQUFJLGlCQUFpQjtBQUNuQiwyQkFBdUIsaUJBQWlCLGVBQWUsUUFBUSxRQUFRLEtBQUs7QUFBQSxFQUM5RSxXQUFXLGNBQWM7QUFDdkIsNEJBQXdCLGlCQUFpQixlQUFlLFFBQVEsZ0JBQWdCLEtBQUssS0FBSyxNQUFNO0FBQUEsRUFDbEc7QUFFQSw2QkFBdUIsK0JBQWdCLGlCQUFpQixvQkFBb0IsQ0FBQztBQUU3RSxTQUFPO0FBQUEsSUFDTCxZQUFRLG9DQUFnQixFQUFFLEtBQUssbUJBQW1CLE1BQU0sY0FBYyxxQkFBcUIsQ0FBQztBQUFBLElBQzVGLE1BQU07QUFBQSxJQUNOO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJBdHRhY2htZW50UGF0aENvbnRleHQiXQp9Cg==
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRhY2htZW50LXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYXR0YWNobWVudCBwYXRocy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwaUNvbnRyYWN0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRmlsZVN0YXRzLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgY3JlYXRlQXJndW1lbnRzU2NoZW1hLFxuICBjcmVhdGVUeXBlR3VhcmRTY2hlbWFcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FwaS1jb250cmFjdCc7XG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZVN0cmluZyxcbiAgcmVwbGFjZUFsbCxcbiAgdHJpbVN0YXJ0XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgZ2V0RGF0YUFkYXB0ZXJFeCxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGb2xkZXIsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgZ2V0UGF0aCxcbiAgaXNQYXRoT3JGaWxlLFxuICBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTlxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IGZpbmRQbHVnaW5BcGkgfSBmcm9tICcuL3BsdWdpbi9wbHVnaW4tYXBpLnRzJztcblxuLyoqXG4gKiBBIGNvbnRleHQgZm9yIGFuIGF0dGFjaG1lbnQgcGF0aC5cbiAqL1xuZXhwb3J0IGVudW0gQXR0YWNobWVudFBhdGhDb250ZXh0IHtcbiAgLyoqXG4gICAqIEEgY29udGV4dCBmb3IgYSBkZWxldGUgbm90ZS5cbiAgICovXG4gIERlbGV0ZU5vdGUgPSAnRGVsZXRlTm90ZScsXG5cbiAgLyoqXG4gICAqIEEgY29udGV4dCBmb3IgYSByZW5hbWUgbm90ZS5cbiAgICovXG4gIFJlbmFtZU5vdGUgPSAnUmVuYW1lTm90ZScsXG5cbiAgLyoqXG4gICAqIEFuIHVua25vd24gY29udGV4dC5cbiAgICovXG4gIFVua25vd24gPSAnVW5rbm93bidcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZ2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyBleHRlbmRlZCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgYmFzZSBuYW1lIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVCYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBleHRlbnNpb24gb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0YXRzIG9mIHRoZSBhdHRhY2htZW50IGZpbGUuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZVN0YXRzPzogRmlsZVN0YXRzIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBBdHRhY2htZW50UGF0aENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb3IgZmlsZSBvZiB0aGUgb2xkIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9yIGZpbGUgb2YgdGhlIG9sZCBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkTm90ZVBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBMYXppbHkgcmVhZHMgdGhlIGNvbnRlbnQgb2YgdGhlIGF0dGFjaG1lbnQgZmlsZS5cbiAgICpcbiAgICogVGhlIGNvbnRlbnQgaXMgcmVhZCBvbiBkZW1hbmQgb25seSB3aGVuIGEgY29uc3VtZXIgYWN0dWFsbHkgbmVlZHMgdGhlIGJ5dGVzIChlLmcuIGEgdGVtcGxhdGVcbiAgICogdG9rZW4gdGhhdCBlbWJlZHMgdGhlbSkuIEZvciB0aGUgZGVmYXVsdCB0ZW1wbGF0ZXMgbm90aGluZyBwdWxscyB0aGUgYnl0ZXMsIHNvIHRoZSBwb3RlbnRpYWxseVxuICAgKiBleHBlbnNpdmUgKHNpemUtcHJvcG9ydGlvbmFsKSBgcmVhZEJpbmFyeWAgbmV2ZXIgcnVucy4gQ29uc3VtZXJzIHRoYXQgbWF5IGNhbGwgdGhpcyBtb3JlIHRoYW5cbiAgICogb25jZSBzaG91bGQgbWVtb2l6ZSB0aGUgZmlyc3QgY2FsbC4gYG51bGxgIHdoZW4gdGhlcmUgaXMgbm8gYXR0YWNobWVudCBmaWxlIHRvIHJlYWQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGF0dGFjaG1lbnQgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQ6ICgoKSA9PiBQcm9taXNlPEFycmF5QnVmZmVyPikgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBnZW5lcmF0ZWQgYXR0YWNobWVudCBmaWxlIG5hbWUgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBHZW5lcmF0ZWRBdHRhY2htZW50RmlsZU5hbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgbWlzc2luZyBhdHRhY2htZW50IGZvbGRlciBjcmVhdGlvbiBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyByZWdpc3RyeSBBUEkgdGhpcyBtb2R1bGUgY2FsbHMsIGRlY2xhcmVkIGhlcmUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQ6XG4gKiB0aGF0IHBsdWdpbiBzaGlwcyBpdHMgc3VyZmFjZSBhcyBhIGhhbmQtd3JpdHRlbiBgYXBpLmQudHNgLCBub3QgYXMgYSBwYWNrYWdlIChzZWUgcnVsZSBMOSBpbiBgQUdFTlRTLm1kYCkuXG4gKi9cbmludGVyZmFjZSBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaSB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgZnVsbCBhdHRhY2htZW50LXBhdGggcmVzb2x2ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgc2FtZSBmaWVsZHMgYXMge0BsaW5rIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRnVuY3Rpb25QYXJhbXN9LCB3aGljaCB0aGVcbiAgICogICBwbHVnaW4gZGVjbGFyZXMgZmllbGQgZm9yIGZpZWxkLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50J3MgcGF0aCBmcm9tIHRoZSB2YXVsdCByb290LlxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzOiAocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zKSA9PiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgZGVzaWduYXRlZCBhIGZvbGRlciBhbiBhdHRhY2htZW50IHVuaXQgZm9sZGVyLiBTeW5jaHJvbm91cyBvbiBwdXJwb3NlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGZvbGRlci5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgZm9sZGVyIGlzIGRlc2lnbmF0ZWQuXG4gICAqL1xuICBpc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiAocGFyYW1zOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaS5pc0F0dGFjaG1lbnRVbml0Rm9sZGVyfS5cbiAqL1xuaW50ZXJmYWNlIEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciwgYXMgYSB2YXVsdC1yZWxhdGl2ZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBwbHVnaW4gaWQgYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCBwdWJsaXNoZXMgaXRzIEFQSSB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX1BMVUdJTl9JRCA9ICdvYnNpZGlhbi1jdXN0b20tYXR0YWNobWVudC1sb2NhdGlvbic7XG5cbi8qKlxuICogVGhlIGNvbnRyYWN0IHZlcnNpb25zIG9mIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyBBUEkgdGhpcyBtb2R1bGUgY29tcGlsZWQgYWdhaW5zdC4gYDEuMy4wYCBpcyB0aGUgZmlyc3RcbiAqIHRvIGNhcnJ5IHRoZSB0d28gYXR0YWNobWVudC1wYXRoIG1ldGhvZHMuXG4gKi9cbmNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX0FUVEFDSE1FTlRfUEFUSF9BUElfVkVSU0lPTl9SQU5HRSA9ICdeMS4zLjAnO1xuXG4vKipcbiAqIFRoZSBjb250cmFjdCBvZiB0aGUgbWVtYmVycyBvZiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gJ3MgQVBJIHRoaXMgbW9kdWxlIGNhbGxzLCBzbyBhIHJlY29yZCB0aGF0IGxhY2tzXG4gKiBlaXRoZXIgaXMgcGFzc2VkIG92ZXIsIGFuZCBhIHBheWxvYWQgdGhhdCBicmVha3MgaXRzIHNpZ25hdHVyZSBpcyByZXBvcnRlZCB3aGlsZSB0aGUgYFBsdWdpbkFwaWAgZGVidWdnZXIgaXMgb24uXG4gKlxuICogQSBjb3B5IG9mIHRob3NlIHR3byBlbnRyaWVzIG9mIGBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9BUElfQ09OVFJBQ1RgLCB3aGljaCBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHNoaXBzIGFzIGl0cyByb290IGBhcGktY29udHJhY3QudHNgXG4gKiBhbmQgcHVibGlzaGVzLiBLZWVwIHRoZSBndWFyZHMgaW4gYWdyZWVtZW50IHdpdGggdGhhdCBmaWxlLCBzbyB0aGUgcHJvdmlkZXIgYW5kIHRoaXMgY29uc3VtZXIgY2hlY2sgb25lIGRlZmluaXRpb24uXG4gKi9cbmNvbnN0IENVU1RPTV9BVFRBQ0hNRU5UX0xPQ0FUSU9OX0FUVEFDSE1FTlRfUEFUSF9BUElfQ09OVFJBQ1Q6IEFwaUNvbnRyYWN0PEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkF0dGFjaG1lbnRQYXRoQXBpPiA9IHtcbiAgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzOiB7XG4gICAgaW5wdXQ6IGNyZWF0ZUFyZ3VtZW50c1NjaGVtYTxbcGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zXT4oW3tcbiAgICAgIGV4cGVjdGVkOiAnYXZhaWxhYmxlLXBhdGgtZm9yLWF0dGFjaG1lbnRzIHBhcmFtcycsXG4gICAgICB0eXBlR3VhcmQ6IGlzR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGdW5jdGlvblBhcmFtc1xuICAgIH1dKSxcbiAgICBvdXRwdXQ6IGNyZWF0ZVR5cGVHdWFyZFNjaGVtYSh7IGV4cGVjdGVkOiAnYW4gYXR0YWNobWVudCBwYXRoJywgdHlwZUd1YXJkOiBpc1N0cmluZyB9KVxuICB9LFxuICBpc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiB7XG4gICAgaW5wdXQ6IGNyZWF0ZUFyZ3VtZW50c1NjaGVtYTxbcGFyYW1zOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zXT4oW3tcbiAgICAgIGV4cGVjdGVkOiAnYXR0YWNobWVudC11bml0LWZvbGRlciBwYXJhbXM6IHsgZm9sZGVyUGF0aDogc3RyaW5nIH0nLFxuICAgICAgdHlwZUd1YXJkOiBpc0N1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXNcbiAgICB9XSksXG4gICAgb3V0cHV0OiBjcmVhdGVUeXBlR3VhcmRTY2hlbWEoeyBleHBlY3RlZDogJ2EgYm9vbGVhbicsIHR5cGVHdWFyZDogaXNCb29sZWFuIH0pXG4gIH1cbn07XG5cbi8qKlxuICogRHVtbXkgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IERVTU1ZX1BBVEggPSAnX19EVU1NWV9fJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZ2V0QXR0YWNobWVudEZpbGVQYXRoIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGaWxlUGF0aFBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBBdHRhY2htZW50UGF0aENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBvbGQgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9sZE5vdGVQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBkdXBsaWNhdGUgY2hlY2sgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QXR0YWNobWVudEZvbGRlclBhdGh9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGb2xkZXJQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dC5cbiAgICpcbiAgICogQGRlZmF1bHQge0BsaW5rIEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3dufVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGxQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcbiAgLyoqXG4gICAqIEEgYmFzZSBuYW1lIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVCYXNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXh0ZW5zaW9uIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVFeHRlbnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZmlsZSB0byBhdHRhY2ggdG8uXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckZpbGU7XG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogU2hvdWxkIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgY3JlYXRpb24gYmUgc2tpcHBlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBoYXNPd25BdHRhY2htZW50Rm9sZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNPd25BdHRhY2htZW50Rm9sZGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dC5cbiAgICpcbiAgICogQGRlZmF1bHQge0BsaW5rIEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3dufVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXNBdFByb3BlckF0dGFjaG1lbnRQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBhdHRhY2htZW50IHRvIGNoZWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB7QGxpbmsgQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd259XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogQXR0YWNobWVudFBhdGhDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlIHRoYXQgcmVmZXJlbmNlcyB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRBdHRhY2htZW50RmlsZVBhdGhTeW5jfS5cbiAqL1xuaW50ZXJmYWNlIEdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jfS5cbiAqL1xuaW50ZXJmYWNlIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmNQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSBiYXNlIG5hbWUgb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZmlsZSB0byBhdHRhY2ggdG8uXG4gICAqL1xuICByZWFkb25seSBub3RlUGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgZHVwbGljYXRlIGNoZWNrIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlQXR0YWNobWVudEZvbGRlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlQXR0YWNobWVudEZvbGRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIGZpbGUgdG8gYXR0YWNoIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFRoZSBhdHRhY2htZW50IGZvbGRlciBhIG5vdGUgcmVzb2x2ZXMgdG8sIGJlZm9yZSB0aGUgYXR0YWNobWVudCBmaWxlIG5hbWUgaXMgYXBwZW5kZWQuXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlQXR0YWNobWVudEZvbGRlclJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXR0YWNobWVudCBmb2xkZXIsIG9yIGBudWxsYCB3aGVuIGl0IGRvZXMgbm90IGV4aXN0IGluIHRoZSB2YXVsdCB5ZXQuXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI6IG51bGwgfCBURm9sZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9ybWFsaXplZCBhdHRhY2htZW50IGZvbGRlciBwYXRoLCB3aGV0aGVyIG9yIG5vdCB0aGUgZm9sZGVyIGV4aXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnQgb2YgdGhlIGBhdHRhY2htZW50Rm9sZGVyUGF0aGAgc2V0dGluZyB0aGF0IGZvbGxvd3MgYC4vYCwgb3IgYG51bGxgIHdoZW4gdGhlIHNldHRpbmcgaXMgbm90XG4gICAqIHJlbGF0aXZlIHRvIHRoZSBub3RlLiBPbmx5IGEgcmVsYXRpdmUgc2V0dGluZyBtYXkgaGF2ZSBpdHMgbWlzc2luZyBmb2xkZXIgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogbnVsbCB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZpbGUgcGF0aCBmb3IgYW4gYXR0YWNobWVudCB3aXRoaW4gYSBub3RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZmlsZSBwYXRoIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgZmlsZSBwYXRoIG9mIHRoZSBhdHRhY2htZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZpbGVQYXRoKHBhcmFtczogR2V0QXR0YWNobWVudEZpbGVQYXRoUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBjdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkgPSBmaW5kQ3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpKCk7XG4gIGlmICghY3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpKSB7XG4gICAgLy8gTm9ib2R5IG92ZXJyaWRlcyB0aGUgcmVzb2x1dGlvbiwgc28gaXQgaXMgZW50aXJlbHkgc3luY2hyb25vdXMuXG4gICAgLy8gVGhlIHNhbWUgY29yZSBhbnN3ZXJzIGBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGxgLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gaW4gc3RlcC5cbiAgICByZXR1cm4gZ2V0QXR0YWNobWVudEZpbGVQYXRoU3luYyh7XG4gICAgICBhcHAsXG4gICAgICBub3RlUGF0aE9yRmlsZSxcbiAgICAgIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXBwLCBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlQmFzZU5hbWUgPSBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pO1xuICBjb25zdCBhdHRhY2htZW50RmlsZSA9IGdldEZpbGVPck51bGwoeyBhcHAsIHBhdGhPckZpbGU6IGF0dGFjaG1lbnRQYXRoIH0pO1xuXG4gIHJldHVybiBhd2FpdCBjdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKHtcbiAgICBhdHRhY2htZW50RmlsZUJhc2VOYW1lLFxuICAgIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBhdHRhY2htZW50RmlsZUV4dGVuc2lvbi5zbGljZSgxKSxcbiAgICBhdHRhY2htZW50RmlsZVN0YXRzOiBhdHRhY2htZW50RmlsZT8uc3RhdCxcbiAgICBjb250ZXh0OiBwYXJhbXMuY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICBvbGROb3RlUGF0aE9yRmlsZTogcGFyYW1zLm9sZE5vdGVQYXRoT3JGaWxlLFxuICAgIHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQ6IGF0dGFjaG1lbnRGaWxlID8gKCk6IFByb21pc2U8QXJyYXlCdWZmZXI+ID0+IGFwcC52YXVsdC5yZWFkQmluYXJ5KGF0dGFjaG1lbnRGaWxlKSA6IG51bGwsXG4gICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uOiB0cnVlXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXR0YWNobWVudCBmb2xkZXIgcGF0aCBmb3IgYSBnaXZlbiBub3RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZm9sZGVyIHBhdGggZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGgocGFyYW1zOiBHZXRBdHRhY2htZW50Rm9sZGVyUGF0aFBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgY29udGV4dCA9IEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3duLFxuICAgIG5vdGVQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiBwYXJlbnRGb2xkZXJQYXRoKFxuICAgIGF3YWl0IGdldEF0dGFjaG1lbnRGaWxlUGF0aCh7XG4gICAgICBhcHAsXG4gICAgICBjb250ZXh0LFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogRFVNTVlfUEFUSCxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoIGZvciBhIGdpdmVuIG5vdGUgKipzeW5jaHJvbm91c2x5KiosIHdoZW4gdGhhdCBpcyBwb3NzaWJsZSBhdCBhbGwuXG4gKlxuICogT2JzaWRpYW4gYnVpbGRzIGl0cyBmaWxlL2ZvbGRlciBjb250ZXh0IG1lbnVzIGFuZCBldmFsdWF0ZXMgYSBjb21tYW5kJ3MgYGNoZWNrQ2FsbGJhY2tgIHN5bmNocm9ub3VzbHksIHNvIGFcbiAqIGNhbGxlciBkZWNpZGluZyB3aGV0aGVyIHRvIG1lcmVseSAqb2ZmZXIqIGEgY29tbWFuZCBjYW5ub3QgYXdhaXQge0BsaW5rIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRofS4gVGhpcyBpc1xuICogdGhlIHN5bmNocm9ub3VzIHR3aW4gc3VjaCBhIGNhbGxlciBjYW4gdXNlIGluc3RlYWQuXG4gKlxuICogVGhlIGFuc3dlciBpcyBgbnVsbGAgd2hlbiBpdCBpcyBub3Qga25vd2FibGUgc3luY2hyb25vdXNseSDigJQgdGhhdCBpcywgd2hlbiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHB1Ymxpc2hlc1xuICogaXRzIGF0dGFjaG1lbnQtcGF0aCBBUEkgYW5kIHRoZXJlZm9yZSBvd25zIHRoZSByZXNvbHV0aW9uLCB3aGljaCBpcyBnZW51aW5lbHkgYXN5bmNocm9ub3VzLiBgbnVsbGAgbWVhbnMgXCJhc2sge0BsaW5rIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRofVwiLCBuZXZlciBcInRoZXJlIGlzIG5vIGF0dGFjaG1lbnRcbiAqIGZvbGRlclwiLiBPdGhlcndpc2UgdGhlIGFuc3dlciBpcyBleGFjdCByYXRoZXIgdGhhbiBhIGd1ZXNzOiBpdCBpcyBwcm9kdWNlZCBieSB0aGUgdmVyeSBzYW1lIGNvZGVcbiAqIHtAbGluayBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aH0gcnVucywgd2hvc2Ugb25seSBhc3luY2hyb25vdXMgc3RlcCDigJQgY3JlYXRpbmcgYSBtaXNzaW5nIGF0dGFjaG1lbnQgZm9sZGVyIOKAlFxuICogaXMgdW5yZWFjaGFibGUgb24gdGhpcyBwYXRoLlxuICpcbiAqIFRoZXJlIGlzIGRlbGliZXJhdGVseSBubyBgY29udGV4dGAgcGFyYW1ldGVyOiB7QGxpbmsgQXR0YWNobWVudFBhdGhDb250ZXh0fSBvbmx5IGV2ZXIgcmVhY2hlcyB0aGF0IHBsdWdpbidzXG4gKiByZXNvbHZlciwgYW5kIHRoaXMgZnVuY3Rpb24gYW5zd2VycyBgbnVsbGAgd2hlbmV2ZXIgaXQgaXMgcHVibGlzaGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF0dGFjaG1lbnQgZm9sZGVyIHBhdGggc3luYyBvciBudWxsIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIGF0dGFjaG1lbnQgZm9sZGVyIHBhdGgsIG9yIGBudWxsYCB3aGVuIGl0IGNhbiBvbmx5IGJlIHJlc29sdmVkIGFzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsKHBhcmFtczogR2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgbm90ZVBhdGhPckZpbGVcbiAgfSA9IHBhcmFtcztcblxuICByZXR1cm4gZmluZEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSgpXG4gICAgPyBudWxsXG4gICAgOiBwYXJlbnRGb2xkZXJQYXRoKGdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmMoe1xuICAgICAgYXBwLFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogRFVNTVlfUEFUSCxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICAgIH0pKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgLy8gTWF0ZXJpYWxpemluZyBhIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgaXMgdGhlIE9ORSBnZW51aW5lbHkgYXN5bmNocm9ub3VzIHN0ZXAgaW4gdGhpcyBmdW5jdGlvbi5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGxpdmVzIGluIHRoZSBzeW5jaHJvbm91cyBjb3JlLCB3aGljaCB0aGUgc3luY2hyb25vdXMgZW50cnkgcG9pbnRzIHJldXNlIHZlcmJhdGltLlxuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyID0gcmVzb2x2ZUF0dGFjaG1lbnRGb2xkZXIoeyBhcHAsIG5vdGVQYXRoT3JGaWxlIH0pO1xuICBpZiAoIWF0dGFjaG1lbnRGb2xkZXIuZm9sZGVyICYmIGF0dGFjaG1lbnRGb2xkZXIucmVsYXRpdmVQYXRoICYmICFzaG91bGRTa2lwTWlzc2luZ0F0dGFjaG1lbnRGb2xkZXJDcmVhdGlvbikge1xuICAgIGF3YWl0IGFwcC52YXVsdC5jcmVhdGVGb2xkZXIoYXR0YWNobWVudEZvbGRlci5wYXRoKTtcbiAgfVxuXG4gIHJldHVybiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jKHBhcmFtcyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGF0dGFjaG1lbnQtdW5pdC1mb2xkZXIgZGVzaWduYXRpb24gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCBwdWJsaXNoZXMgdGhyb3VnaCBpdHMgcGx1Z2luIEFQSS5cbiAqXG4gKiBUaGUgZGVzaWduYXRpb24gaXMgb25lIHBsdWdpbidzIHNldHRpbmcgYnV0IGV2ZXJ5IHJlbG9jYXRpbmcgcGx1Z2luJ3MgYnVzaW5lc3MsIHNvIGl0IGlzIHJlYWQgZnJvbSB0aGUgc2FtZVxuICogQVBJIHRoYXQgYW5zd2VycyB0aGUgYXR0YWNobWVudCBwYXRoIGl0c2VsZi4gUmVhZGluZyBpdCBoZXJlIHJhdGhlciB0aGFuIGhhdmluZyBlYWNoIGNhbGxlciBsb29rIGZvciB0aGVcbiAqIHBsdWdpbiBpcyB0aGUgcG9pbnQg4oCUIGEgZm9sZGVyIGtlcHQgd2hvbGUgYnkgb25lIHBsdWdpbiBhbmQgdG9ybiBhcGFydCBieSBhbm90aGVyIGlzIGV4YWN0bHkgdGhlIGZhaWx1cmVcbiAqIGBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoYCBleGlzdHMgdG8gcHJldmVudC5cbiAqXG4gKiBgdW5kZWZpbmVkYCBtZWFucyBub2JvZHkgcHVibGlzaGVkIGEgZGVzaWduYXRpb24sIHRoZSBzYW1lIFwibm9ib2R5IG93bnMgdGhpcyBwb2xpY3lcIiBhbnN3ZXIgdGhhdCBzZW5kc1xuICoge0BsaW5rIGdldEF0dGFjaG1lbnRGaWxlUGF0aH0gdG8gT2JzaWRpYW4ncyBvd24gcmVzb2x1dGlvbi4gSXQgaXMgZGlzdGluY3QgZnJvbSBhIGRlc2lnbmF0aW9uIHRoYXQgYW5zd2Vyc1xuICogYGZhbHNlYCBmb3IgZXZlcnkgZm9sZGVyLlxuICpcbiAqIFRoZSByZWdpc3RyeSBpcyBsb29rZWQgdXAgb25jZSwgd2hlbiB0aGlzIGlzIGNhbGxlZCwgc28gYSBjYWxsZXIgd2Fsa2luZyBhIGZvbGRlcidzIGFuY2VzdG9ycyBhc2tzIHRoZSBzYW1lXG4gKiBBUEkgYWxsIHRoZSB3YXkgdXAuXG4gKlxuICogQHBhcmFtIF9hcHAgLSBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS4gVW51c2VkIHNpbmNlIHRoZSBhbnN3ZXIgY29tZXMgZnJvbSB0aGUgcGx1Z2luIEFQSSByZWdpc3RyeTtcbiAqICAga2VwdCBzbyBleGlzdGluZyBjYWxsZXJzIGNvbXBpbGUgdW5jaGFuZ2VkLlxuICogQHJldHVybnMgVGhlIGRlc2lnbmF0aW9uIHByZWRpY2F0ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBub2JvZHkgcHVibGlzaGVkIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uKF9hcHA6IEFwcCk6ICgoZm9sZGVyUGF0aDogc3RyaW5nKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSA9IGZpbmRDdXN0b21BdHRhY2htZW50TG9jYXRpb25BcGkoKTtcbiAgcmV0dXJuIGN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaVxuICAgID8gKGZvbGRlclBhdGg6IHN0cmluZyk6IGJvb2xlYW4gPT4gY3VzdG9tQXR0YWNobWVudExvY2F0aW9uQXBpLmlzQXR0YWNobWVudFVuaXRGb2xkZXIoeyBmb2xkZXJQYXRoIH0pXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub3RlJ3MgYXR0YWNobWVudCBmb2xkZXIgaXMgc3BlY2lmaWMgdG8gdGhhdCBub3RlIHJhdGhlciB0aGFuIHNoYXJlZCB3aXRoIGl0cyBzaWJsaW5ncy5cbiAqXG4gKiBUaGUgYW5zd2VyIGlzIGRlcml2ZWQgYnkgY29tcGFyaW5nIHRoZSBub3RlJ3MgYXR0YWNobWVudCBmb2xkZXIgd2l0aCB0aGUgb25lIGEgc2FtZS1mb2xkZXIgc2libGluZyBub3RlXG4gKiB3b3VsZCBnZXQ6IHRoZXkgZGlmZmVyIG9ubHkgd2hlbiB0aGUgZm9sZGVyIGRlcGVuZHMgb24gdGhlIG5vdGUncyBOQU1FLiBFdmVyeSBidWlsdC1pblxuICogYGF0dGFjaG1lbnRGb2xkZXJQYXRoYCBtb2RlIOKAlCB0aGUgdmF1bHQgcm9vdCwgYSBmaXhlZCBmb2xkZXIsIHRoZSBub3RlJ3Mgb3duIGZvbGRlciAoYC4vYCksIGEgc3ViZm9sZGVyIG9mXG4gKiB0aGUgbm90ZSdzIGZvbGRlciAoYC4vc3ViYCkg4oCUIGlzIHNoYXJlZCBieSBldmVyeSBub3RlIGluIHRoYXQgZm9sZGVyLCBzbyBpdCBhbnN3ZXJzIGBmYWxzZWA7IGB0cnVlYCBhcmlzZXNcbiAqIGZyb20gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYCdzIHJlc29sdmVyIGRlcml2aW5nIHRoZSBmb2xkZXIgZnJvbSB0aGUgbm90ZSdzIG5hbWUuXG4gKlxuICogVGhpcyBpcyB0aGUgZGlzdGluY3Rpb24gYSBjYWxsZXIgbmVlZHMgYmVmb3JlIHN3ZWVwaW5nIGFuIGF0dGFjaG1lbnQgZm9sZGVyIHdob2xlc2FsZTogb25seSBhXG4gKiBub3RlLXNwZWNpZmljIGZvbGRlciBjYW4gYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gdGhlIG5vdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBoYXMgb3duIGF0dGFjaG1lbnQgZm9sZGVyIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBub3RlIGhhcyBpdHMgb3duIGF0dGFjaG1lbnQgZm9sZGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFzT3duQXR0YWNobWVudEZvbGRlcihwYXJhbXM6IEhhc093bkF0dGFjaG1lbnRGb2xkZXJQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBjb250ZXh0ID0gQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd24sXG4gICAgcGF0aFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKHtcbiAgICBhcHAsXG4gICAgY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZTogcGF0aFxuICB9KTtcbiAgY29uc3QgZHVtbXlBdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKHtcbiAgICBhcHAsXG4gICAgY29udGV4dCxcbiAgICBub3RlUGF0aE9yRmlsZTogam9pbihkaXJuYW1lKHBhdGgpLCBgJHtEVU1NWV9QQVRIfS4ke01BUktET1dOX0ZJTEVfRVhURU5TSU9OfWApXG4gIH0pO1xuICByZXR1cm4gYXR0YWNobWVudEZvbGRlclBhdGggIT09IGR1bW15QXR0YWNobWVudEZvbGRlclBhdGg7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gYXR0YWNobWVudCBhbHJlYWR5IHNpdHMgYXQgaXRzIHByb3BlciBhdHRhY2htZW50IHBhdGguXG4gKlxuICogUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgYXR0YWNobWVudCdzIGN1cnJlbnQgcGF0aCBpcywgd2l0aGluIGl0cyBwcm9wZXIgYXR0YWNobWVudCBmb2xkZXIsIGVpdGhlciB0aGUgcHJvcGVyXG4gKiBiYXNlIG5hbWUgb3IgdGhlIHByb3BlciBiYXNlIG5hbWUgcGx1cyBhbiBPYnNpZGlhbiBkZWR1cGxpY2F0aW9uIHN1ZmZpeCAoYSBzcGFjZSBmb2xsb3dlZCBieSBkaWdpdHMsIGUuZy5cbiAqIGBpbWcgMWApIHdpdGggdGhlIHNhbWUgZXh0ZW5zaW9uLiBUaGUgcHJvcGVyIHBhdGggaXMgY29tcHV0ZWQgdmlhIHtAbGluayBnZXRBdHRhY2htZW50RmlsZVBhdGh9IHdpdGhcbiAqIHtAbGluayBHZXRBdHRhY2htZW50RmlsZVBhdGhQYXJhbXMuc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrfSBzZXQgdG8gYHRydWVgICh0aGUgdGFyZ2V0IGJlZm9yZSBhbnlcbiAqIGRlZHVwbGljYXRpb24gc3VmZml4KSwgYW5kIHRoZSBjb21wYXJpc29uIHJlc3BlY3RzIHRoZSBmaWxlIHN5c3RlbSBjYXNlLXNlbnNpdGl2aXR5IGZsYWdcbiAqIChgZ2V0RGF0YUFkYXB0ZXJFeChhcHApLmluc2Vuc2l0aXZlYCkgdGhhdCBgZ2V0U2FmZVJlbmFtZVBhdGhgIHVzZXMuXG4gKlxuICogVGhpcyBsZXRzIGEgY2FsbGVyIHJlY29nbml6ZSBhIGRlZHVwbGljYXRpb24tcGFya2VkIGF0dGFjaG1lbnQgYXMgYWxyZWFkeS1jb2xsZWN0ZWQsIHNvIGEgXCJuZWVkcyBtb3ZlP1wiXG4gKiBkZWNpc2lvbiBtYWRlIGFnYWluc3QgdGhlIGRlZHVwbGljYXRpb24tZnJlZSBwcm9wZXIgcGF0aCBjb252ZXJnZXMgaW5zdGVhZCBvZiByZS1zY2hlZHVsaW5nIHRoZSBmaWxlIGZvcmV2ZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBpcyBhdCBwcm9wZXIgYXR0YWNobWVudCBwYXRoIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBgdHJ1ZWAgd2hlbiB0aGUgYXR0YWNobWVudCBpcyBhbHJlYWR5IGF0IGl0cyBwcm9wZXIgcGF0aC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aChwYXJhbXM6IElzQXRQcm9wZXJBdHRhY2htZW50UGF0aFBhcmFtcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIGNvbnRleHQgPSBBdHRhY2htZW50UGF0aENvbnRleHQuVW5rbm93bixcbiAgICBub3RlUGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGN1cnJlbnRQYXRoID0gZ2V0UGF0aChhcHAsIGF0dGFjaG1lbnRQYXRoT3JGaWxlKTtcbiAgY29uc3QgcHJvcGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGaWxlUGF0aCh7XG4gICAgYXBwLFxuICAgIGNvbnRleHQsXG4gICAgbm90ZVBhdGhPckZpbGUsXG4gICAgb2xkQXR0YWNobWVudFBhdGhPckZpbGU6IGF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICB9KTtcblxuICBjb25zdCBpc0luc2Vuc2l0aXZlID0gZ2V0RGF0YUFkYXB0ZXJFeChhcHApLmluc2Vuc2l0aXZlO1xuXG4gIGZ1bmN0aW9uIGZvbGQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzSW5zZW5zaXRpdmUgPyB2YWx1ZS50b0xvd2VyQ2FzZSgpIDogdmFsdWU7XG4gIH1cblxuICBpZiAoZm9sZChkaXJuYW1lKGN1cnJlbnRQYXRoKSkgIT09IGZvbGQoZGlybmFtZShwcm9wZXJQYXRoKSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjdXJyZW50RXh0ZW5zaW9uID0gZXh0bmFtZShjdXJyZW50UGF0aCk7XG4gIGNvbnN0IHByb3BlckV4dGVuc2lvbiA9IGV4dG5hbWUocHJvcGVyUGF0aCk7XG4gIGlmIChmb2xkKGN1cnJlbnRFeHRlbnNpb24pICE9PSBmb2xkKHByb3BlckV4dGVuc2lvbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjdXJyZW50QmFzZU5hbWUgPSBiYXNlbmFtZShjdXJyZW50UGF0aCwgY3VycmVudEV4dGVuc2lvbik7XG4gIGNvbnN0IHByb3BlckJhc2VOYW1lID0gYmFzZW5hbWUocHJvcGVyUGF0aCwgcHJvcGVyRXh0ZW5zaW9uKTtcblxuICBpZiAoZm9sZChjdXJyZW50QmFzZU5hbWUpID09PSBmb2xkKHByb3BlckJhc2VOYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgZGVkdXBsaWNhdGlvblByZWZpeCA9IGAke3Byb3BlckJhc2VOYW1lfSBgO1xuICBpZiAoIWZvbGQoY3VycmVudEJhc2VOYW1lKS5zdGFydHNXaXRoKGZvbGQoZGVkdXBsaWNhdGlvblByZWZpeCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGVkdXBsaWNhdGlvblN1ZmZpeCA9IGN1cnJlbnRCYXNlTmFtZS5zbGljZShkZWR1cGxpY2F0aW9uUHJlZml4Lmxlbmd0aCk7XG4gIHJldHVybiAvXlxcZCskLy50ZXN0KGRlZHVwbGljYXRpb25TdWZmaXgpO1xufVxuXG4vKipcbiAqIEZpbmRzIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAncyBhdHRhY2htZW50LXBhdGggQVBJIGluIHRoZSBwbHVnaW4gQVBJIHJlZ2lzdHJ5LiBJdHMgcHJlc2VuY2UgaXMgdGhlXG4gKiBzeW5jaHJvbm91cyBwcm9iZSBmb3IgXCJzb21lYm9keSBlbHNlIG93bnMgdGhlIHJlc29sdXRpb25cIi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQVBJLCBvciBgbnVsbGAgd2hlbiB0aGF0IHBsdWdpbiBwdWJsaXNoZXMgbm8gcmVjb3JkIHNhdGlzZnlpbmcgdGhlIHJhbmdlIGFuZCBjb250cmFjdC5cbiAqL1xuZnVuY3Rpb24gZmluZEN1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbkFwaSgpOiBDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaSB8IG51bGwge1xuICByZXR1cm4gZmluZFBsdWdpbkFwaTxDdXN0b21BdHRhY2htZW50TG9jYXRpb25BdHRhY2htZW50UGF0aEFwaT4oe1xuICAgIGFwaVZlcnNpb25SYW5nZTogQ1VTVE9NX0FUVEFDSE1FTlRfTE9DQVRJT05fQVRUQUNITUVOVF9QQVRIX0FQSV9WRVJTSU9OX1JBTkdFLFxuICAgIGNvbnRyYWN0OiBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9BVFRBQ0hNRU5UX1BBVEhfQVBJX0NPTlRSQUNULFxuICAgIHBsdWdpbklkOiBDVVNUT01fQVRUQUNITUVOVF9MT0NBVElPTl9QTFVHSU5fSURcbiAgfSk7XG59XG5cbi8qKlxuICogVGhlIHN5bmNocm9ub3VzIGNvcmUgb2Yge0BsaW5rIGdldEF0dGFjaG1lbnRGaWxlUGF0aH0sIHJlYWNoZWQgd2hlbiBgQ3VzdG9tIEF0dGFjaG1lbnQgTG9jYXRpb25gIHB1Ymxpc2hlcyBub1xuICogYXR0YWNobWVudC1wYXRoIEFQSS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdHRhY2htZW50IGZpbGUgcGF0aCBzeW5jIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIGZpbGUgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAqL1xuZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZpbGVQYXRoU3luYyhwYXJhbXM6IEdldEF0dGFjaG1lbnRGaWxlUGF0aFN5bmNQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVja1xuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXBwLCBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG5cbiAgcmV0dXJuIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmMoe1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pLFxuICAgIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBhdHRhY2htZW50RmlsZUV4dGVuc2lvbi5zbGljZSgxKSxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSk7XG59XG5cbi8qKlxuICogVGhlIHN5bmNocm9ub3VzIGNvcmUgb2Yge0BsaW5rIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c30sIHdoaWNoIGNhbm5vdCBjcmVhdGUgYSBtaXNzaW5nIGF0dGFjaG1lbnRcbiAqIGZvbGRlci4gSXRzIGNhbGxlciBjcmVhdGVzIHRoZSBmb2xkZXIgZmlyc3Qgd2hlbiB0aGF0IGlzIHdhbnRlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgc3luYyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gKi9cbmZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1N5bmMocGFyYW1zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNTeW5jUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUV4dGVuc2lvbixcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgYXR0YWNobWVudEZvbGRlciA9IHJlc29sdmVBdHRhY2htZW50Rm9sZGVyKHsgYXBwLCBub3RlUGF0aE9yRmlsZSB9KTtcbiAgY29uc3QgYXR0YWNobWVudEZpbGVCYXNlTmFtZSA9IG5vcm1hbGl6ZVN0cmluZyhub3JtYWxpemVTbGFzaGVzKHBhcmFtcy5hdHRhY2htZW50RmlsZUJhc2VOYW1lKSk7XG5cbiAgLy8gQSBmb2xkZXIgdGhhdCBkb2VzIG5vdCBleGlzdCB5ZXQgc3RpbGwgb3ducyB0aGUgYXR0YWNobWVudCBwYXRoLlxuICAvLyBSZXNvbHZpbmcgaXQgYXMgYSBub24tZXhpc3RpbmcgZm9sZGVyIHN0b3BzIHRoZSBhbnN3ZXIgZnJvbSBjb2xsYXBzaW5nIHRvIHRoZSB2YXVsdCByb290LlxuICBjb25zdCBmb2xkZXIgPSBhdHRhY2htZW50Rm9sZGVyLmZvbGRlciA/PyBnZXRGb2xkZXIoeyBhcHAsIHBhdGhPckZvbGRlcjogYXR0YWNobWVudEZvbGRlci5wYXRoLCBzaG91bGRJbmNsdWRlTm9uRXhpc3Rpbmc6IHRydWUgfSk7XG5cbiAgY29uc3QgcHJlZml4ID0gZm9sZGVyLmdldFBhcmVudFByZWZpeCgpO1xuICByZXR1cm4gc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrXG4gICAgPyBtYWtlRmlsZU5hbWUoe1xuICAgICAgZmlsZUJhc2VOYW1lOiBwcmVmaXggKyBhdHRhY2htZW50RmlsZUJhc2VOYW1lLFxuICAgICAgZmlsZUV4dGVuc2lvbjogYXR0YWNobWVudEZpbGVFeHRlbnNpb25cbiAgICB9KVxuICAgIDogYXBwLnZhdWx0LmdldEF2YWlsYWJsZVBhdGgocHJlZml4ICsgYXR0YWNobWVudEZpbGVCYXNlTmFtZSwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pO1xufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUF0dGFjaG1lbnRMb2NhdGlvbklzQXR0YWNobWVudFVuaXRGb2xkZXJQYXJhbXModmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDdXN0b21BdHRhY2htZW50TG9jYXRpb25Jc0F0dGFjaG1lbnRVbml0Rm9sZGVyUGFyYW1zIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIFJlZmxlY3QuZ2V0KHZhbHVlLCAnZm9sZGVyUGF0aCcpID09PSAnc3RyaW5nJztcbn1cblxuZnVuY3Rpb24gaXNGaWxlU3RhdHModmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBGaWxlU3RhdHMge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICYmIHZhbHVlICE9PSBudWxsXG4gICAgJiYgdHlwZW9mIFJlZmxlY3QuZ2V0KHZhbHVlLCAnY3RpbWUnKSA9PT0gJ251bWJlcidcbiAgICAmJiB0eXBlb2YgUmVmbGVjdC5nZXQodmFsdWUsICdtdGltZScpID09PSAnbnVtYmVyJ1xuICAgICYmIHR5cGVvZiBSZWZsZWN0LmdldCh2YWx1ZSwgJ3NpemUnKSA9PT0gJ251bWJlcic7XG59XG5cbmZ1bmN0aW9uIGlzR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGdW5jdGlvblBhcmFtcyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRnVuY3Rpb25QYXJhbXMge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWQoa2V5OiBrZXlvZiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNFeHRlbmRlZEZ1bmN0aW9uUGFyYW1zKTogdW5rbm93biB7XG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHZhbHVlIGFzIG9iamVjdCwga2V5KTtcbiAgfVxuXG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlU3RhdHMgPSByZWFkKCdhdHRhY2htZW50RmlsZVN0YXRzJyk7XG4gIGNvbnN0IGNvbnRleHQgPSByZWFkKCdjb250ZXh0Jyk7XG4gIGNvbnN0IG5vdGVQYXRoT3JGaWxlID0gcmVhZCgnbm90ZVBhdGhPckZpbGUnKTtcbiAgY29uc3Qgb2xkTm90ZVBhdGhPckZpbGUgPSByZWFkKCdvbGROb3RlUGF0aE9yRmlsZScpO1xuICBjb25zdCByZWFkQXR0YWNobWVudEZpbGVDb250ZW50ID0gcmVhZCgncmVhZEF0dGFjaG1lbnRGaWxlQ29udGVudCcpO1xuICByZXR1cm4gdHlwZW9mIHJlYWQoJ2F0dGFjaG1lbnRGaWxlQmFzZU5hbWUnKSA9PT0gJ3N0cmluZydcbiAgICAmJiB0eXBlb2YgcmVhZCgnYXR0YWNobWVudEZpbGVFeHRlbnNpb24nKSA9PT0gJ3N0cmluZydcbiAgICAmJiAoYXR0YWNobWVudEZpbGVTdGF0cyA9PT0gdW5kZWZpbmVkIHx8IGlzRmlsZVN0YXRzKGF0dGFjaG1lbnRGaWxlU3RhdHMpKVxuICAgICYmIE9iamVjdC52YWx1ZXMoQXR0YWNobWVudFBhdGhDb250ZXh0KS5pbmNsdWRlcyhjb250ZXh0KVxuICAgICYmIChub3RlUGF0aE9yRmlsZSA9PT0gbnVsbCB8fCBpc1BhdGhPckZpbGUobm90ZVBhdGhPckZpbGUpKVxuICAgICYmIGlzUGF0aE9yRmlsZShyZWFkKCdvbGRBdHRhY2htZW50UGF0aE9yRmlsZScpKVxuICAgICYmIChvbGROb3RlUGF0aE9yRmlsZSA9PT0gdW5kZWZpbmVkIHx8IGlzUGF0aE9yRmlsZShvbGROb3RlUGF0aE9yRmlsZSkpXG4gICAgJiYgKHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQgPT09IG51bGwgfHwgdHlwZW9mIHJlYWRBdHRhY2htZW50RmlsZUNvbnRlbnQgPT09ICdmdW5jdGlvbicpXG4gICAgJiYgaXNPcHRpb25hbEJvb2xlYW4ocmVhZCgnc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrJykpXG4gICAgJiYgaXNPcHRpb25hbEJvb2xlYW4ocmVhZCgnc2hvdWxkU2tpcEdlbmVyYXRlZEF0dGFjaG1lbnRGaWxlTmFtZScpKVxuICAgICYmIGlzT3B0aW9uYWxCb29sZWFuKHJlYWQoJ3Nob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uJykpO1xufVxuZnVuY3Rpb24gaXNPcHRpb25hbEJvb2xlYW4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgaXNCb29sZWFuKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcGF0aCBieSBjb21iaW5pbmcgbXVsdGlwbGUgc2xhc2hlcyBpbnRvIGEgc2luZ2xlIHNsYXNoIGFuZCByZW1vdmluZyBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gUGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTbGFzaGVzKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHBhdGggPSByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBwYXRoLFxuICAgIHJlcGxhY2VyOiAnLycsXG4gICAgc2VhcmNoVmFsdWU6IC8oPzpbXFxcXC9dKSsvZ1xuICB9KTtcbiAgcGF0aCA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHBhdGgsXG4gICAgcmVwbGFjZXI6ICcnLFxuICAgIHNlYXJjaFZhbHVlOiAvXlxcLyt8XFwvKyQvZ1xuICB9KTtcbiAgcmV0dXJuIHBhdGggfHwgJy8nO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBgYXR0YWNobWVudEZvbGRlclBhdGhgIHNldHRpbmcgYWdhaW5zdCBhIG5vdGUgaW50byBhIGNvbmNyZXRlIGF0dGFjaG1lbnQgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x2ZSBhdHRhY2htZW50IGZvbGRlciBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhdHRhY2htZW50IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUF0dGFjaG1lbnRGb2xkZXIocGFyYW1zOiBSZXNvbHZlQXR0YWNobWVudEZvbGRlclBhcmFtcyk6IFJlc29sdmVBdHRhY2htZW50Rm9sZGVyUmVzdWx0IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBub3RlUGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuICBsZXQgYXR0YWNobWVudEZvbGRlclBhdGggPSBhcHAudmF1bHQuZ2V0Q29uZmlnKCdhdHRhY2htZW50Rm9sZGVyUGF0aCcpIGFzIHN0cmluZztcbiAgY29uc3QgaXNDdXJyZW50Rm9sZGVyID0gYXR0YWNobWVudEZvbGRlclBhdGggPT09ICcuJyB8fCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gJy4vJztcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gYXR0YWNobWVudEZvbGRlclBhdGguc3RhcnRzV2l0aCgnLi8nKVxuICAgID8gdHJpbVN0YXJ0KHtcbiAgICAgICRzdHJpbmc6IGF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICAgICAgcHJlZml4OiAnLi8nXG4gICAgfSlcbiAgICA6IG51bGw7XG5cbiAgLy8gQSBub3RlIHRoYXQgZG9lcyBub3QgZXhpc3QgeWV0IChhIHJlbmFtZSB0YXJnZXQsIGEgZHVtbXkgc2libGluZykgc3RpbGwgYmVsb25ncyB0byBpdHMgb3duIGZvbGRlci5cbiAgLy8gTWF0ZXJpYWxpemluZyBpdCBmcm9tIGl0cyBwYXRoIGtlZXBzIHRoYXQgZm9sZGVyLCB3aGVyZSBhIHZhdWx0IGxvb2t1cCB3b3VsZCBmYWxsIGJhY2sgdG8gdGhlIHJvb3QuXG4gIC8vIE9ubHkgYW4gZXhwbGljaXRseSBub3RlLWxlc3MgYXR0YWNobWVudCByZXNvbHZlcyB0byB0aGUgdmF1bHQgcm9vdC5cbiAgY29uc3Qgbm90ZUZpbGVPck51bGwgPSBub3RlUGF0aE9yRmlsZSA9PT0gbnVsbFxuICAgID8gbnVsbFxuICAgIDogZ2V0RmlsZSh7XG4gICAgICBhcHAsXG4gICAgICBwYXRoT3JGaWxlOiBub3RlUGF0aE9yRmlsZSxcbiAgICAgIHNob3VsZEluY2x1ZGVOb25FeGlzdGluZzogdHJ1ZVxuICAgIH0pO1xuXG4gIGlmIChpc0N1cnJlbnRGb2xkZXIpIHtcbiAgICBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IG5vdGVGaWxlT3JOdWxsID8gbm90ZUZpbGVPck51bGwucGFyZW50Py5wYXRoID8/ICcnIDogJyc7XG4gIH0gZWxzZSBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgYXR0YWNobWVudEZvbGRlclBhdGggPSAobm90ZUZpbGVPck51bGwgPyBub3RlRmlsZU9yTnVsbC5wYXJlbnQ/LmdldFBhcmVudFByZWZpeCgpID8/ICcnIDogJycpICsgcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgYXR0YWNobWVudEZvbGRlclBhdGggPSBub3JtYWxpemVTdHJpbmcobm9ybWFsaXplU2xhc2hlcyhhdHRhY2htZW50Rm9sZGVyUGF0aCkpO1xuXG4gIHJldHVybiB7XG4gICAgZm9sZGVyOiBnZXRGb2xkZXJPck51bGwoeyBhcHAsIGlzQ2FzZUluc2Vuc2l0aXZlOiB0cnVlLCBwYXRoT3JGb2xkZXI6IGF0dGFjaG1lbnRGb2xkZXJQYXRoIH0pLFxuICAgIHBhdGg6IGF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICAgIHJlbGF0aXZlUGF0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
@@ -1,4 +1,4 @@
1
- /// <reference path="./library.d.cts" />
1
+ /// <reference path="./library-references.d.cts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,20 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
30
+ ensureBrowserProcess();
50
31
  })();
51
32
  (function patchObsidianRequire() {
52
33
  const originalRequire = require;
@@ -165,4 +146,4 @@ function rebasePathOntoFolder(params) {
165
146
  findAttachmentUnitFolderPath,
166
147
  rebasePathOntoFolder
167
148
  });
168
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyB3aGljaCBmb2xkZXIgYW4gYXR0YWNobWVudCBiZWxvbmdzIHRvIHdoZW4gdGhlIHVzZXIgaGFzIGRlc2lnbmF0ZWQgZm9sZGVycyB0aGF0IG11c3RcbiAqIHRyYXZlbCBhcyBhIHNpbmdsZSB1bml0LlxuICpcbiAqIFNvbWUgZm9ybWF0cyBhcmUgcmVhbGx5IGEgZGlyZWN0b3J5IHRyZWUgcmF0aGVyIHRoYW4gYSBmaWxlOiBhIHBhZ2Ugc2F2ZWQgZnJvbSBhIGJyb3dzZXIgc2l0cyBuZXh0XG4gKiB0byBhIGBfZmlsZXMvYCBmb2xkZXIgaG9sZGluZyBpdHMgaW1hZ2VzIGFuZCBzdHlsZXNoZWV0cywgYW4gYC5leGNhbGlkcmF3YCBzaXRzIG5leHQgdG8gdGhlIGltYWdlc1xuICogaXQgcmVmZXJlbmNlcy4gUmVsb2NhdGluZyBvbmx5IHRoZSBsaW5rZWQgZmlsZSBsZWF2ZXMgdGhlIHJlc3QgYmVoaW5kIGFuZCB0aGUgYXR0YWNobWVudCBhcnJpdmVzXG4gKiBicm9rZW4uXG4gKlxuICogVGhpcyBsaXZlcyBpbiB0aGUgc2hhcmVkIGxpYnJhcnkgcmF0aGVyIHRoYW4gaW4gb25lIHBsdWdpbiBiZWNhdXNlIG1vcmUgdGhhbiBvbmUgcGx1Z2luIHJlbG9jYXRlc1xuICogYXR0YWNobWVudHMgb3ZlciB0aGUgc2FtZSB2YXVsdC4gSWYgdGhleSBlYWNoIGRlY2lkZWQgc2VwYXJhdGVseSB3aGF0IG9uZSBhdHRhY2htZW50IGlzLCBhIHVzZXJcbiAqIHdpdGggYm90aCBpbnN0YWxsZWQgd291bGQgZ2V0IGEgZm9sZGVyIGtlcHQgd2hvbGUgYnkgb25lIGFuZCB0b3JuIGFwYXJ0IGJ5IHRoZSBvdGhlci5cbiAqXG4gKiBXaGljaCBpcyB3aHkgdGhlIGRlc2lnbmF0aW9uIGl0c2VsZiBpcyByZWFkIGZyb20gb25lIHNoYXJlZCBzb3VyY2UgcmF0aGVyIHRoYW4gc3VwcGxpZWQgcGVyIGNhbGxlcjogcGFzc1xuICogYW4ge0BsaW5rIEFwcH0gYW5kIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofSB3YWxrcyB3aXRoIHdoYXRldmVyIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmBcbiAqIHB1Ymxpc2hlcyB0aHJvdWdoIGl0cyBwbHVnaW4gQVBJLCBzbyBldmVyeSBwbHVnaW4gZGVjaWRlcyBmcm9tIG9uZSBhbnN3ZXIuIFRoZSBleHBsaWNpdC1wcmVkaWNhdGUgZm9ybSByZW1haW5zIGZvciBhIGNhbGxlciB0aGF0IGdlbnVpbmVseSBvd25zIGl0cyBvd24gcGF0dGVybnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5cbmltcG9ydCB7IGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uIH0gZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofSwgcmVhZGluZyB0aGUgZGVzaWduYXRpb24gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYFxuICogcHVibGlzaGVzIHRocm91Z2ggaXRzIHBsdWdpbiBBUEkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aEZyb21BcHBQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50UGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofS5cbiAqXG4gKiBQcmVmZXIge0BsaW5rIEZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGhGcm9tQXBwUGFyYW1zfSBcdTIwMTQgaXQgaXMgdGhlIGZvcm0gdGhhdCBtYWtlcyBldmVyeSBwbHVnaW5cbiAqIGRlY2lkZSBmcm9tIG9uZSBwdWJsaXNoZWQgYW5zd2VyLlxuICovXG5leHBvcnQgdHlwZSBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoUGFyYW1zID0gRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aEZyb21BcHBQYXJhbXMgfCBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoV2l0aFByZWRpY2F0ZVBhcmFtcztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aH0sIHdhbGtpbmcgd2l0aCBhIHByZWRpY2F0ZSB0aGUgY2FsbGVyIG93bnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aFdpdGhQcmVkaWNhdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZm9sZGVyIHBhdGggaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQuXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXJQYXRoIC0gVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGZvbGRlci5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBmb2xkZXIgaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiAoZm9sZGVyUGF0aDogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZWJhc2VQYXRoT250b0ZvbGRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmViYXNlUGF0aE9udG9Gb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlcidzIG5ldyBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV3Rm9sZGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyJ3Mgb2xkIHBhdGguXG4gICAqL1xuICByZWFkb25seSBvbGRGb2xkZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHJlYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgZm9sZGVyIHRoYXQgYW4gYXR0YWNobWVudCBtdXN0IHRyYXZlbCB3aXRoLlxuICpcbiAqIFJldHVybnMgdGhlICoqb3V0ZXJtb3N0KiogZGVzaWduYXRlZCBhbmNlc3Rvciwgbm90IHRoZSBuZWFyZXN0IG9uZS4gV2l0aCBuZXN0ZWQgZGVzaWduYXRpb25zLFxuICogbW92aW5nIHRoZSBuZWFyZXN0IHdvdWxkIHRlYXIgdGhlIG91dGVyIHRyZWUgaW4gaGFsZiwgd2hpY2ggaXMgdGhlIGZhaWx1cmUgdGhlIHdob2xlIGZlYXR1cmUgZXhpc3RzXG4gKiB0byBwcmV2ZW50LlxuICpcbiAqIFRoZSB2YXVsdCByb290IGlzIG5ldmVyIGEgdW5pdCwgaG93ZXZlciB0aGUgcGF0dGVybnMgYXJlIHdyaXR0ZW46IGRlc2lnbmF0aW5nIGl0IHdvdWxkIG1ha2UgZXZlcnlcbiAqIHJlbG9jYXRpb24gYSBuby1vcCBhdCBiZXN0IGFuZCBhIHZhdWx0LXdpZGUgbW92ZSBhdCB3b3JzdC5cbiAqXG4gKiBQYXNzaW5nIGFuIHtAbGluayBBcHB9IHdhbGtzIHdpdGggdGhlIGRlc2lnbmF0aW9uIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAgcHVibGlzaGVzIHRocm91Z2ggaXRzIHBsdWdpblxuICogQVBJOyB3aGVuIG5vYm9keSBwdWJsaXNoZWQgb25lLCBub3RoaW5nIGlzIGRlc2lnbmF0ZWQgYW5kIHRoZSBhbnN3ZXIgaXMgYG51bGxgLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZmluZGluZyB0aGUgYXR0YWNobWVudCB1bml0IGZvbGRlci5cbiAqIEByZXR1cm5zIFRoZSB1bml0IGZvbGRlcidzIHBhdGgsIG9yIGBudWxsYCB3aGVuIHRoZSBhdHRhY2htZW50IGJlbG9uZ3MgdG8gbm8gdW5pdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGgocGFyYW1zOiBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHBhcmVudEZvbGRlclBhdGggPSBkaXJuYW1lKHBhcmFtcy5hdHRhY2htZW50UGF0aCk7XG4gIGlmICghcGFyZW50Rm9sZGVyUGF0aCB8fCBwYXJlbnRGb2xkZXJQYXRoID09PSAnLicgfHwgcGFyZW50Rm9sZGVyUGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGVja0lzQXR0YWNobWVudFVuaXRGb2xkZXIgPSAnY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyJyBpbiBwYXJhbXNcbiAgICA/IHBhcmFtcy5jaGVja0lzQXR0YWNobWVudFVuaXRGb2xkZXJcbiAgICA6IGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uKHBhcmFtcy5hcHApO1xuXG4gIGlmICghY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzZWdtZW50cyA9IHBhcmVudEZvbGRlclBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gIGZvciAobGV0IGNvdW50ID0gMTsgY291bnQgPD0gc2VnbWVudHMubGVuZ3RoOyBjb3VudCsrKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gc2VnbWVudHMuc2xpY2UoMCwgY291bnQpLmpvaW4oJy8nKTtcbiAgICBpZiAoY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyKGNhbmRpZGF0ZSkpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmViYXNlcyBhIHBhdGggZnJvbSBvbmUgZm9sZGVyIG9udG8gYW5vdGhlci5cbiAqXG4gKiBVc2VkIHRvIHdvcmsgb3V0IHdoZXJlIGEgbGlua2VkIGF0dGFjaG1lbnQgZW5kcyB1cCBvbmNlIGl0cyB3aG9sZSB1bml0IGZvbGRlciBoYXMgbW92ZWQsIHNvIHRoZVxuICogbGluayBjYW4gYmUgcG9pbnRlZCBhdCB0aGUgZmlsZSdzIG5ldyBob21lIHJhdGhlciB0aGFuIGF0IHdoZXJlIHRoZSBmb2xkZXIgdXNlZCB0byBiZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlYmFzaW5nIHRoZSBwYXRoLlxuICogQHJldHVybnMgVGhlIHJlYmFzZWQgcGF0aCwgb3IgYG51bGxgIHdoZW4gdGhlIHBhdGggZG9lcyBub3Qgc2l0IGluc2lkZSB0aGUgb2xkIGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYmFzZVBhdGhPbnRvRm9sZGVyKHBhcmFtczogUmViYXNlUGF0aE9udG9Gb2xkZXJQYXJhbXMpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcHJlZml4ID0gYCR7cGFyYW1zLm9sZEZvbGRlclBhdGh9L2A7XG4gIHJldHVybiBwYXJhbXMucGF0aC5zdGFydHNXaXRoKHByZWZpeCkgPyBgJHtwYXJhbXMubmV3Rm9sZGVyUGF0aH0vJHtwYXJhbXMucGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKX1gIDogbnVsbDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQSxrQkFBd0I7QUFFeEIsNkJBQXVEO0FBZ0ZoRCxTQUFTLDZCQUE2QixRQUEyRDtBQUN0RyxRQUFNLHVCQUFtQixxQkFBUSxPQUFPLGNBQWM7QUFDdEQsTUFBSSxDQUFDLG9CQUFvQixxQkFBcUIsT0FBTyxxQkFBcUIsS0FBSztBQUM3RSxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sOEJBQThCLGlDQUFpQyxTQUNqRSxPQUFPLGtDQUNQLCtEQUF1QyxPQUFPLEdBQUc7QUFFckQsTUFBSSxDQUFDLDZCQUE2QjtBQUNoQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sV0FBVyxpQkFBaUIsTUFBTSxHQUFHLEVBQUUsT0FBTyxPQUFPO0FBQzNELFdBQVMsUUFBUSxHQUFHLFNBQVMsU0FBUyxRQUFRLFNBQVM7QUFDckQsVUFBTSxZQUFZLFNBQVMsTUFBTSxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUc7QUFDbkQsUUFBSSw0QkFBNEIsU0FBUyxHQUFHO0FBQzFDLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDtBQVdPLFNBQVMscUJBQXFCLFFBQW1EO0FBQ3RGLFFBQU0sU0FBUyxHQUFHLE9BQU8sYUFBYTtBQUN0QyxTQUFPLE9BQU8sS0FBSyxXQUFXLE1BQU0sSUFBSSxHQUFHLE9BQU8sYUFBYSxJQUFJLE9BQU8sS0FBSyxNQUFNLE9BQU8sTUFBTSxDQUFDLEtBQUs7QUFDMUc7IiwKICAibmFtZXMiOiBbXQp9Cg==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRhY2htZW50LXVuaXQtZm9sZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyB3aGljaCBmb2xkZXIgYW4gYXR0YWNobWVudCBiZWxvbmdzIHRvIHdoZW4gdGhlIHVzZXIgaGFzIGRlc2lnbmF0ZWQgZm9sZGVycyB0aGF0IG11c3RcbiAqIHRyYXZlbCBhcyBhIHNpbmdsZSB1bml0LlxuICpcbiAqIFNvbWUgZm9ybWF0cyBhcmUgcmVhbGx5IGEgZGlyZWN0b3J5IHRyZWUgcmF0aGVyIHRoYW4gYSBmaWxlOiBhIHBhZ2Ugc2F2ZWQgZnJvbSBhIGJyb3dzZXIgc2l0cyBuZXh0XG4gKiB0byBhIGBfZmlsZXMvYCBmb2xkZXIgaG9sZGluZyBpdHMgaW1hZ2VzIGFuZCBzdHlsZXNoZWV0cywgYW4gYC5leGNhbGlkcmF3YCBzaXRzIG5leHQgdG8gdGhlIGltYWdlc1xuICogaXQgcmVmZXJlbmNlcy4gUmVsb2NhdGluZyBvbmx5IHRoZSBsaW5rZWQgZmlsZSBsZWF2ZXMgdGhlIHJlc3QgYmVoaW5kIGFuZCB0aGUgYXR0YWNobWVudCBhcnJpdmVzXG4gKiBicm9rZW4uXG4gKlxuICogVGhpcyBsaXZlcyBpbiB0aGUgc2hhcmVkIGxpYnJhcnkgcmF0aGVyIHRoYW4gaW4gb25lIHBsdWdpbiBiZWNhdXNlIG1vcmUgdGhhbiBvbmUgcGx1Z2luIHJlbG9jYXRlc1xuICogYXR0YWNobWVudHMgb3ZlciB0aGUgc2FtZSB2YXVsdC4gSWYgdGhleSBlYWNoIGRlY2lkZWQgc2VwYXJhdGVseSB3aGF0IG9uZSBhdHRhY2htZW50IGlzLCBhIHVzZXJcbiAqIHdpdGggYm90aCBpbnN0YWxsZWQgd291bGQgZ2V0IGEgZm9sZGVyIGtlcHQgd2hvbGUgYnkgb25lIGFuZCB0b3JuIGFwYXJ0IGJ5IHRoZSBvdGhlci5cbiAqXG4gKiBXaGljaCBpcyB3aHkgdGhlIGRlc2lnbmF0aW9uIGl0c2VsZiBpcyByZWFkIGZyb20gb25lIHNoYXJlZCBzb3VyY2UgcmF0aGVyIHRoYW4gc3VwcGxpZWQgcGVyIGNhbGxlcjogcGFzc1xuICogYW4ge0BsaW5rIEFwcH0gYW5kIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofSB3YWxrcyB3aXRoIHdoYXRldmVyIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmBcbiAqIHB1Ymxpc2hlcyB0aHJvdWdoIGl0cyBwbHVnaW4gQVBJLCBzbyBldmVyeSBwbHVnaW4gZGVjaWRlcyBmcm9tIG9uZSBhbnN3ZXIuIFRoZSBleHBsaWNpdC1wcmVkaWNhdGUgZm9ybSByZW1haW5zIGZvciBhIGNhbGxlciB0aGF0IGdlbnVpbmVseSBvd25zIGl0cyBvd24gcGF0dGVybnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5cbmltcG9ydCB7IGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uIH0gZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofSwgcmVhZGluZyB0aGUgZGVzaWduYXRpb24gYEN1c3RvbSBBdHRhY2htZW50IExvY2F0aW9uYFxuICogcHVibGlzaGVzIHRocm91Z2ggaXRzIHBsdWdpbiBBUEkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aEZyb21BcHBQYXJhbXMge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50UGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRofS5cbiAqXG4gKiBQcmVmZXIge0BsaW5rIEZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGhGcm9tQXBwUGFyYW1zfSDigJQgaXQgaXMgdGhlIGZvcm0gdGhhdCBtYWtlcyBldmVyeSBwbHVnaW5cbiAqIGRlY2lkZSBmcm9tIG9uZSBwdWJsaXNoZWQgYW5zd2VyLlxuICovXG5leHBvcnQgdHlwZSBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoUGFyYW1zID0gRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aEZyb21BcHBQYXJhbXMgfCBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoV2l0aFByZWRpY2F0ZVBhcmFtcztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aH0sIHdhbGtpbmcgd2l0aCBhIHByZWRpY2F0ZSB0aGUgY2FsbGVyIG93bnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmluZEF0dGFjaG1lbnRVbml0Rm9sZGVyUGF0aFdpdGhQcmVkaWNhdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZm9sZGVyIHBhdGggaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQuXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXJQYXRoIC0gVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGZvbGRlci5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBmb2xkZXIgaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyOiAoZm9sZGVyUGF0aDogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZWJhc2VQYXRoT250b0ZvbGRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmViYXNlUGF0aE9udG9Gb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlcidzIG5ldyBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV3Rm9sZGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyJ3Mgb2xkIHBhdGguXG4gICAqL1xuICByZWFkb25seSBvbGRGb2xkZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHJlYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgZm9sZGVyIHRoYXQgYW4gYXR0YWNobWVudCBtdXN0IHRyYXZlbCB3aXRoLlxuICpcbiAqIFJldHVybnMgdGhlICoqb3V0ZXJtb3N0KiogZGVzaWduYXRlZCBhbmNlc3Rvciwgbm90IHRoZSBuZWFyZXN0IG9uZS4gV2l0aCBuZXN0ZWQgZGVzaWduYXRpb25zLFxuICogbW92aW5nIHRoZSBuZWFyZXN0IHdvdWxkIHRlYXIgdGhlIG91dGVyIHRyZWUgaW4gaGFsZiwgd2hpY2ggaXMgdGhlIGZhaWx1cmUgdGhlIHdob2xlIGZlYXR1cmUgZXhpc3RzXG4gKiB0byBwcmV2ZW50LlxuICpcbiAqIFRoZSB2YXVsdCByb290IGlzIG5ldmVyIGEgdW5pdCwgaG93ZXZlciB0aGUgcGF0dGVybnMgYXJlIHdyaXR0ZW46IGRlc2lnbmF0aW5nIGl0IHdvdWxkIG1ha2UgZXZlcnlcbiAqIHJlbG9jYXRpb24gYSBuby1vcCBhdCBiZXN0IGFuZCBhIHZhdWx0LXdpZGUgbW92ZSBhdCB3b3JzdC5cbiAqXG4gKiBQYXNzaW5nIGFuIHtAbGluayBBcHB9IHdhbGtzIHdpdGggdGhlIGRlc2lnbmF0aW9uIGBDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbmAgcHVibGlzaGVzIHRocm91Z2ggaXRzIHBsdWdpblxuICogQVBJOyB3aGVuIG5vYm9keSBwdWJsaXNoZWQgb25lLCBub3RoaW5nIGlzIGRlc2lnbmF0ZWQgYW5kIHRoZSBhbnN3ZXIgaXMgYG51bGxgLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZmluZGluZyB0aGUgYXR0YWNobWVudCB1bml0IGZvbGRlci5cbiAqIEByZXR1cm5zIFRoZSB1bml0IGZvbGRlcidzIHBhdGgsIG9yIGBudWxsYCB3aGVuIHRoZSBhdHRhY2htZW50IGJlbG9uZ3MgdG8gbm8gdW5pdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGgocGFyYW1zOiBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHBhcmVudEZvbGRlclBhdGggPSBkaXJuYW1lKHBhcmFtcy5hdHRhY2htZW50UGF0aCk7XG4gIGlmICghcGFyZW50Rm9sZGVyUGF0aCB8fCBwYXJlbnRGb2xkZXJQYXRoID09PSAnLicgfHwgcGFyZW50Rm9sZGVyUGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGVja0lzQXR0YWNobWVudFVuaXRGb2xkZXIgPSAnY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyJyBpbiBwYXJhbXNcbiAgICA/IHBhcmFtcy5jaGVja0lzQXR0YWNobWVudFVuaXRGb2xkZXJcbiAgICA6IGdldENoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlckZ1bmN0aW9uKHBhcmFtcy5hcHApO1xuXG4gIGlmICghY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzZWdtZW50cyA9IHBhcmVudEZvbGRlclBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gIGZvciAobGV0IGNvdW50ID0gMTsgY291bnQgPD0gc2VnbWVudHMubGVuZ3RoOyBjb3VudCsrKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gc2VnbWVudHMuc2xpY2UoMCwgY291bnQpLmpvaW4oJy8nKTtcbiAgICBpZiAoY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyKGNhbmRpZGF0ZSkpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmViYXNlcyBhIHBhdGggZnJvbSBvbmUgZm9sZGVyIG9udG8gYW5vdGhlci5cbiAqXG4gKiBVc2VkIHRvIHdvcmsgb3V0IHdoZXJlIGEgbGlua2VkIGF0dGFjaG1lbnQgZW5kcyB1cCBvbmNlIGl0cyB3aG9sZSB1bml0IGZvbGRlciBoYXMgbW92ZWQsIHNvIHRoZVxuICogbGluayBjYW4gYmUgcG9pbnRlZCBhdCB0aGUgZmlsZSdzIG5ldyBob21lIHJhdGhlciB0aGFuIGF0IHdoZXJlIHRoZSBmb2xkZXIgdXNlZCB0byBiZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlYmFzaW5nIHRoZSBwYXRoLlxuICogQHJldHVybnMgVGhlIHJlYmFzZWQgcGF0aCwgb3IgYG51bGxgIHdoZW4gdGhlIHBhdGggZG9lcyBub3Qgc2l0IGluc2lkZSB0aGUgb2xkIGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYmFzZVBhdGhPbnRvRm9sZGVyKHBhcmFtczogUmViYXNlUGF0aE9udG9Gb2xkZXJQYXJhbXMpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcHJlZml4ID0gYCR7cGFyYW1zLm9sZEZvbGRlclBhdGh9L2A7XG4gIHJldHVybiBwYXJhbXMucGF0aC5zdGFydHNXaXRoKHByZWZpeCkgPyBgJHtwYXJhbXMubmV3Rm9sZGVyUGF0aH0vJHtwYXJhbXMucGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKX1gIDogbnVsbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEsa0JBQXdCO0FBRXhCLDZCQUF1RDtBQWdGaEQsU0FBUyw2QkFBNkIsUUFBMkQ7QUFDdEcsUUFBTSx1QkFBbUIscUJBQVEsT0FBTyxjQUFjO0FBQ3RELE1BQUksQ0FBQyxvQkFBb0IscUJBQXFCLE9BQU8scUJBQXFCLEtBQUs7QUFDN0UsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLDhCQUE4QixpQ0FBaUMsU0FDakUsT0FBTyxrQ0FDUCwrREFBdUMsT0FBTyxHQUFHO0FBRXJELE1BQUksQ0FBQyw2QkFBNkI7QUFDaEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFdBQVcsaUJBQWlCLE1BQU0sR0FBRyxFQUFFLE9BQU8sT0FBTztBQUMzRCxXQUFTLFFBQVEsR0FBRyxTQUFTLFNBQVMsUUFBUSxTQUFTO0FBQ3JELFVBQU0sWUFBWSxTQUFTLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHO0FBQ25ELFFBQUksNEJBQTRCLFNBQVMsR0FBRztBQUMxQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFXTyxTQUFTLHFCQUFxQixRQUFtRDtBQUN0RixRQUFNLFNBQVMsR0FBRyxPQUFPLGFBQWE7QUFDdEMsU0FBTyxPQUFPLEtBQUssV0FBVyxNQUFNLElBQUksR0FBRyxPQUFPLGFBQWEsSUFBSSxPQUFPLEtBQUssTUFBTSxPQUFPLE1BQU0sQ0FBQyxLQUFLO0FBQzFHOyIsIm5hbWVzIjpbXX0=
@@ -1,4 +1,4 @@
1
- /// <reference path="./library.d.cts" />
1
+ /// <reference path="./library-references.d.cts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,20 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
30
+ ensureBrowserProcess();
50
31
  })();
51
32
  (function patchObsidianRequire() {
52
33
  const originalRequire = require;
@@ -246,4 +227,4 @@ function removeSource(data, sourcePath) {
246
227
  0 && (module.exports = {
247
228
  getIndexedBacklinksForFile
248
229
  });
249
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2JhY2tsaW5rLWluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQW5zd2VycyBcIndoaWNoIHJlZmVyZW5jZXMgcmVzb2x2ZSB0byB0aGlzIGZpbGU/XCIgYnkgbG9va2luZyBvbmx5IGF0IHRoZSBub3RlcyB0aGF0IENPVUxEIGhvbGQgb25lLCBpbnN0ZWFkIG9mXG4gKiByZXNvbHZpbmcgZXZlcnkgcmVmZXJlbmNlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBtZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIGlzIG5vdCBhbiBpbmRleCBsb29rdXAuIFJlYWQgb3V0IG9mIHRoZSAxLjE0LjIgYnVuZGxlLCBpdCBpc1xuICogYGl0ZXJhdGVBbGxSZWZzYCBcdTIwMTQgZXZlcnkgYGZyb250bWF0dGVyTGlua3NgLCBgbGlua3NgIGFuZCBgZW1iZWRzYCBlbnRyeSBvZiBldmVyeSBjYWNoZWQgbm90ZSwgcGx1cyBldmVyeVxuICogcmVmZXJlbmNlIGVhY2ggYGxpbmtVcGRhdGVyc2AgZW50cnkgKHRoZSBjYW52YXMgb25lKSByZXBvcnRzIFx1MjAxNCB3aXRoIG9uZSBgZ2V0Rmlyc3RMaW5rcGF0aERlc3RgIHBlciByZWZlcmVuY2UsXG4gKiBrZWVwaW5nIHRob3NlIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAuIFRoYXQgaXMgfjExNSBtcyBhdCAxMDBrIHJlZmVyZW5jZXMgYW5kIH4zMjAgbXMgYXQgMjUwaywgcGFpZCBvbmNlIHBlciBmaWxlXG4gKiBieSBldmVyeSBwZXItZmlsZSBiYWNrbGluayBsb29rdXAsIHNvIGEgMTAwMC1ub3RlIGZvbGRlciByZW5hbWUgaW4gYSA1MGstbm90ZSB2YXVsdCB0b29rIDkyNCBzLlxuICpcbiAqIFdoYXQgbWFrZXMgYSBuYXJyb3dlciBhbnN3ZXIgZXhhY3QgaXMgYSBwcm9wZXJ0eSBvZiBPYnNpZGlhbidzIGBnZXRMaW5rcGF0aERlc3RgOiBldmVyeSBicmFuY2ggb2YgaXQgY2FuIG9ubHlcbiAqIHJldHVybiBhIGZpbGUgd2hvc2UgbG93ZXJjYXNlZCBuYW1lIGlzIHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgdGhlIGxpbmtwYXRoLCBvciB0aGF0IHNlZ21lbnQgcGx1c1xuICogYC5tZGAuIFRoZSBvbmUgZXhjZXB0aW9uIGlzIHRoZSBlbXB0eSBsaW5rcGF0aCAoYFtbI0hlYWRpbmddXWApLCB3aGljaCByZXR1cm5zIHRoZSBzb3VyY2Ugbm90ZSBpdHNlbGYuIFNvIGFcbiAqIG5vdGUgY2FuIGhvbGQgYSByZWZlcmVuY2UgdG8gYGZpbGVgIG9ubHkgaWYgaXQgaG9sZHMgYSByZWZlcmVuY2Ugd2hvc2UgbGFzdCBzZWdtZW50IG1hdGNoZXMgb25lIG9mIGBmaWxlYCdzXG4gKiBuYW1lIGtleXMsIG9yIGlmIGl0IElTIGBmaWxlYC4gVGhpcyBtb2R1bGUgaW5kZXhlcyBub3RlcyBieSB0aG9zZSBzZWdtZW50cywgdGFrZXMgdGhlIGNhbmRpZGF0ZXMgZm9yIGBmaWxlYCxcbiAqIGFuZCBydW5zIE9ic2lkaWFuJ3Mgb3duIHByZWRpY2F0ZSBcdTIwMTQgYGdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmtwYXRoLCBzb3VyY2UpID09PSBmaWxlYCBcdTIwMTQgb3ZlciB0aGUgY2FuZGlkYXRlcydcbiAqIHJlZmVyZW5jZXMgb25seS4gVGhlIGNhbmRpZGF0ZXMgYXJlIGEgc3VwZXJzZXQgb2YgdGhlIHJlYWwgYmFja2xpbmtzIGFuZCB0aGUgcHJlZGljYXRlIGlzIHRoZSBzYW1lIG9uZSwgc29cbiAqIHRoZSBhbnN3ZXIgaXMgdGhlIG9uZSB0aGUgZnVsbCB3YWxrIGdpdmVzLCBhIGZpbGUgcmVnaXN0ZXJlZCBhdCBhIG5vbi1leGlzdGluZyBwYXRoIGluY2x1ZGVkLiBPbmx5IHRoZSBPUkRFUlxuICogb2YgdGhlIG5vdGVzIGluIHRoZSBhbnN3ZXIgZGlmZmVyczogdGhlIGZpbGUgaXRzZWxmIGZpcnN0LCB0aGVuIHRoZSBjYW5kaWRhdGVzIGluIGluZGV4IG9yZGVyLlxuICpcbiAqIFRoZSBpbmRleCBpcyBrZXB0IGZyZXNoIHdpdGhvdXQgbGlzdGVuaW5nIHRvIGFueXRoaW5nLiBgbWV0YWRhdGFDYWNoZS5maWxlQ2FjaGVgIG1hcHMgYSBub3RlIHRvIHRoZSBoYXNoIG9mXG4gKiBpdHMgY29udGVudCwgYW5kIHRoZSByZWZlcmVuY2VzIGFyZSBhIGZ1bmN0aW9uIG9mIHRoYXQgaGFzaCwgc28gZWFjaCBxdWVyeSBjb21wYXJlcyBldmVyeSBub3RlJ3MgaGFzaFxuICogYWdhaW5zdCB0aGUgb25lIGl0IHdhcyBpbmRleGVkIGF0IGFuZCByZS1yZWFkcyBvbmx5IHRoZSBub3RlcyB0aGF0IGNoYW5nZWQuIFRoYXQgaXMgb25lIHByb3BlcnR5IGNvbXBhcmlzb25cbiAqIHBlciBub3RlIGFuZCBubyByZXNvbHV0aW9uIGF0IGFsbCwgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHNjYW4gT2JzaWRpYW4gaXRzZWxmIHJ1bnMgb24gZXZlcnkgcmVuYW1lXG4gKiAoYHVwZGF0ZVJlbGF0ZWRMaW5rc2ApLiBEZXBlbmRpbmcgb24gbm8gZXZlbnQgYWxzbyBtZWFucyBkZXBlbmRpbmcgb24gbm8gZXZlbnQgT1JERVIsIHdoaWNoIG1hdHRlcnMgYmVjYXVzZVxuICogcmVuYW1lIGhhbmRsZXJzIHF1ZXJ5IGZyb20gaW5zaWRlIHRoZSB2YXVsdCBgcmVuYW1lYCBldmVudC5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgaW5kZXggcGVyIGBBcHBgLCBoZWxkIGluIHRoZSByZWFsbS1nbG9iYWwgc2hhcmVkLXN0YXRlIGJhZywgc28gZXZlcnkgcGx1Z2luIGJ1bmRsaW5nIHRoaXMgbGlicmFyeVxuICogc2hhcmVzIGl0IHJhdGhlciB0aGFuIGVhY2ggYnVpbGRpbmcgaXRzIG93bi4gV2hhdCBpcyBzdG9yZWQgdGhlcmUgaXMgcGxhaW4gZGF0YSByZWFkIHN0cnVjdHVyYWxseSAobWFwcyBhbmRcbiAqIHNldHMsIG5ldmVyIGEgY2xhc3MgaW5zdGFuY2UpLCBiZWNhdXNlIHRoZSBiYWcgY3Jvc3NlcyBjb3BpZXMgb2YgdGhpcyBsaWJyYXJ5IGF0IGRpZmZlcmVudCB2ZXJzaW9ucy4gVGhlIGtleVxuICogY2FycmllcyBhIHZlcnNpb246IGEgY2hhbmdlIHRvIHdoYXQgYSBrZXkgTUVBTlMgKGhvdyBhIG5hbWUga2V5IGlzIGRlcml2ZWQpIG11c3QgbW92ZSB0byBhIG5ldyBrZXksIHNvIGFuIG9sZGVyXG4gKiBjb3B5IG5ldmVyIHJlYWRzIGFuIGluZGV4IGJ1aWx0IGJ5IGRpZmZlcmVudCBydWxlcy5cbiAqXG4gKiBUaGUgYGxpbmtVcGRhdGVyc2Agc2lkZSBpcyBzdGlsbCB3YWxrZWQgaW4gZnVsbCBvbiBldmVyeSBxdWVyeS4gSW4gMS4xNC4yIHRoZSBvbmx5IHVwZGF0ZXIgaXMgdGhlIGNhbnZhc1xuICogb25lLCB3aG9zZSByZWZlcmVuY2VzIGxpdmUgaW4gdGhlIGNhbnZhcyBpbmRleCByYXRoZXIgdGhhbiBpbiBgZmlsZUNhY2hlYCwgc28gdGhlcmUgaXMgbm8gaGFzaCB0byBrZXkgdGhlbVxuICogYnk7IGEgdmF1bHQncyBjYW52YXNlcyBob2xkIGEgc21hbGwgZnJhY3Rpb24gb2YgaXRzIHJlZmVyZW5jZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDYWNoZWRNZXRhZGF0YSxcbiAgUmVmZXJlbmNlLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IEN1c3RvbUFycmF5RGljdEltcGwgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcblxuaW50ZXJmYWNlIEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgcmVhZG9ubHkgaW5kZXhlZEhhc2hlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgbmFtZUtleVNvdXJjZVBhdGhzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj47XG4gIHJlYWRvbmx5IHNvdXJjZVBhdGhOYW1lS2V5czogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+O1xufVxuXG5jb25zdCBNQVJLRE9XTl9TVUZGSVggPSAnLm1kJztcblxuLyoqXG4gKiBUaGUgc2FtZSBhbnN3ZXIgYXMgYGFwcC5tZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIChPYnNpZGlhbidzIG93biwgdW5wYXRjaGVkKSwgZnJvbSB0aGUgY2FuZGlkYXRlXG4gKiBub3RlcyBvbmx5LiBTZWUgdGhlIGZpbGUgaGVhZGVyIGZvciB3aHkgdGhlIGFuc3dlciBpcyBleGFjdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgd2hvc2UgYmFja2xpbmtzIHRvIGZpbmQuIEl0IG1heSBiZSBhIG5vbi1leGlzdGluZyBmaWxlIHJlZ2lzdGVyZWQgZm9yIHRoZSBxdWVyeS5cbiAqIEByZXR1cm5zIFRoZSByZWZlcmVuY2VzIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAsIGtleWVkIGJ5IHRoZSBwYXRoIG9mIHRoZSBub3RlIG9yIGNhbnZhcyBob2xkaW5nIHRoZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRleGVkQmFja2xpbmtzRm9yRmlsZShhcHA6IEFwcCwgZmlsZTogVEZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGRhdGEgPSBnZXRCYWNrbGlua0luZGV4RGF0YShhcHApO1xuICByZWZyZXNoKGFwcCwgZGF0YSk7XG5cbiAgY29uc3QgbWV0YWRhdGFDYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xuICBjb25zdCBiYWNrbGlua3MgPSBuZXcgQ3VzdG9tQXJyYXlEaWN0SW1wbDxSZWZlcmVuY2U+KCk7XG5cbiAgLy8gVGhlIGZpbGUgaXRzZWxmIGlzIGEgY2FuZGlkYXRlIGZvciBpdHMgb3duIGBbWyNIZWFkaW5nXV1gIHJlZmVyZW5jZXMsIHdob3NlIGVtcHR5IGxpbmtwYXRoIG5hbWVzIG5vIHNlZ21lbnQuXG4gIGNvbnN0IGNhbmRpZGF0ZVNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KFtmaWxlLnBhdGhdKTtcbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIGdldFRhcmdldE5hbWVLZXlzKGZpbGUubmFtZSkpIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZVBhdGggb2YgZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpID8/IFtdKSB7XG4gICAgICBjYW5kaWRhdGVTb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIGNhbmRpZGF0ZVNvdXJjZVBhdGhzKSB7XG4gICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGdldENhY2hlZE1ldGFkYXRhKGFwcCwgc291cmNlUGF0aCkpKSB7XG4gICAgICBjb2xsZWN0KHNvdXJjZVBhdGgsIHJlZmVyZW5jZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBsaW5rVXBkYXRlciBvZiBPYmplY3QudmFsdWVzKG1ldGFkYXRhQ2FjaGUubGlua1VwZGF0ZXJzKSkge1xuICAgIGxpbmtVcGRhdGVyPy5pdGVyYXRlUmVmZXJlbmNlcyhjb2xsZWN0KTtcbiAgfVxuXG4gIHJldHVybiBiYWNrbGlua3M7XG5cbiAgZnVuY3Rpb24gY29sbGVjdChzb3VyY2VQYXRoOiBzdHJpbmcsIHJlZmVyZW5jZTogUmVmZXJlbmNlKTogdm9pZCB7XG4gICAgaWYgKG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZ2V0TGlua3BhdGgocmVmZXJlbmNlLmxpbmspLCBzb3VyY2VQYXRoKSA9PT0gZmlsZSkge1xuICAgICAgYmFja2xpbmtzLmFkZChzb3VyY2VQYXRoLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRCYWNrbGlua0luZGV4RGF0YShhcHA6IEFwcCk6IEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgY29uc3QgaW5kZXhlcyA9IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgnYmFja2xpbmtJbmRleGVzQnlBcHBWMScsIG5ldyBXZWFrTWFwPEFwcCwgQmFja2xpbmtJbmRleERhdGE+KCkpLnZhbHVlO1xuICBsZXQgZGF0YSA9IGluZGV4ZXMuZ2V0KGFwcCk7XG4gIGlmICghZGF0YSkge1xuICAgIGRhdGEgPSB7XG4gICAgICBpbmRleGVkSGFzaGVzOiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgICAgbmFtZUtleVNvdXJjZVBhdGhzOiBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCksXG4gICAgICBzb3VyY2VQYXRoTmFtZUtleXM6IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKVxuICAgIH07XG4gICAgaW5kZXhlcy5zZXQoYXBwLCBkYXRhKTtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FjaGVkTWV0YWRhdGEoYXBwOiBBcHAsIHNvdXJjZVBhdGg6IHN0cmluZyk6IENhY2hlZE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaGFzaCA9IGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZVtzb3VyY2VQYXRoXT8uaGFzaDtcbiAgcmV0dXJuIGhhc2ggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGFwcC5tZXRhZGF0YUNhY2hlLm1ldGFkYXRhQ2FjaGVbaGFzaF07XG59XG5cbi8qKlxuICogTGlzdHMgYSBjYWNoZWQgbm90ZSdzIHJlZmVyZW5jZXMgaW4gdGhlIG9yZGVyIE9ic2lkaWFuJ3Mgb3duIHdhbGsgdmlzaXRzIHRoZW06IGBmcm9udG1hdHRlckxpbmtzYCwgdGhlblxuICogYGxpbmtzYCwgdGhlbiBgZW1iZWRzYC5cbiAqXG4gKiBAcGFyYW0gY2FjaGUgLSBUaGUgbm90ZSdzIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFRoZSBub3RlJ3MgcmVmZXJlbmNlcy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IHVuZGVmaW5lZCk6IFJlZmVyZW5jZVtdIHtcbiAgcmV0dXJuIGNhY2hlID8gWy4uLmNhY2hlLmZyb250bWF0dGVyTGlua3MgPz8gW10sIC4uLmNhY2hlLmxpbmtzID8/IFtdLCAuLi5jYWNoZS5lbWJlZHMgPz8gW11dIDogW107XG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBzdWJwYXRoIGZyb20gYSBsaW5rLCB0aGUgd2F5IE9ic2lkaWFuJ3MgYGdldExpbmtwYXRoYCBkb2VzLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIGxpbmsgdGV4dCwgc3VjaCBhcyBgZm9sZGVyL05vdGUjSGVhZGluZ2AuXG4gKiBAcmV0dXJucyBUaGUgbGlua3BhdGgsIHN1Y2ggYXMgYGZvbGRlci9Ob3RlYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TGlua3BhdGgobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gbGluay5pbmRleE9mKCcjJyk7XG4gIHJldHVybiBoYXNoSW5kZXggPT09IC0xID8gbGluayA6IGxpbmsuc2xpY2UoMCwgaGFzaEluZGV4KTtcbn1cblxuLyoqXG4gKiBUaGUga2V5IGEgcmVmZXJlbmNlIGlzIGluZGV4ZWQgdW5kZXI6IHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgaXRzIGxpbmtwYXRoLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIHJlZmVyZW5jZSdzIGxpbmsgdGV4dC5cbiAqIEByZXR1cm5zIFRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIGdldFJlZmVyZW5jZU5hbWVLZXkobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGlua3BhdGggPSBnZXRMaW5rcGF0aChsaW5rKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbGlua3BhdGguc2xpY2UobGlua3BhdGgubGFzdEluZGV4T2YoJy8nKSArIDEpO1xufVxuXG4vKipcbiAqIFRoZSBrZXlzIHVuZGVyIHdoaWNoIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSB3aXRoIHRoaXMgbmFtZSBjYW4gYmUgaW5kZXhlZC4gYGdldExpbmtwYXRoRGVzdGAgbWF0Y2hlcyBhXG4gKiBzZWdtZW50IGFnYWluc3QgdGhlIGZpbGUncyBuYW1lLCBhbmQgYWdhaW5zdCB0aGUgbmFtZSB3aXRoIGAubWRgIGFwcGVuZGVkLCBzbyBhIG5vdGUgbmFtZWQgYE5vdGUubWRgIGlzXG4gKiByZWFjaGFibGUgZnJvbSBib3RoIGBub3RlLm1kYCBhbmQgYG5vdGVgLlxuICpcbiAqIEBwYXJhbSBmaWxlTmFtZSAtIFRoZSBmaWxlJ3MgbmFtZSwgZXh0ZW5zaW9uIGluY2x1ZGVkLlxuICogQHJldHVybnMgVGhlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGdldFRhcmdldE5hbWVLZXlzKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG5hbWVLZXkgPSBmaWxlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbmFtZUtleS5lbmRzV2l0aChNQVJLRE9XTl9TVUZGSVgpID8gW25hbWVLZXksIG5hbWVLZXkuc2xpY2UoMCwgLU1BUktET1dOX1NVRkZJWC5sZW5ndGgpXSA6IFtuYW1lS2V5XTtcbn1cblxuZnVuY3Rpb24gaW5kZXhTb3VyY2UoYXBwOiBBcHAsIGRhdGE6IEJhY2tsaW5rSW5kZXhEYXRhLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IHZvaWQge1xuICByZW1vdmVTb3VyY2UoZGF0YSwgc291cmNlUGF0aCk7XG4gIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUubWV0YWRhdGFDYWNoZVtoYXNoXTtcbiAgLypcbiAgICogQSBub3RlJ3MgYGZpbGVDYWNoZWAgZW50cnkgY2FuIGNhcnJ5IGl0cyBuZXcgaGFzaCBiZWZvcmUgdGhlIG1ldGFkYXRhIGZvciB0aGF0IGhhc2ggaXMgc3RvcmVkLiBSZWNvcmRpbmdcbiAgICogdGhlIGhhc2ggdGhlbiB3b3VsZCBwaW4gdGhlIG5vdGUgYXQgXCJubyByZWZlcmVuY2VzXCIgdW50aWwgaXRzIGNvbnRlbnQgY2hhbmdlZCBhZ2Fpbiwgc28gbGVhdmUgaXRcbiAgICogdW5yZWNvcmRlZCBhbmQgbGV0IHRoZSBuZXh0IHF1ZXJ5IGxvb2sgYWdhaW4uXG4gICAqL1xuICBpZiAoIWNhY2hlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmFtZUtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlKSkge1xuICAgIG5hbWVLZXlzLmFkZChnZXRSZWZlcmVuY2VOYW1lS2V5KHJlZmVyZW5jZS5saW5rKSk7XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIG5hbWVLZXlzKSB7XG4gICAgbGV0IHNvdXJjZVBhdGhzID0gZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpO1xuICAgIGlmICghc291cmNlUGF0aHMpIHtcbiAgICAgIHNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5zZXQobmFtZUtleSwgc291cmNlUGF0aHMpO1xuICAgIH1cbiAgICBzb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gIH1cbiAgZGF0YS5zb3VyY2VQYXRoTmFtZUtleXMuc2V0KHNvdXJjZVBhdGgsIG5hbWVLZXlzKTtcbiAgZGF0YS5pbmRleGVkSGFzaGVzLnNldChzb3VyY2VQYXRoLCBoYXNoKTtcbn1cblxuZnVuY3Rpb24gcmVmcmVzaChhcHA6IEFwcCwgZGF0YTogQmFja2xpbmtJbmRleERhdGEpOiB2b2lkIHtcbiAgY29uc3QgZmlsZUNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZUNhY2hlO1xuXG4gIGZvciAoY29uc3Qgc291cmNlUGF0aCBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5rZXlzKCkpIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oZmlsZUNhY2hlLCBzb3VyY2VQYXRoKSkge1xuICAgICAgcmVtb3ZlU291cmNlKGRhdGEsIHNvdXJjZVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgW3NvdXJjZVBhdGgsIHsgaGFzaCB9XSBvZiBPYmplY3QuZW50cmllcyhmaWxlQ2FjaGUpKSB7XG4gICAgaWYgKGRhdGEuaW5kZXhlZEhhc2hlcy5nZXQoc291cmNlUGF0aCkgIT09IGhhc2gpIHtcbiAgICAgIGluZGV4U291cmNlKGFwcCwgZGF0YSwgc291cmNlUGF0aCwgaGFzaCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVNvdXJjZShkYXRhOiBCYWNrbGlua0luZGV4RGF0YSwgc291cmNlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgbmFtZUtleSBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5nZXQoc291cmNlUGF0aCkgPz8gW10pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRocyA9IGVuc3VyZU5vbk51bGxhYmxlKGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLmdldChuYW1lS2V5KSk7XG4gICAgc291cmNlUGF0aHMuZGVsZXRlKHNvdXJjZVBhdGgpO1xuICAgIGlmIChzb3VyY2VQYXRocy5zaXplID09PSAwKSB7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5kZWxldGUobmFtZUtleSk7XG4gICAgfVxuICB9XG4gIGRhdGEuc291cmNlUGF0aE5hbWVLZXlzLmRlbGV0ZShzb3VyY2VQYXRoKTtcbiAgZGF0YS5pbmRleGVkSGFzaGVzLmRlbGV0ZShzb3VyY2VQYXRoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnREEseUJBQWtDO0FBQ2xDLDZCQUFvQztBQUVwQyxzQ0FBeUM7QUFRekMsTUFBTSxrQkFBa0I7QUFVakIsU0FBUywyQkFBMkIsS0FBVSxNQUF5QztBQUM1RixRQUFNLE9BQU8scUJBQXFCLEdBQUc7QUFDckMsVUFBUSxLQUFLLElBQUk7QUFFakIsUUFBTSxnQkFBZ0IsSUFBSTtBQUMxQixRQUFNLFlBQVksSUFBSSwyQ0FBK0I7QUFHckQsUUFBTSx1QkFBdUIsb0JBQUksSUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3hELGFBQVcsV0FBVyxrQkFBa0IsS0FBSyxJQUFJLEdBQUc7QUFDbEQsZUFBVyxjQUFjLEtBQUssbUJBQW1CLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRztBQUNuRSwyQkFBcUIsSUFBSSxVQUFVO0FBQUEsSUFDckM7QUFBQSxFQUNGO0FBRUEsYUFBVyxjQUFjLHNCQUFzQjtBQUM3QyxlQUFXLGFBQWEsbUJBQW1CLGtCQUFrQixLQUFLLFVBQVUsQ0FBQyxHQUFHO0FBQzlFLGNBQVEsWUFBWSxTQUFTO0FBQUEsSUFDL0I7QUFBQSxFQUNGO0FBRUEsYUFBVyxlQUFlLE9BQU8sT0FBTyxjQUFjLFlBQVksR0FBRztBQUNuRSxpQkFBYSxrQkFBa0IsT0FBTztBQUFBLEVBQ3hDO0FBRUEsU0FBTztBQUVQLFdBQVMsUUFBUSxZQUFvQixXQUE0QjtBQUMvRCxRQUFJLGNBQWMscUJBQXFCLFlBQVksVUFBVSxJQUFJLEdBQUcsVUFBVSxNQUFNLE1BQU07QUFDeEYsZ0JBQVUsSUFBSSxZQUFZLFNBQVM7QUFBQSxJQUNyQztBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMscUJBQXFCLEtBQTZCO0FBQ3pELFFBQU0sY0FBVSwwREFBeUIsMEJBQTBCLG9CQUFJLFFBQWdDLENBQUMsRUFBRTtBQUMxRyxNQUFJLE9BQU8sUUFBUSxJQUFJLEdBQUc7QUFDMUIsTUFBSSxDQUFDLE1BQU07QUFDVCxXQUFPO0FBQUEsTUFDTCxlQUFlLG9CQUFJLElBQW9CO0FBQUEsTUFDdkMsb0JBQW9CLG9CQUFJLElBQXlCO0FBQUEsTUFDakQsb0JBQW9CLG9CQUFJLElBQXlCO0FBQUEsSUFDbkQ7QUFDQSxZQUFRLElBQUksS0FBSyxJQUFJO0FBQUEsRUFDdkI7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGtCQUFrQixLQUFVLFlBQWdEO0FBQ25GLFFBQU0sT0FBTyxJQUFJLGNBQWMsVUFBVSxVQUFVLEdBQUc7QUFDdEQsU0FBTyxTQUFTLFNBQVksU0FBWSxJQUFJLGNBQWMsY0FBYyxJQUFJO0FBQzlFO0FBU0EsU0FBUyxtQkFBbUIsT0FBZ0Q7QUFDMUUsU0FBTyxRQUFRLENBQUMsR0FBRyxNQUFNLG9CQUFvQixDQUFDLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkc7QUFRQSxTQUFTLFlBQVksTUFBc0I7QUFDekMsUUFBTSxZQUFZLEtBQUssUUFBUSxHQUFHO0FBQ2xDLFNBQU8sY0FBYyxLQUFLLE9BQU8sS0FBSyxNQUFNLEdBQUcsU0FBUztBQUMxRDtBQVFBLFNBQVMsb0JBQW9CLE1BQXNCO0FBQ2pELFFBQU0sV0FBVyxZQUFZLElBQUksRUFBRSxZQUFZO0FBQy9DLFNBQU8sU0FBUyxNQUFNLFNBQVMsWUFBWSxHQUFHLElBQUksQ0FBQztBQUNyRDtBQVVBLFNBQVMsa0JBQWtCLFVBQTRCO0FBQ3JELFFBQU0sVUFBVSxTQUFTLFlBQVk7QUFDckMsU0FBTyxRQUFRLFNBQVMsZUFBZSxJQUFJLENBQUMsU0FBUyxRQUFRLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU87QUFDNUc7QUFFQSxTQUFTLFlBQVksS0FBVSxNQUF5QixZQUFvQixNQUFvQjtBQUM5RixlQUFhLE1BQU0sVUFBVTtBQUM3QixRQUFNLFFBQVEsSUFBSSxjQUFjLGNBQWMsSUFBSTtBQU1sRCxNQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsRUFDRjtBQUVBLFFBQU0sV0FBVyxvQkFBSSxJQUFZO0FBQ2pDLGFBQVcsYUFBYSxtQkFBbUIsS0FBSyxHQUFHO0FBQ2pELGFBQVMsSUFBSSxvQkFBb0IsVUFBVSxJQUFJLENBQUM7QUFBQSxFQUNsRDtBQUNBLGFBQVcsV0FBVyxVQUFVO0FBQzlCLFFBQUksY0FBYyxLQUFLLG1CQUFtQixJQUFJLE9BQU87QUFDckQsUUFBSSxDQUFDLGFBQWE7QUFDaEIsb0JBQWMsb0JBQUksSUFBWTtBQUM5QixXQUFLLG1CQUFtQixJQUFJLFNBQVMsV0FBVztBQUFBLElBQ2xEO0FBQ0EsZ0JBQVksSUFBSSxVQUFVO0FBQUEsRUFDNUI7QUFDQSxPQUFLLG1CQUFtQixJQUFJLFlBQVksUUFBUTtBQUNoRCxPQUFLLGNBQWMsSUFBSSxZQUFZLElBQUk7QUFDekM7QUFFQSxTQUFTLFFBQVEsS0FBVSxNQUErQjtBQUN4RCxRQUFNLFlBQVksSUFBSSxjQUFjO0FBRXBDLGFBQVcsY0FBYyxLQUFLLG1CQUFtQixLQUFLLEdBQUc7QUFDdkQsUUFBSSxDQUFDLE9BQU8sT0FBTyxXQUFXLFVBQVUsR0FBRztBQUN6QyxtQkFBYSxNQUFNLFVBQVU7QUFBQSxJQUMvQjtBQUFBLEVBQ0Y7QUFFQSxhQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLE9BQU8sUUFBUSxTQUFTLEdBQUc7QUFDOUQsUUFBSSxLQUFLLGNBQWMsSUFBSSxVQUFVLE1BQU0sTUFBTTtBQUMvQyxrQkFBWSxLQUFLLE1BQU0sWUFBWSxJQUFJO0FBQUEsSUFDekM7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLGFBQWEsTUFBeUIsWUFBMEI7QUFDdkUsYUFBVyxXQUFXLEtBQUssbUJBQW1CLElBQUksVUFBVSxLQUFLLENBQUMsR0FBRztBQUNuRSxVQUFNLGtCQUFjLHNDQUFrQixLQUFLLG1CQUFtQixJQUFJLE9BQU8sQ0FBQztBQUMxRSxnQkFBWSxPQUFPLFVBQVU7QUFDN0IsUUFBSSxZQUFZLFNBQVMsR0FBRztBQUMxQixXQUFLLG1CQUFtQixPQUFPLE9BQU87QUFBQSxJQUN4QztBQUFBLEVBQ0Y7QUFDQSxPQUFLLG1CQUFtQixPQUFPLFVBQVU7QUFDekMsT0FBSyxjQUFjLE9BQU8sVUFBVTtBQUN0QzsiLAogICJuYW1lcyI6IFtdCn0K
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrbGluay1pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQW5zd2VycyBcIndoaWNoIHJlZmVyZW5jZXMgcmVzb2x2ZSB0byB0aGlzIGZpbGU/XCIgYnkgbG9va2luZyBvbmx5IGF0IHRoZSBub3RlcyB0aGF0IENPVUxEIGhvbGQgb25lLCBpbnN0ZWFkIG9mXG4gKiByZXNvbHZpbmcgZXZlcnkgcmVmZXJlbmNlIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBtZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIGlzIG5vdCBhbiBpbmRleCBsb29rdXAuIFJlYWQgb3V0IG9mIHRoZSAxLjE0LjIgYnVuZGxlLCBpdCBpc1xuICogYGl0ZXJhdGVBbGxSZWZzYCDigJQgZXZlcnkgYGZyb250bWF0dGVyTGlua3NgLCBgbGlua3NgIGFuZCBgZW1iZWRzYCBlbnRyeSBvZiBldmVyeSBjYWNoZWQgbm90ZSwgcGx1cyBldmVyeVxuICogcmVmZXJlbmNlIGVhY2ggYGxpbmtVcGRhdGVyc2AgZW50cnkgKHRoZSBjYW52YXMgb25lKSByZXBvcnRzIOKAlCB3aXRoIG9uZSBgZ2V0Rmlyc3RMaW5rcGF0aERlc3RgIHBlciByZWZlcmVuY2UsXG4gKiBrZWVwaW5nIHRob3NlIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAuIFRoYXQgaXMgfjExNSBtcyBhdCAxMDBrIHJlZmVyZW5jZXMgYW5kIH4zMjAgbXMgYXQgMjUwaywgcGFpZCBvbmNlIHBlciBmaWxlXG4gKiBieSBldmVyeSBwZXItZmlsZSBiYWNrbGluayBsb29rdXAsIHNvIGEgMTAwMC1ub3RlIGZvbGRlciByZW5hbWUgaW4gYSA1MGstbm90ZSB2YXVsdCB0b29rIDkyNCBzLlxuICpcbiAqIFdoYXQgbWFrZXMgYSBuYXJyb3dlciBhbnN3ZXIgZXhhY3QgaXMgYSBwcm9wZXJ0eSBvZiBPYnNpZGlhbidzIGBnZXRMaW5rcGF0aERlc3RgOiBldmVyeSBicmFuY2ggb2YgaXQgY2FuIG9ubHlcbiAqIHJldHVybiBhIGZpbGUgd2hvc2UgbG93ZXJjYXNlZCBuYW1lIGlzIHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgdGhlIGxpbmtwYXRoLCBvciB0aGF0IHNlZ21lbnQgcGx1c1xuICogYC5tZGAuIFRoZSBvbmUgZXhjZXB0aW9uIGlzIHRoZSBlbXB0eSBsaW5rcGF0aCAoYFtbI0hlYWRpbmddXWApLCB3aGljaCByZXR1cm5zIHRoZSBzb3VyY2Ugbm90ZSBpdHNlbGYuIFNvIGFcbiAqIG5vdGUgY2FuIGhvbGQgYSByZWZlcmVuY2UgdG8gYGZpbGVgIG9ubHkgaWYgaXQgaG9sZHMgYSByZWZlcmVuY2Ugd2hvc2UgbGFzdCBzZWdtZW50IG1hdGNoZXMgb25lIG9mIGBmaWxlYCdzXG4gKiBuYW1lIGtleXMsIG9yIGlmIGl0IElTIGBmaWxlYC4gVGhpcyBtb2R1bGUgaW5kZXhlcyBub3RlcyBieSB0aG9zZSBzZWdtZW50cywgdGFrZXMgdGhlIGNhbmRpZGF0ZXMgZm9yIGBmaWxlYCxcbiAqIGFuZCBydW5zIE9ic2lkaWFuJ3Mgb3duIHByZWRpY2F0ZSDigJQgYGdldEZpcnN0TGlua3BhdGhEZXN0KGxpbmtwYXRoLCBzb3VyY2UpID09PSBmaWxlYCDigJQgb3ZlciB0aGUgY2FuZGlkYXRlcydcbiAqIHJlZmVyZW5jZXMgb25seS4gVGhlIGNhbmRpZGF0ZXMgYXJlIGEgc3VwZXJzZXQgb2YgdGhlIHJlYWwgYmFja2xpbmtzIGFuZCB0aGUgcHJlZGljYXRlIGlzIHRoZSBzYW1lIG9uZSwgc29cbiAqIHRoZSBhbnN3ZXIgaXMgdGhlIG9uZSB0aGUgZnVsbCB3YWxrIGdpdmVzLCBhIGZpbGUgcmVnaXN0ZXJlZCBhdCBhIG5vbi1leGlzdGluZyBwYXRoIGluY2x1ZGVkLiBPbmx5IHRoZSBPUkRFUlxuICogb2YgdGhlIG5vdGVzIGluIHRoZSBhbnN3ZXIgZGlmZmVyczogdGhlIGZpbGUgaXRzZWxmIGZpcnN0LCB0aGVuIHRoZSBjYW5kaWRhdGVzIGluIGluZGV4IG9yZGVyLlxuICpcbiAqIFRoZSBpbmRleCBpcyBrZXB0IGZyZXNoIHdpdGhvdXQgbGlzdGVuaW5nIHRvIGFueXRoaW5nLiBgbWV0YWRhdGFDYWNoZS5maWxlQ2FjaGVgIG1hcHMgYSBub3RlIHRvIHRoZSBoYXNoIG9mXG4gKiBpdHMgY29udGVudCwgYW5kIHRoZSByZWZlcmVuY2VzIGFyZSBhIGZ1bmN0aW9uIG9mIHRoYXQgaGFzaCwgc28gZWFjaCBxdWVyeSBjb21wYXJlcyBldmVyeSBub3RlJ3MgaGFzaFxuICogYWdhaW5zdCB0aGUgb25lIGl0IHdhcyBpbmRleGVkIGF0IGFuZCByZS1yZWFkcyBvbmx5IHRoZSBub3RlcyB0aGF0IGNoYW5nZWQuIFRoYXQgaXMgb25lIHByb3BlcnR5IGNvbXBhcmlzb25cbiAqIHBlciBub3RlIGFuZCBubyByZXNvbHV0aW9uIGF0IGFsbCwgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHNjYW4gT2JzaWRpYW4gaXRzZWxmIHJ1bnMgb24gZXZlcnkgcmVuYW1lXG4gKiAoYHVwZGF0ZVJlbGF0ZWRMaW5rc2ApLiBEZXBlbmRpbmcgb24gbm8gZXZlbnQgYWxzbyBtZWFucyBkZXBlbmRpbmcgb24gbm8gZXZlbnQgT1JERVIsIHdoaWNoIG1hdHRlcnMgYmVjYXVzZVxuICogcmVuYW1lIGhhbmRsZXJzIHF1ZXJ5IGZyb20gaW5zaWRlIHRoZSB2YXVsdCBgcmVuYW1lYCBldmVudC5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgaW5kZXggcGVyIGBBcHBgLCBoZWxkIGluIHRoZSByZWFsbS1nbG9iYWwgc2hhcmVkLXN0YXRlIGJhZywgc28gZXZlcnkgcGx1Z2luIGJ1bmRsaW5nIHRoaXMgbGlicmFyeVxuICogc2hhcmVzIGl0IHJhdGhlciB0aGFuIGVhY2ggYnVpbGRpbmcgaXRzIG93bi4gV2hhdCBpcyBzdG9yZWQgdGhlcmUgaXMgcGxhaW4gZGF0YSByZWFkIHN0cnVjdHVyYWxseSAobWFwcyBhbmRcbiAqIHNldHMsIG5ldmVyIGEgY2xhc3MgaW5zdGFuY2UpLCBiZWNhdXNlIHRoZSBiYWcgY3Jvc3NlcyBjb3BpZXMgb2YgdGhpcyBsaWJyYXJ5IGF0IGRpZmZlcmVudCB2ZXJzaW9ucy4gVGhlIGtleVxuICogY2FycmllcyBhIHZlcnNpb246IGEgY2hhbmdlIHRvIHdoYXQgYSBrZXkgTUVBTlMgKGhvdyBhIG5hbWUga2V5IGlzIGRlcml2ZWQpIG11c3QgbW92ZSB0byBhIG5ldyBrZXksIHNvIGFuIG9sZGVyXG4gKiBjb3B5IG5ldmVyIHJlYWRzIGFuIGluZGV4IGJ1aWx0IGJ5IGRpZmZlcmVudCBydWxlcy5cbiAqXG4gKiBUaGUgYGxpbmtVcGRhdGVyc2Agc2lkZSBpcyBzdGlsbCB3YWxrZWQgaW4gZnVsbCBvbiBldmVyeSBxdWVyeS4gSW4gMS4xNC4yIHRoZSBvbmx5IHVwZGF0ZXIgaXMgdGhlIGNhbnZhc1xuICogb25lLCB3aG9zZSByZWZlcmVuY2VzIGxpdmUgaW4gdGhlIGNhbnZhcyBpbmRleCByYXRoZXIgdGhhbiBpbiBgZmlsZUNhY2hlYCwgc28gdGhlcmUgaXMgbm8gaGFzaCB0byBrZXkgdGhlbVxuICogYnk7IGEgdmF1bHQncyBjYW52YXNlcyBob2xkIGEgc21hbGwgZnJhY3Rpb24gb2YgaXRzIHJlZmVyZW5jZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0JztcbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDYWNoZWRNZXRhZGF0YSxcbiAgUmVmZXJlbmNlLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IEN1c3RvbUFycmF5RGljdEltcGwgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcblxuaW50ZXJmYWNlIEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgcmVhZG9ubHkgaW5kZXhlZEhhc2hlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgbmFtZUtleVNvdXJjZVBhdGhzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj47XG4gIHJlYWRvbmx5IHNvdXJjZVBhdGhOYW1lS2V5czogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+O1xufVxuXG5jb25zdCBNQVJLRE9XTl9TVUZGSVggPSAnLm1kJztcblxuLyoqXG4gKiBUaGUgc2FtZSBhbnN3ZXIgYXMgYGFwcC5tZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUoZmlsZSlgIChPYnNpZGlhbidzIG93biwgdW5wYXRjaGVkKSwgZnJvbSB0aGUgY2FuZGlkYXRlXG4gKiBub3RlcyBvbmx5LiBTZWUgdGhlIGZpbGUgaGVhZGVyIGZvciB3aHkgdGhlIGFuc3dlciBpcyBleGFjdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgd2hvc2UgYmFja2xpbmtzIHRvIGZpbmQuIEl0IG1heSBiZSBhIG5vbi1leGlzdGluZyBmaWxlIHJlZ2lzdGVyZWQgZm9yIHRoZSBxdWVyeS5cbiAqIEByZXR1cm5zIFRoZSByZWZlcmVuY2VzIHRoYXQgcmVzb2x2ZSB0byBgZmlsZWAsIGtleWVkIGJ5IHRoZSBwYXRoIG9mIHRoZSBub3RlIG9yIGNhbnZhcyBob2xkaW5nIHRoZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRleGVkQmFja2xpbmtzRm9yRmlsZShhcHA6IEFwcCwgZmlsZTogVEZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGRhdGEgPSBnZXRCYWNrbGlua0luZGV4RGF0YShhcHApO1xuICByZWZyZXNoKGFwcCwgZGF0YSk7XG5cbiAgY29uc3QgbWV0YWRhdGFDYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xuICBjb25zdCBiYWNrbGlua3MgPSBuZXcgQ3VzdG9tQXJyYXlEaWN0SW1wbDxSZWZlcmVuY2U+KCk7XG5cbiAgLy8gVGhlIGZpbGUgaXRzZWxmIGlzIGEgY2FuZGlkYXRlIGZvciBpdHMgb3duIGBbWyNIZWFkaW5nXV1gIHJlZmVyZW5jZXMsIHdob3NlIGVtcHR5IGxpbmtwYXRoIG5hbWVzIG5vIHNlZ21lbnQuXG4gIGNvbnN0IGNhbmRpZGF0ZVNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KFtmaWxlLnBhdGhdKTtcbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIGdldFRhcmdldE5hbWVLZXlzKGZpbGUubmFtZSkpIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZVBhdGggb2YgZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpID8/IFtdKSB7XG4gICAgICBjYW5kaWRhdGVTb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIGNhbmRpZGF0ZVNvdXJjZVBhdGhzKSB7XG4gICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGdldENhY2hlZE1ldGFkYXRhKGFwcCwgc291cmNlUGF0aCkpKSB7XG4gICAgICBjb2xsZWN0KHNvdXJjZVBhdGgsIHJlZmVyZW5jZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBsaW5rVXBkYXRlciBvZiBPYmplY3QudmFsdWVzKG1ldGFkYXRhQ2FjaGUubGlua1VwZGF0ZXJzKSkge1xuICAgIGxpbmtVcGRhdGVyPy5pdGVyYXRlUmVmZXJlbmNlcyhjb2xsZWN0KTtcbiAgfVxuXG4gIHJldHVybiBiYWNrbGlua3M7XG5cbiAgZnVuY3Rpb24gY29sbGVjdChzb3VyY2VQYXRoOiBzdHJpbmcsIHJlZmVyZW5jZTogUmVmZXJlbmNlKTogdm9pZCB7XG4gICAgaWYgKG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZ2V0TGlua3BhdGgocmVmZXJlbmNlLmxpbmspLCBzb3VyY2VQYXRoKSA9PT0gZmlsZSkge1xuICAgICAgYmFja2xpbmtzLmFkZChzb3VyY2VQYXRoLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRCYWNrbGlua0luZGV4RGF0YShhcHA6IEFwcCk6IEJhY2tsaW5rSW5kZXhEYXRhIHtcbiAgY29uc3QgaW5kZXhlcyA9IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgnYmFja2xpbmtJbmRleGVzQnlBcHBWMScsIG5ldyBXZWFrTWFwPEFwcCwgQmFja2xpbmtJbmRleERhdGE+KCkpLnZhbHVlO1xuICBsZXQgZGF0YSA9IGluZGV4ZXMuZ2V0KGFwcCk7XG4gIGlmICghZGF0YSkge1xuICAgIGRhdGEgPSB7XG4gICAgICBpbmRleGVkSGFzaGVzOiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgICAgbmFtZUtleVNvdXJjZVBhdGhzOiBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCksXG4gICAgICBzb3VyY2VQYXRoTmFtZUtleXM6IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKVxuICAgIH07XG4gICAgaW5kZXhlcy5zZXQoYXBwLCBkYXRhKTtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FjaGVkTWV0YWRhdGEoYXBwOiBBcHAsIHNvdXJjZVBhdGg6IHN0cmluZyk6IENhY2hlZE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaGFzaCA9IGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZVtzb3VyY2VQYXRoXT8uaGFzaDtcbiAgcmV0dXJuIGhhc2ggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGFwcC5tZXRhZGF0YUNhY2hlLm1ldGFkYXRhQ2FjaGVbaGFzaF07XG59XG5cbi8qKlxuICogTGlzdHMgYSBjYWNoZWQgbm90ZSdzIHJlZmVyZW5jZXMgaW4gdGhlIG9yZGVyIE9ic2lkaWFuJ3Mgb3duIHdhbGsgdmlzaXRzIHRoZW06IGBmcm9udG1hdHRlckxpbmtzYCwgdGhlblxuICogYGxpbmtzYCwgdGhlbiBgZW1iZWRzYC5cbiAqXG4gKiBAcGFyYW0gY2FjaGUgLSBUaGUgbm90ZSdzIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFRoZSBub3RlJ3MgcmVmZXJlbmNlcy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IHVuZGVmaW5lZCk6IFJlZmVyZW5jZVtdIHtcbiAgcmV0dXJuIGNhY2hlID8gWy4uLmNhY2hlLmZyb250bWF0dGVyTGlua3MgPz8gW10sIC4uLmNhY2hlLmxpbmtzID8/IFtdLCAuLi5jYWNoZS5lbWJlZHMgPz8gW11dIDogW107XG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBzdWJwYXRoIGZyb20gYSBsaW5rLCB0aGUgd2F5IE9ic2lkaWFuJ3MgYGdldExpbmtwYXRoYCBkb2VzLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIGxpbmsgdGV4dCwgc3VjaCBhcyBgZm9sZGVyL05vdGUjSGVhZGluZ2AuXG4gKiBAcmV0dXJucyBUaGUgbGlua3BhdGgsIHN1Y2ggYXMgYGZvbGRlci9Ob3RlYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TGlua3BhdGgobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gbGluay5pbmRleE9mKCcjJyk7XG4gIHJldHVybiBoYXNoSW5kZXggPT09IC0xID8gbGluayA6IGxpbmsuc2xpY2UoMCwgaGFzaEluZGV4KTtcbn1cblxuLyoqXG4gKiBUaGUga2V5IGEgcmVmZXJlbmNlIGlzIGluZGV4ZWQgdW5kZXI6IHRoZSBsb3dlcmNhc2VkIGxhc3QgYC9gIHNlZ21lbnQgb2YgaXRzIGxpbmtwYXRoLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIHJlZmVyZW5jZSdzIGxpbmsgdGV4dC5cbiAqIEByZXR1cm5zIFRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIGdldFJlZmVyZW5jZU5hbWVLZXkobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGlua3BhdGggPSBnZXRMaW5rcGF0aChsaW5rKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbGlua3BhdGguc2xpY2UobGlua3BhdGgubGFzdEluZGV4T2YoJy8nKSArIDEpO1xufVxuXG4vKipcbiAqIFRoZSBrZXlzIHVuZGVyIHdoaWNoIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSB3aXRoIHRoaXMgbmFtZSBjYW4gYmUgaW5kZXhlZC4gYGdldExpbmtwYXRoRGVzdGAgbWF0Y2hlcyBhXG4gKiBzZWdtZW50IGFnYWluc3QgdGhlIGZpbGUncyBuYW1lLCBhbmQgYWdhaW5zdCB0aGUgbmFtZSB3aXRoIGAubWRgIGFwcGVuZGVkLCBzbyBhIG5vdGUgbmFtZWQgYE5vdGUubWRgIGlzXG4gKiByZWFjaGFibGUgZnJvbSBib3RoIGBub3RlLm1kYCBhbmQgYG5vdGVgLlxuICpcbiAqIEBwYXJhbSBmaWxlTmFtZSAtIFRoZSBmaWxlJ3MgbmFtZSwgZXh0ZW5zaW9uIGluY2x1ZGVkLlxuICogQHJldHVybnMgVGhlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGdldFRhcmdldE5hbWVLZXlzKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG5hbWVLZXkgPSBmaWxlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbmFtZUtleS5lbmRzV2l0aChNQVJLRE9XTl9TVUZGSVgpID8gW25hbWVLZXksIG5hbWVLZXkuc2xpY2UoMCwgLU1BUktET1dOX1NVRkZJWC5sZW5ndGgpXSA6IFtuYW1lS2V5XTtcbn1cblxuZnVuY3Rpb24gaW5kZXhTb3VyY2UoYXBwOiBBcHAsIGRhdGE6IEJhY2tsaW5rSW5kZXhEYXRhLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IHZvaWQge1xuICByZW1vdmVTb3VyY2UoZGF0YSwgc291cmNlUGF0aCk7XG4gIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUubWV0YWRhdGFDYWNoZVtoYXNoXTtcbiAgLypcbiAgICogQSBub3RlJ3MgYGZpbGVDYWNoZWAgZW50cnkgY2FuIGNhcnJ5IGl0cyBuZXcgaGFzaCBiZWZvcmUgdGhlIG1ldGFkYXRhIGZvciB0aGF0IGhhc2ggaXMgc3RvcmVkLiBSZWNvcmRpbmdcbiAgICogdGhlIGhhc2ggdGhlbiB3b3VsZCBwaW4gdGhlIG5vdGUgYXQgXCJubyByZWZlcmVuY2VzXCIgdW50aWwgaXRzIGNvbnRlbnQgY2hhbmdlZCBhZ2Fpbiwgc28gbGVhdmUgaXRcbiAgICogdW5yZWNvcmRlZCBhbmQgbGV0IHRoZSBuZXh0IHF1ZXJ5IGxvb2sgYWdhaW4uXG4gICAqL1xuICBpZiAoIWNhY2hlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmFtZUtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgZ2V0Q2FjaGVSZWZlcmVuY2VzKGNhY2hlKSkge1xuICAgIG5hbWVLZXlzLmFkZChnZXRSZWZlcmVuY2VOYW1lS2V5KHJlZmVyZW5jZS5saW5rKSk7XG4gIH1cbiAgZm9yIChjb25zdCBuYW1lS2V5IG9mIG5hbWVLZXlzKSB7XG4gICAgbGV0IHNvdXJjZVBhdGhzID0gZGF0YS5uYW1lS2V5U291cmNlUGF0aHMuZ2V0KG5hbWVLZXkpO1xuICAgIGlmICghc291cmNlUGF0aHMpIHtcbiAgICAgIHNvdXJjZVBhdGhzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5zZXQobmFtZUtleSwgc291cmNlUGF0aHMpO1xuICAgIH1cbiAgICBzb3VyY2VQYXRocy5hZGQoc291cmNlUGF0aCk7XG4gIH1cbiAgZGF0YS5zb3VyY2VQYXRoTmFtZUtleXMuc2V0KHNvdXJjZVBhdGgsIG5hbWVLZXlzKTtcbiAgZGF0YS5pbmRleGVkSGFzaGVzLnNldChzb3VyY2VQYXRoLCBoYXNoKTtcbn1cblxuZnVuY3Rpb24gcmVmcmVzaChhcHA6IEFwcCwgZGF0YTogQmFja2xpbmtJbmRleERhdGEpOiB2b2lkIHtcbiAgY29uc3QgZmlsZUNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZUNhY2hlO1xuXG4gIGZvciAoY29uc3Qgc291cmNlUGF0aCBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5rZXlzKCkpIHtcbiAgICBpZiAoIU9iamVjdC5oYXNPd24oZmlsZUNhY2hlLCBzb3VyY2VQYXRoKSkge1xuICAgICAgcmVtb3ZlU291cmNlKGRhdGEsIHNvdXJjZVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgW3NvdXJjZVBhdGgsIHsgaGFzaCB9XSBvZiBPYmplY3QuZW50cmllcyhmaWxlQ2FjaGUpKSB7XG4gICAgaWYgKGRhdGEuaW5kZXhlZEhhc2hlcy5nZXQoc291cmNlUGF0aCkgIT09IGhhc2gpIHtcbiAgICAgIGluZGV4U291cmNlKGFwcCwgZGF0YSwgc291cmNlUGF0aCwgaGFzaCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVNvdXJjZShkYXRhOiBCYWNrbGlua0luZGV4RGF0YSwgc291cmNlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgbmFtZUtleSBvZiBkYXRhLnNvdXJjZVBhdGhOYW1lS2V5cy5nZXQoc291cmNlUGF0aCkgPz8gW10pIHtcbiAgICBjb25zdCBzb3VyY2VQYXRocyA9IGVuc3VyZU5vbk51bGxhYmxlKGRhdGEubmFtZUtleVNvdXJjZVBhdGhzLmdldChuYW1lS2V5KSk7XG4gICAgc291cmNlUGF0aHMuZGVsZXRlKHNvdXJjZVBhdGgpO1xuICAgIGlmIChzb3VyY2VQYXRocy5zaXplID09PSAwKSB7XG4gICAgICBkYXRhLm5hbWVLZXlTb3VyY2VQYXRocy5kZWxldGUobmFtZUtleSk7XG4gICAgfVxuICB9XG4gIGRhdGEuc291cmNlUGF0aE5hbWVLZXlzLmRlbGV0ZShzb3VyY2VQYXRoKTtcbiAgZGF0YS5pbmRl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
@@ -1,4 +1,4 @@
1
- /// <reference path="./library.d.cts" />
1
+ /// <reference path="./library-references.d.cts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,20 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
30
+ ensureBrowserProcess();
50
31
  })();
51
32
  (function patchObsidianRequire() {
52
33
  const originalRequire = require;
@@ -214,4 +195,4 @@ function renderDelayedBacklinksForFolder(params) {
214
195
  renderDelayedBacklinks,
215
196
  renderDelayedBacklinksForFolder
216
197
  });
217
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2JhY2tsaW5rLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBiYWNrbGlua3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERhdGF2aWV3SW5saW5lQXBpLFxuICBMaW5rXG59IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuaW1wb3J0IHR5cGUge1xuICBQYXRoT3JBYnN0cmFjdEZpbGUsXG4gIFBhdGhPckZpbGVcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHJlbmRlckNhbGxvdXQgfSBmcm9tICcuL2NhbGxvdXQudHMnO1xuaW1wb3J0IHsgZml4VGl0bGUgfSBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuaW1wb3J0IHsgcmVuZGVyUGFnaW5hdGVkVGFibGUgfSBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmltcG9ydCB7XG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0TWFya2Rvd25GaWxlcyxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlclxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IGdlbmVyYXRlTWFya2Rvd25MaW5rIH0gZnJvbSAnLi9saW5rLnRzJztcbmltcG9ydCB7IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlIH0gZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGZvbGRlciBwYXRoLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGZpbGUncyBmb2xkZXIgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgcmVuZGVyZWQgYmFja2xpbmtzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ0ZvbGRlciBCYWNrbGlua3MnYFxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckRlbGF5ZWRCYWNrbGlua3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckRlbGF5ZWRCYWNrbGlua3NQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXRoT3JGaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM6IFBhdGhPckZpbGVbXTtcblxuICAvKipcbiAgICogQSB0aXRsZSBmb3IgdGhlIHJlbmRlcmVkIGJhY2tsaW5rcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdCYWNrbGlua3MnYFxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGJhY2tsaW5rcyB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgYW5kIG9wdGlvbmFsIGFycmF5IG9mIFBhdGhPckFic3RyYWN0RmlsZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZXMgLSBBbiBvcHRpb25hbCBhcnJheSBvZiBQYXRoT3JBYnN0cmFjdEZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJhY2tsaW5rcyB0YWJsZSBoYXMgYmVlbiByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckJhY2tsaW5rc1RhYmxlKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcGF0aE9yRmlsZXM/OiBQYXRoT3JBYnN0cmFjdEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICBwYXRoT3JGaWxlcyA/Pz0gW107XG4gIGNvbnN0IGZpbGVzOiBURmlsZVtdID0gcGF0aE9yRmlsZXMuZmxhdE1hcCgoYWJzdHJhY3RGaWxlT3JQYXRoKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKHsgYXBwOiBkdi5hcHAsIHBhdGhPckZpbGU6IGFic3RyYWN0RmlsZU9yUGF0aCB9KTtcbiAgICBpZiAoIWFic3RyYWN0RmlsZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgcmV0dXJuIFthYnN0cmFjdEZpbGVdO1xuICAgIH1cblxuICAgIGlmICghaXNGb2xkZXIoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIGZvbGRlcicpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRNYXJrZG93bkZpbGVzKHsgYXBwOiBkdi5hcHAsIGlzUmVjdXJzaXZlOiB0cnVlLCBwYXRoT3JGb2xkZXI6IGFic3RyYWN0RmlsZSB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYmFja2xpbmtSb3dzOiBbTGluaywgc3RyaW5nW11dW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCBsaW5rID0gZml4VGl0bGUoeyBkdiwgcGF0aE9yRmlsZTogZmlsZS5wYXRoIH0pO1xuICAgIGNvbnN0IGJhY2tsaW5rcyA9IGF3YWl0IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlKHsgYXBwOiBkdi5hcHAsIHBhdGhPckZpbGU6IGZpbGUgfSk7XG4gICAgY29uc3QgYmFja2xpbmtMaW5rcyA9IGJhY2tsaW5rcy5rZXlzKCkubWFwKChiYWNrTGlua1BhdGgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtkb3duTGluayA9IGdlbmVyYXRlTWFya2Rvd25MaW5rKHtcbiAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgIHNvdXJjZVBhdGhPckZpbGU6IGR2LmN1cnJlbnQoKS5maWxlLnBhdGgsXG4gICAgICAgIHRhcmdldFBhdGhPckZpbGU6IGVuc3VyZU5vbk51bGxhYmxlKGR2LmFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGJhY2tMaW5rUGF0aCwgZmlsZS5wYXRoKSwgJ0xpbmsgbm90IGZvdW5kJylcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYCR7bWFya2Rvd25MaW5rfSAoJHtiYWNrTGlua1BhdGh9KWA7XG4gICAgfSk7XG4gICAgaWYgKGJhY2tsaW5rTGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgYmFja2xpbmtSb3dzLnB1c2goW2xpbmssIGJhY2tsaW5rTGlua3NdKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWRUYWJsZSh7XG4gICAgZHYsXG4gICAgaGVhZGVyczogWydOb3RlJywgJ0JhY2tsaW5rcyddLFxuICAgIHJvd3M6IGJhY2tsaW5rUm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGRlbGF5ZWQgYmFja2xpbmtzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIGRlbGF5ZWQgYmFja2xpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVsYXllZEJhY2tsaW5rcyhwYXJhbXM6IFJlbmRlckRlbGF5ZWRCYWNrbGlua3NQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGZpbGVzLFxuICAgIHRpdGxlID0gJ0JhY2tsaW5rcydcbiAgfSA9IHBhcmFtcztcbiAgcmVuZGVyQ2FsbG91dCh7XG4gICAgYXN5bmMgY29udGVudFByb3ZpZGVyKCkge1xuICAgICAgYXdhaXQgcmVuZGVyQmFja2xpbmtzVGFibGUoZHYsIGZpbGVzKTtcbiAgICB9LFxuICAgIGR2LFxuICAgIGhlYWRlcjogdGl0bGVcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBkZWxheWVkIGJhY2tsaW5rcyBmb3IgYSBzcGVjaWZpYyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyKHBhcmFtczogUmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlclBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgZm9sZGVyLFxuICAgIHRpdGxlID0gJ0ZvbGRlciBCYWNrbGlua3MnXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGZvbGRlcjIgPSBmb2xkZXIgPz8gZHYuY3VycmVudCgpLmZpbGUuZm9sZGVyO1xuICByZW5kZXJEZWxheWVkQmFja2xpbmtzKHtcbiAgICBkdixcbiAgICBmaWxlczogZ2V0TWFya2Rvd25GaWxlcyh7IGFwcDogZHYuYXBwLCBpc1JlY3Vyc2l2ZTogdHJ1ZSwgcGF0aE9yRm9sZGVyOiBmb2xkZXIyIH0pLFxuICAgIHRpdGxlXG4gIH0pO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSx5QkFBa0M7QUFXbEMscUJBQThCO0FBQzlCLDJCQUF5QjtBQUN6QixzQkFBcUM7QUFDckMseUJBS087QUFDUCxrQkFBcUM7QUFDckMsNEJBQXdDO0FBcUR4QyxlQUFzQixxQkFBcUIsSUFBdUIsYUFBbUQ7QUFDbkgsa0JBQWdCLENBQUM7QUFDakIsUUFBTSxRQUFpQixZQUFZLFFBQVEsQ0FBQyx1QkFBdUI7QUFDakUsVUFBTSxtQkFBZSwwQ0FBc0IsRUFBRSxLQUFLLEdBQUcsS0FBSyxZQUFZLG1CQUFtQixDQUFDO0FBQzFGLFFBQUksQ0FBQyxjQUFjO0FBQ2pCLGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxZQUFJLDJCQUFPLFlBQVksR0FBRztBQUN4QixhQUFPLENBQUMsWUFBWTtBQUFBLElBQ3RCO0FBRUEsUUFBSSxLQUFDLDZCQUFTLFlBQVksR0FBRztBQUMzQixZQUFNLElBQUksTUFBTSxtQkFBbUI7QUFBQSxJQUNyQztBQUVBLGVBQU8scUNBQWlCLEVBQUUsS0FBSyxHQUFHLEtBQUssYUFBYSxNQUFNLGNBQWMsYUFBYSxDQUFDO0FBQUEsRUFDeEYsQ0FBQztBQUVELFFBQU0sZUFBbUMsQ0FBQztBQUUxQyxhQUFXLFFBQVEsT0FBTztBQUN4QixVQUFNLFdBQU8sK0JBQVMsRUFBRSxJQUFJLFlBQVksS0FBSyxLQUFLLENBQUM7QUFDbkQsVUFBTSxZQUFZLFVBQU0sK0NBQXdCLEVBQUUsS0FBSyxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUM7QUFDakYsVUFBTSxnQkFBZ0IsVUFBVSxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtBQUMzRCxZQUFNLG1CQUFlLGtDQUFxQjtBQUFBLFFBQ3hDLEtBQUssR0FBRztBQUFBLFFBQ1Isa0JBQWtCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFBQSxRQUNwQyxzQkFBa0Isc0NBQWtCLEdBQUcsSUFBSSxjQUFjLHFCQUFxQixjQUFjLEtBQUssSUFBSSxHQUFHLGdCQUFnQjtBQUFBLE1BQzFILENBQUM7QUFFRCxhQUFPLEdBQUcsWUFBWSxLQUFLLFlBQVk7QUFBQSxJQUN6QyxDQUFDO0FBQ0QsUUFBSSxjQUFjLFNBQVMsR0FBRztBQUM1QixtQkFBYSxLQUFLLENBQUMsTUFBTSxhQUFhLENBQUM7QUFBQSxJQUN6QztBQUFBLEVBQ0Y7QUFFQSxZQUFNLHNDQUFxQjtBQUFBLElBQ3pCO0FBQUEsSUFDQSxTQUFTLENBQUMsUUFBUSxXQUFXO0FBQUEsSUFDN0IsTUFBTTtBQUFBLEVBQ1IsQ0FBQztBQUNIO0FBT08sU0FBUyx1QkFBdUIsUUFBNEM7QUFDakYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQSxRQUFRO0FBQUEsRUFDVixJQUFJO0FBQ0osb0NBQWM7QUFBQSxJQUNaLE1BQU0sa0JBQWtCO0FBQ3RCLFlBQU0scUJBQXFCLElBQUksS0FBSztBQUFBLElBQ3RDO0FBQUEsSUFDQTtBQUFBLElBQ0EsUUFBUTtBQUFBLEVBQ1YsQ0FBQztBQUNIO0FBT08sU0FBUyxnQ0FBZ0MsUUFBcUQ7QUFDbkcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQSxRQUFRO0FBQUEsRUFDVixJQUFJO0FBQ0osUUFBTSxVQUFVLFVBQVUsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUM1Qyx5QkFBdUI7QUFBQSxJQUNyQjtBQUFBLElBQ0EsV0FBTyxxQ0FBaUIsRUFBRSxLQUFLLEdBQUcsS0FBSyxhQUFhLE1BQU0sY0FBYyxRQUFRLENBQUM7QUFBQSxJQUNqRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrbGluay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBiYWNrbGlua3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERhdGF2aWV3SW5saW5lQXBpLFxuICBMaW5rXG59IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuaW1wb3J0IHR5cGUge1xuICBQYXRoT3JBYnN0cmFjdEZpbGUsXG4gIFBhdGhPckZpbGVcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHJlbmRlckNhbGxvdXQgfSBmcm9tICcuL2NhbGxvdXQudHMnO1xuaW1wb3J0IHsgZml4VGl0bGUgfSBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuaW1wb3J0IHsgcmVuZGVyUGFnaW5hdGVkVGFibGUgfSBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmltcG9ydCB7XG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0TWFya2Rvd25GaWxlcyxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlclxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IGdlbmVyYXRlTWFya2Rvd25MaW5rIH0gZnJvbSAnLi9saW5rLnRzJztcbmltcG9ydCB7IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlIH0gZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGZvbGRlciBwYXRoLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGZpbGUncyBmb2xkZXIgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgcmVuZGVyZWQgYmFja2xpbmtzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ0ZvbGRlciBCYWNrbGlua3MnYFxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckRlbGF5ZWRCYWNrbGlua3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckRlbGF5ZWRCYWNrbGlua3NQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXRoT3JGaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM6IFBhdGhPckZpbGVbXTtcblxuICAvKipcbiAgICogQSB0aXRsZSBmb3IgdGhlIHJlbmRlcmVkIGJhY2tsaW5rcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdCYWNrbGlua3MnYFxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGJhY2tsaW5rcyB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgYW5kIG9wdGlvbmFsIGFycmF5IG9mIFBhdGhPckFic3RyYWN0RmlsZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZXMgLSBBbiBvcHRpb25hbCBhcnJheSBvZiBQYXRoT3JBYnN0cmFjdEZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJhY2tsaW5rcyB0YWJsZSBoYXMgYmVlbiByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckJhY2tsaW5rc1RhYmxlKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcGF0aE9yRmlsZXM/OiBQYXRoT3JBYnN0cmFjdEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICBwYXRoT3JGaWxlcyA/Pz0gW107XG4gIGNvbnN0IGZpbGVzOiBURmlsZVtdID0gcGF0aE9yRmlsZXMuZmxhdE1hcCgoYWJzdHJhY3RGaWxlT3JQYXRoKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKHsgYXBwOiBkdi5hcHAsIHBhdGhPckZpbGU6IGFic3RyYWN0RmlsZU9yUGF0aCB9KTtcbiAgICBpZiAoIWFic3RyYWN0RmlsZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgcmV0dXJuIFthYnN0cmFjdEZpbGVdO1xuICAgIH1cblxuICAgIGlmICghaXNGb2xkZXIoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIGZvbGRlcicpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRNYXJrZG93bkZpbGVzKHsgYXBwOiBkdi5hcHAsIGlzUmVjdXJzaXZlOiB0cnVlLCBwYXRoT3JGb2xkZXI6IGFic3RyYWN0RmlsZSB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYmFja2xpbmtSb3dzOiBbTGluaywgc3RyaW5nW11dW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCBsaW5rID0gZml4VGl0bGUoeyBkdiwgcGF0aE9yRmlsZTogZmlsZS5wYXRoIH0pO1xuICAgIGNvbnN0IGJhY2tsaW5rcyA9IGF3YWl0IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlKHsgYXBwOiBkdi5hcHAsIHBhdGhPckZpbGU6IGZpbGUgfSk7XG4gICAgY29uc3QgYmFja2xpbmtMaW5rcyA9IGJhY2tsaW5rcy5rZXlzKCkubWFwKChiYWNrTGlua1BhdGgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtkb3duTGluayA9IGdlbmVyYXRlTWFya2Rvd25MaW5rKHtcbiAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgIHNvdXJjZVBhdGhPckZpbGU6IGR2LmN1cnJlbnQoKS5maWxlLnBhdGgsXG4gICAgICAgIHRhcmdldFBhdGhPckZpbGU6IGVuc3VyZU5vbk51bGxhYmxlKGR2LmFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGJhY2tMaW5rUGF0aCwgZmlsZS5wYXRoKSwgJ0xpbmsgbm90IGZvdW5kJylcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYCR7bWFya2Rvd25MaW5rfSAoJHtiYWNrTGlua1BhdGh9KWA7XG4gICAgfSk7XG4gICAgaWYgKGJhY2tsaW5rTGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgYmFja2xpbmtSb3dzLnB1c2goW2xpbmssIGJhY2tsaW5rTGlua3NdKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWRUYWJsZSh7XG4gICAgZHYsXG4gICAgaGVhZGVyczogWydOb3RlJywgJ0JhY2tsaW5rcyddLFxuICAgIHJvd3M6IGJhY2tsaW5rUm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGRlbGF5ZWQgYmFja2xpbmtzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIGRlbGF5ZWQgYmFja2xpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVsYXllZEJhY2tsaW5rcyhwYXJhbXM6IFJlbmRlckRlbGF5ZWRCYWNrbGlua3NQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGZpbGVzLFxuICAgIHRpdGxlID0gJ0JhY2tsaW5rcydcbiAgfSA9IHBhcmFtcztcbiAgcmVuZGVyQ2FsbG91dCh7XG4gICAgYXN5bmMgY29udGVudFByb3ZpZGVyKCkge1xuICAgICAgYXdhaXQgcmVuZGVyQmFja2xpbmtzVGFibGUoZHYsIGZpbGVzKTtcbiAgICB9LFxuICAgIGR2LFxuICAgIGhlYWRlcjogdGl0bGVcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBkZWxheWVkIGJhY2tsaW5rcyBmb3IgYSBzcGVjaWZpYyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyKHBhcmFtczogUmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlclBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgZm9sZGVyLFxuICAgIHRpdGxlID0gJ0ZvbGRlciBCYWNrbGlua3MnXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGZvbGRlcjIgPSBmb2xkZXIgPz8gZHYuY3VycmVudCgpLmZpbGUuZm9sZGVyO1xuICByZW5kZXJEZWxheWVkQmFja2xpbmtzKHtcbiAgICBkdixcbiAgICBmaWxlczogZ2V0TWFya2Rvd25GaWxlcyh7IGFwcDogZHYuYXBwLCBpc1JlY3Vyc2l2ZTogdHJ1ZSwgcGF0aE9yRm9sZGVyOiBmb2xkZXIyIH0p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
@@ -1,4 +1,4 @@
1
- /// <reference path="./library.d.cts" />
1
+ /// <reference path="./library-references.d.cts" />
2
2
  /**
3
3
  * @file
4
4
  *
@@ -2,13 +2,7 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
-
6
5
  (function () {
7
- function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
- symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
- }
11
-
12
6
  function ensureBrowserProcess() {
13
7
  const browserProcess = {
14
8
  browser: true,
@@ -33,20 +27,7 @@ function ensureBrowserProcess() {
33
27
  existingProcessRecord["browser"] = true;
34
28
  }
35
29
 
36
- function keepName($unknown) {
37
- return $unknown;
38
- }
39
-
40
- (function initCjs() {
41
- const globalThisRecord = globalThis;
42
- ensureDisposeSymbols();
43
- globalThisRecord["__name"] ??= keepName;
44
- globalThisRecord["__extractDefault"] ??= extractDefault;
45
- ensureBrowserProcess();
46
- function extractDefault(module) {
47
- return module && module.__esModule && "default" in module ? module.default : module;
48
- }
49
- })();
30
+ ensureBrowserProcess();
50
31
  })();
51
32
  (function patchObsidianRequire() {
52
33
  const originalRequire = require;
@@ -159,4 +140,4 @@ class PluginBasesViewRegistrar {
159
140
  0 && (module.exports = {
160
141
  PluginBasesViewRegistrar
161
142
  });
162
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZXMgdmlld3MgcmVnaXN0cmFycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VzVmlld1JlZ2lzdHJhdGlvbiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEJhc2VzIHZpZXdzIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlc1ZpZXdSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgYmFzZXMgdmlldy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYmFzZXMgdmlldyByZWdpc3RyYXRpb24uXG4gICAqL1xuICByZWdpc3RlckJhc2VzVmlldzogKHBhcmFtczogQmFzZXNWaWV3UmVnaXN0cmFyUmVnaXN0ZXJCYXNlc1ZpZXdQYXJhbXMpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgYSBiYXNlcyB2aWV3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VzVmlld1JlZ2lzdHJhclJlZ2lzdGVyQmFzZXNWaWV3UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RyYXRpb24gZGV0YWlscyBmb3IgdGhlIHZpZXcuXG4gICAqL1xuICByZWFkb25seSByZWdpc3RyYXRpb246IEJhc2VzVmlld1JlZ2lzdHJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSB2aWV3IHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlld0lkOiBzdHJpbmc7XG59XG5cbnR5cGUgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyUmVnaXN0ZXJCYXNlc1ZpZXdQYXJhbXMgPSBCYXNlc1ZpZXdSZWdpc3RyYXJSZWdpc3RlckJhc2VzVmlld1BhcmFtcztcblxuLyoqXG4gKiBCYXNlcyB2aWV3cyByZWdpc3RyYXIgaW4gYW4gT2JzaWRpYW4gcGx1Z2luLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIGltcGxlbWVudHMgQmFzZXNWaWV3UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXJ9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIE9ic2lkaWFuIHBsdWdpbiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW4pIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGJhc2VzIHZpZXdcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYmFzZXMgdmlldyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJCYXNlc1ZpZXcocGFyYW1zOiBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXJSZWdpc3RlckJhc2VzVmlld1BhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyQmFzZXNWaWV3KHBhcmFtcy52aWV3SWQsIHBhcmFtcy5yZWdpc3RyYXRpb24pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsc0JBQXVCO0FBa0NoQixNQUFNLHlCQUF1RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0zRCxZQUErQixRQUFnQjtBQUFoQjtBQUFBLEVBQWlCO0FBQUEsRUFBakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPL0Isa0JBQWtCLFFBQStEO0FBQ3RGLFNBQUssT0FBTyxrQkFBa0IsT0FBTyxRQUFRLE9BQU8sWUFBWTtBQUFBLEVBQ2xFO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZXMgdmlld3MgcmVnaXN0cmFycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VzVmlld1JlZ2lzdHJhdGlvbiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEJhc2VzIHZpZXdzIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlc1ZpZXdSZWdpc3RyYXIge1xuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgYmFzZXMgdmlldy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYmFzZXMgdmlldyByZWdpc3RyYXRpb24uXG4gICAqL1xuICByZWdpc3RlckJhc2VzVmlldzogKHBhcmFtczogQmFzZXNWaWV3UmVnaXN0cmFyUmVnaXN0ZXJCYXNlc1ZpZXdQYXJhbXMpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgYSBiYXNlcyB2aWV3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VzVmlld1JlZ2lzdHJhclJlZ2lzdGVyQmFzZXNWaWV3UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RyYXRpb24gZGV0YWlscyBmb3IgdGhlIHZpZXcuXG4gICAqL1xuICByZWFkb25seSByZWdpc3RyYXRpb246IEJhc2VzVmlld1JlZ2lzdHJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSB2aWV3IHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlld0lkOiBzdHJpbmc7XG59XG5cbnR5cGUgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyUmVnaXN0ZXJCYXNlc1ZpZXdQYXJhbXMgPSBCYXNlc1ZpZXdSZWdpc3RyYXJSZWdpc3RlckJhc2VzVmlld1BhcmFtcztcblxuLyoqXG4gKiBCYXNlcyB2aWV3cyByZWdpc3RyYXIgaW4gYW4gT2JzaWRpYW4gcGx1Z2luLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIGltcGxlbWVudHMgQmFzZXNWaWV3UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXJ9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIE9ic2lkaWFuIHBsdWdpbiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW4pIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGJhc2VzIHZpZXdcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYmFzZXMgdmlldyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJCYXNlc1ZpZXcocGFyYW1zOiBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXJSZWdpc3RlckJhc2VzVmlld1BhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyQmFzZXNWaWV3KHBhcmFtcy52aWV3SWQsIHBhcmFtcy5yZWdpc3RyYXRpb24pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUF1QjtBQWtDaEIsTUFBTSx5QkFBdUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNM0QsWUFBK0IsUUFBZ0I7QUFBaEI7QUFBQSxFQUFpQjtBQUFBLEVBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLGtCQUFrQixRQUErRDtBQUN0RixTQUFLLE9BQU8sa0JBQWtCLE9BQU8sUUFBUSxPQUFPLFlBQVk7QUFBQSxFQUNsRTtBQUNGOyIsIm5hbWVzIjpbXX0=