obsidian-dev-utils 88.8.0 → 89.0.0

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 (672) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/demo-vault-helper/main.js +20 -23
  3. package/dist/integration-test-plugin/main.js +2218 -1734
  4. package/dist/lib/cjs/__merged.cjs +57 -35
  5. package/dist/lib/cjs/__merged.d.cts +12 -10
  6. package/dist/lib/cjs/abort-controller.cjs +15 -22
  7. package/dist/lib/cjs/array.cjs +27 -26
  8. package/dist/lib/cjs/array.d.cts +25 -7
  9. package/dist/lib/cjs/async-events.cjs +87 -91
  10. package/dist/lib/cjs/async-events.d.cts +50 -50
  11. package/dist/lib/cjs/async.cjs +80 -80
  12. package/dist/lib/cjs/async.d.cts +23 -23
  13. package/dist/lib/cjs/beeper.cjs +11 -15
  14. package/dist/lib/cjs/blob.cjs +14 -25
  15. package/dist/lib/cjs/codemirror/index.cjs +11 -15
  16. package/dist/lib/cjs/codemirror/state-field-spec.cjs +11 -15
  17. package/dist/lib/cjs/debug-controller.cjs +11 -15
  18. package/dist/lib/cjs/debug.cjs +24 -32
  19. package/dist/lib/cjs/debug.d.cts +1 -1
  20. package/dist/lib/cjs/disposable.cjs +59 -43
  21. package/dist/lib/cjs/disposable.d.cts +27 -8
  22. package/dist/lib/cjs/enum.cjs +11 -15
  23. package/dist/lib/cjs/error.cjs +28 -33
  24. package/dist/lib/cjs/function.cjs +30 -34
  25. package/dist/lib/cjs/function.d.cts +26 -26
  26. package/dist/lib/cjs/generated-during-build.cjs +12 -16
  27. package/dist/lib/cjs/html-element.cjs +84 -89
  28. package/dist/lib/cjs/html-element.d.cts +15 -15
  29. package/dist/lib/cjs/index.cjs +11 -15
  30. package/dist/lib/cjs/integration-test-setup.cjs +11 -15
  31. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +11 -15
  32. package/dist/lib/cjs/jest-setup.cjs +11 -15
  33. package/dist/lib/cjs/library.cjs +11 -15
  34. package/dist/lib/cjs/object-utils.cjs +120 -117
  35. package/dist/lib/cjs/object-utils.d.cts +27 -27
  36. package/dist/lib/cjs/obsidian/@types/dataview/data-model/value.d.cts +1 -1
  37. package/dist/lib/cjs/obsidian/@types/dataview/expression/field.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/@types/dataview/expression/functions.d.cts +4 -4
  39. package/dist/lib/cjs/obsidian/active-file-provider.cjs +11 -15
  40. package/dist/lib/cjs/obsidian/app.cjs +11 -15
  41. package/dist/lib/cjs/obsidian/async-with-notice.cjs +28 -32
  42. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +2 -2
  43. package/dist/lib/cjs/obsidian/attachment-path.cjs +20 -24
  44. package/dist/lib/cjs/obsidian/attachment-path.d.cts +5 -5
  45. package/dist/lib/cjs/obsidian/backlink.cjs +12 -16
  46. package/dist/lib/cjs/obsidian/bases-view-registrar.cjs +11 -15
  47. package/dist/lib/cjs/obsidian/callout.cjs +27 -26
  48. package/dist/lib/cjs/obsidian/callout.d.cts +9 -3
  49. package/dist/lib/cjs/obsidian/canvas.cjs +13 -16
  50. package/dist/lib/cjs/obsidian/case-insensitive-file-index.cjs +18 -20
  51. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +11 -15
  52. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +2 -2
  53. package/dist/lib/cjs/obsidian/code-block-reg-exp.cjs +11 -15
  54. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +18 -16
  55. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +5 -0
  56. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +56 -31
  57. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +42 -8
  58. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +11 -15
  59. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +10 -0
  60. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +26 -30
  61. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +8 -8
  62. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +12 -16
  63. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +12 -16
  64. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +13 -17
  65. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +11 -15
  66. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +11 -15
  67. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.cjs +11 -15
  68. package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.cjs +11 -15
  69. package/dist/lib/cjs/obsidian/command-registrar.cjs +11 -15
  70. package/dist/lib/cjs/obsidian/community-plugins.cjs +28 -25
  71. package/dist/lib/cjs/obsidian/community-plugins.d.cts +19 -5
  72. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +11 -15
  73. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +11 -15
  74. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +4 -4
  75. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +13 -16
  76. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +11 -15
  77. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.cjs +11 -15
  78. package/dist/lib/cjs/obsidian/components/component-ex.cjs +26 -28
  79. package/dist/lib/cjs/obsidian/components/component-ex.d.cts +3 -3
  80. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +14 -18
  81. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +2 -2
  82. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +11 -15
  83. package/dist/lib/cjs/obsidian/components/embed-extensions-component.cjs +11 -15
  84. package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.cjs +11 -15
  85. package/dist/lib/cjs/obsidian/components/index.cjs +14 -15
  86. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  87. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +11 -15
  88. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +11 -15
  89. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +29 -33
  90. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +55 -55
  91. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.cjs +297 -0
  92. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.d.cts +139 -0
  93. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +11 -15
  94. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +28 -31
  95. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +26 -30
  96. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +8 -8
  97. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +11 -15
  98. package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +13 -17
  99. package/dist/lib/cjs/obsidian/components/registry-component.cjs +11 -15
  100. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +72 -62
  101. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +12 -1
  102. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.cjs +16 -20
  103. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.d.cts +8 -8
  104. package/dist/lib/cjs/obsidian/constructors/get-dom-events-handlers-constructor.cjs +14 -18
  105. package/dist/lib/cjs/obsidian/constructors/index.cjs +11 -15
  106. package/dist/lib/cjs/obsidian/css-class.cjs +11 -15
  107. package/dist/lib/cjs/obsidian/data-handler.cjs +11 -15
  108. package/dist/lib/cjs/obsidian/dataview-link.cjs +13 -17
  109. package/dist/lib/cjs/obsidian/dataview.cjs +35 -41
  110. package/dist/lib/cjs/obsidian/dataview.d.cts +2 -2
  111. package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +13 -17
  112. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +22 -26
  113. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +23 -21
  114. package/dist/lib/cjs/obsidian/editor-extension-registrar.cjs +11 -15
  115. package/dist/lib/cjs/obsidian/editor-suggest-registrar.cjs +11 -15
  116. package/dist/lib/cjs/obsidian/editor.cjs +17 -19
  117. package/dist/lib/cjs/obsidian/events.cjs +12 -16
  118. package/dist/lib/cjs/obsidian/events.d.cts +2 -2
  119. package/dist/lib/cjs/obsidian/extensions-registrar.cjs +11 -15
  120. package/dist/lib/cjs/obsidian/file-change.cjs +76 -80
  121. package/dist/lib/cjs/obsidian/file-change.d.cts +3 -3
  122. package/dist/lib/cjs/obsidian/file-manager.cjs +33 -22
  123. package/dist/lib/cjs/obsidian/file-manager.d.cts +20 -1
  124. package/dist/lib/cjs/obsidian/file-system.cjs +15 -19
  125. package/dist/lib/cjs/obsidian/file-system.d.cts +3 -3
  126. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +11 -15
  127. package/dist/lib/cjs/obsidian/frontmatter.cjs +15 -19
  128. package/dist/lib/cjs/obsidian/hover-link-source-registrar.cjs +11 -15
  129. package/dist/lib/cjs/obsidian/html-element.cjs +13 -17
  130. package/dist/lib/cjs/obsidian/html-element.d.cts +2 -2
  131. package/dist/lib/cjs/obsidian/i18n/custom-type-options.cjs +11 -15
  132. package/dist/lib/cjs/obsidian/i18n/default-translations.cjs +11 -15
  133. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -16
  134. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +7 -0
  135. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -15
  136. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +11 -15
  137. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +11 -15
  138. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +11 -15
  139. package/dist/lib/cjs/obsidian/index.cjs +14 -15
  140. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  141. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +11 -15
  142. package/dist/lib/cjs/obsidian/link-update-progress.cjs +11 -15
  143. package/dist/lib/cjs/obsidian/link.cjs +91 -81
  144. package/dist/lib/cjs/obsidian/link.d.cts +22 -22
  145. package/dist/lib/cjs/obsidian/logger.cjs +21 -25
  146. package/dist/lib/cjs/obsidian/logger.d.cts +5 -5
  147. package/dist/lib/cjs/obsidian/loop.cjs +14 -18
  148. package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
  149. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.cjs +12 -16
  150. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +3 -3
  151. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +35 -40
  152. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -3
  153. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +12 -16
  154. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +3 -3
  155. package/dist/lib/cjs/obsidian/markdown-view.cjs +11 -15
  156. package/dist/lib/cjs/obsidian/markdown.cjs +22 -24
  157. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +11 -15
  158. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
  159. package/dist/lib/cjs/obsidian/metadata-cache.cjs +16 -20
  160. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +2 -2
  161. package/dist/lib/cjs/obsidian/modals/alert.cjs +11 -15
  162. package/dist/lib/cjs/obsidian/modals/confirm.cjs +11 -15
  163. package/dist/lib/cjs/obsidian/modals/index.cjs +11 -15
  164. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +28 -32
  165. package/dist/lib/cjs/obsidian/modals/modal.cjs +11 -15
  166. package/dist/lib/cjs/obsidian/modals/prompt.cjs +11 -15
  167. package/dist/lib/cjs/obsidian/modals/select-item.cjs +16 -20
  168. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  169. package/dist/lib/cjs/obsidian/modals/select-option.cjs +11 -15
  170. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.cjs +26 -28
  171. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.d.cts +5 -5
  172. package/dist/lib/cjs/obsidian/notebook-navigator.cjs +155 -0
  173. package/dist/lib/cjs/obsidian/notebook-navigator.d.cts +132 -0
  174. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.cjs +11 -15
  175. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +11 -15
  176. package/dist/lib/cjs/obsidian/parse-link.cjs +61 -62
  177. package/dist/lib/cjs/obsidian/parse-link.d.cts +4 -4
  178. package/dist/lib/cjs/obsidian/path-settings.cjs +27 -25
  179. package/dist/lib/cjs/obsidian/pdf.cjs +13 -17
  180. package/dist/lib/cjs/obsidian/pdf.d.cts +2 -2
  181. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -15
  182. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +11 -15
  183. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +156 -52
  184. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +17 -21
  185. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +2 -2
  186. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +20 -24
  187. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +11 -9
  188. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +29 -33
  189. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +33 -16
  190. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +11 -1
  191. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.cjs +11 -15
  192. package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +11 -15
  193. package/dist/lib/cjs/obsidian/popovers/index.cjs +11 -15
  194. package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +14 -18
  195. package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +2 -2
  196. package/dist/lib/cjs/obsidian/popovers/popover.cjs +19 -23
  197. package/dist/lib/cjs/obsidian/queue.cjs +16 -20
  198. package/dist/lib/cjs/obsidian/queue.d.cts +2 -2
  199. package/dist/lib/cjs/obsidian/react/app-context.cjs +11 -15
  200. package/dist/lib/cjs/obsidian/react/index.cjs +11 -15
  201. package/dist/lib/cjs/obsidian/reference.cjs +11 -15
  202. package/dist/lib/cjs/obsidian/resource-lock.cjs +157 -78
  203. package/dist/lib/cjs/obsidian/resource-lock.d.cts +5 -0
  204. package/dist/lib/cjs/obsidian/resource-url.cjs +12 -16
  205. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.cjs +11 -15
  206. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +2 -2
  207. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +18 -22
  208. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.d.cts +5 -5
  209. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +28 -31
  210. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +2 -2
  211. package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +14 -18
  212. package/dist/lib/cjs/obsidian/setting-components/date-component.d.cts +2 -2
  213. package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +14 -18
  214. package/dist/lib/cjs/obsidian/setting-components/date-time-component.d.cts +2 -2
  215. package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +14 -18
  216. package/dist/lib/cjs/obsidian/setting-components/email-component.d.cts +2 -2
  217. package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +11 -15
  218. package/dist/lib/cjs/obsidian/setting-components/index.cjs +11 -15
  219. package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +14 -18
  220. package/dist/lib/cjs/obsidian/setting-components/month-component.d.cts +2 -2
  221. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +17 -21
  222. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +2 -2
  223. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +14 -18
  224. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.d.cts +2 -2
  225. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +12 -16
  226. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +15 -19
  227. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +2 -2
  228. package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +14 -18
  229. package/dist/lib/cjs/obsidian/setting-components/number-component.d.cts +2 -2
  230. package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +14 -18
  231. package/dist/lib/cjs/obsidian/setting-components/password-component.d.cts +2 -2
  232. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +16 -20
  233. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.d.cts +2 -2
  234. package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +14 -18
  235. package/dist/lib/cjs/obsidian/setting-components/telephone-component.d.cts +2 -2
  236. package/dist/lib/cjs/obsidian/setting-components/text-based-component.cjs +16 -20
  237. package/dist/lib/cjs/obsidian/setting-components/text-based-component.d.cts +2 -2
  238. package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +14 -18
  239. package/dist/lib/cjs/obsidian/setting-components/time-component.d.cts +2 -2
  240. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +15 -19
  241. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.d.cts +2 -2
  242. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +16 -20
  243. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +2 -2
  244. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +18 -22
  245. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +2 -2
  246. package/dist/lib/cjs/obsidian/setting-components/typed-range-text-component.cjs +11 -15
  247. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +16 -19
  248. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +4 -4
  249. package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +14 -18
  250. package/dist/lib/cjs/obsidian/setting-components/url-component.d.cts +2 -2
  251. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +45 -49
  252. package/dist/lib/cjs/obsidian/setting-components/validator-component.d.cts +2 -2
  253. package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.cjs +11 -15
  254. package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +14 -18
  255. package/dist/lib/cjs/obsidian/setting-components/week-component.d.cts +2 -2
  256. package/dist/lib/cjs/obsidian/setting-ex.cjs +76 -80
  257. package/dist/lib/cjs/obsidian/setting-ex.d.cts +42 -42
  258. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +14 -18
  259. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +2 -2
  260. package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +11 -15
  261. package/dist/lib/cjs/obsidian/validation.cjs +11 -15
  262. package/dist/lib/cjs/obsidian/vault-delete.cjs +23 -20
  263. package/dist/lib/cjs/obsidian/vault-delete.d.cts +16 -2
  264. package/dist/lib/cjs/obsidian/vault-transaction.cjs +17 -18
  265. package/dist/lib/cjs/obsidian/vault.cjs +81 -63
  266. package/dist/lib/cjs/obsidian/vault.d.cts +32 -11
  267. package/dist/lib/cjs/obsidian/view-registrar.cjs +11 -15
  268. package/dist/lib/cjs/obsidian/workspace.cjs +12 -16
  269. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +11 -15
  270. package/dist/lib/cjs/path.cjs +18 -22
  271. package/dist/lib/cjs/path.d.cts +1 -1
  272. package/dist/lib/cjs/reg-exp.cjs +38 -35
  273. package/dist/lib/cjs/reg-exp.d.cts +4 -4
  274. package/dist/lib/cjs/script-utils/build.cjs +21 -25
  275. package/dist/lib/cjs/script-utils/build.d.cts +1 -1
  276. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +24 -28
  277. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +36 -34
  278. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +11 -15
  279. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +20 -24
  280. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +13 -17
  281. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +16 -20
  282. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +11 -15
  283. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +11 -15
  284. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +6 -2
  285. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +32 -36
  286. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +11 -15
  287. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +11 -15
  288. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +11 -15
  289. package/dist/lib/cjs/script-utils/bundlers/index.cjs +11 -15
  290. package/dist/lib/cjs/script-utils/check-project-types.cjs +13 -17
  291. package/dist/lib/cjs/script-utils/check-project-types.d.cts +12 -4
  292. package/dist/lib/cjs/script-utils/cli-utils.cjs +39 -47
  293. package/dist/lib/cjs/script-utils/cli-utils.d.cts +6 -6
  294. package/dist/lib/cjs/script-utils/code-generator.cjs +11 -15
  295. package/dist/lib/cjs/script-utils/commitlint-config.cjs +11 -15
  296. package/dist/lib/cjs/script-utils/demo-vault-coverage.cjs +22 -23
  297. package/dist/lib/cjs/script-utils/demo-vault.cjs +11 -15
  298. package/dist/lib/cjs/script-utils/env-toggle.cjs +13 -17
  299. package/dist/lib/cjs/script-utils/exec.cjs +40 -44
  300. package/dist/lib/cjs/script-utils/exec.d.cts +4 -4
  301. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +12 -16
  302. package/dist/lib/cjs/script-utils/formatters/index.cjs +11 -15
  303. package/dist/lib/cjs/script-utils/fs.cjs +13 -17
  304. package/dist/lib/cjs/script-utils/git.cjs +11 -15
  305. package/dist/lib/cjs/script-utils/index.cjs +11 -15
  306. package/dist/lib/cjs/script-utils/json.cjs +15 -19
  307. package/dist/lib/cjs/script-utils/json.d.cts +2 -2
  308. package/dist/lib/cjs/script-utils/linters/cspell.cjs +12 -16
  309. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +11 -15
  310. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +402 -16
  311. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +11 -15
  312. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +11 -15
  313. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +27 -31
  314. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -1
  315. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +27 -31
  316. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +3 -1
  317. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +21 -25
  318. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +3 -1
  319. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +11 -15
  320. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.cjs +109 -113
  321. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +3 -1
  322. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.cjs +13 -17
  323. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +3 -1
  324. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.cjs +21 -25
  325. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +3 -1
  326. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +51 -55
  327. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +9 -3
  328. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +25 -27
  329. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +6 -2
  330. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +33 -37
  331. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -1
  332. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +11 -15
  333. package/dist/lib/cjs/script-utils/linters/eslint.cjs +14 -18
  334. package/dist/lib/cjs/script-utils/linters/index.cjs +14 -15
  335. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  336. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +18 -17
  337. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +2 -2
  338. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.cjs +138 -0
  339. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.d.cts +35 -0
  340. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +20 -23
  341. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +18 -22
  342. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +54 -18
  343. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +11 -15
  344. package/dist/lib/cjs/script-utils/npm-publish.cjs +11 -15
  345. package/dist/lib/cjs/script-utils/npm-run.cjs +20 -17
  346. package/dist/lib/cjs/script-utils/npm-run.d.cts +16 -2
  347. package/dist/lib/cjs/script-utils/npm.cjs +21 -25
  348. package/dist/lib/cjs/script-utils/npm.d.cts +11 -11
  349. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +11 -15
  350. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +165 -55
  351. package/dist/lib/cjs/script-utils/root.cjs +11 -15
  352. package/dist/lib/cjs/script-utils/test-runners/index.cjs +11 -15
  353. package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs +11 -15
  354. package/dist/lib/cjs/script-utils/test-runners/vitest-config.cjs +12 -15
  355. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +11 -15
  356. package/dist/lib/cjs/script-utils/validate-declarations.cjs +11 -15
  357. package/dist/lib/cjs/script-utils/version.cjs +62 -63
  358. package/dist/lib/cjs/script-utils/version.d.cts +21 -21
  359. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +11 -15
  360. package/dist/lib/cjs/setup.cjs +11 -15
  361. package/dist/lib/cjs/setup.d.cts +1 -1
  362. package/dist/lib/cjs/strict-proxy.cjs +30 -34
  363. package/dist/lib/cjs/strict-proxy.d.cts +2 -2
  364. package/dist/lib/cjs/string.cjs +90 -93
  365. package/dist/lib/cjs/string.d.cts +60 -60
  366. package/dist/lib/cjs/transformers/date-transformer.cjs +11 -15
  367. package/dist/lib/cjs/transformers/duration-transformer.cjs +11 -15
  368. package/dist/lib/cjs/transformers/group-transformer.cjs +11 -15
  369. package/dist/lib/cjs/transformers/index.cjs +11 -15
  370. package/dist/lib/cjs/transformers/map-transformer.cjs +12 -16
  371. package/dist/lib/cjs/transformers/set-transformer.cjs +12 -16
  372. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +11 -15
  373. package/dist/lib/cjs/transformers/transformer.cjs +11 -15
  374. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +12 -16
  375. package/dist/lib/cjs/transformers/typed-transformer.cjs +11 -15
  376. package/dist/lib/cjs/two-way-map.cjs +11 -15
  377. package/dist/lib/cjs/type-guards.cjs +16 -20
  378. package/dist/lib/cjs/type-guards.d.cts +6 -6
  379. package/dist/lib/cjs/type.cjs +13 -17
  380. package/dist/lib/cjs/type.d.cts +2 -2
  381. package/dist/lib/cjs/url.cjs +18 -22
  382. package/dist/lib/cjs/url.d.cts +4 -4
  383. package/dist/lib/cjs/value-provider.cjs +15 -19
  384. package/dist/lib/cjs/value-provider.d.cts +6 -6
  385. package/dist/lib/cjs/value-wrapper.cjs +11 -15
  386. package/dist/lib/cjs/vitest-setup.cjs +11 -15
  387. package/dist/lib/esm/__merged.d.mts +12 -10
  388. package/dist/lib/esm/__merged.mjs +51 -23
  389. package/dist/lib/esm/abort-controller.mjs +5 -8
  390. package/dist/lib/esm/array.d.mts +25 -7
  391. package/dist/lib/esm/array.mjs +16 -12
  392. package/dist/lib/esm/async-events.d.mts +50 -50
  393. package/dist/lib/esm/async-events.mjs +81 -78
  394. package/dist/lib/esm/async.d.mts +23 -23
  395. package/dist/lib/esm/async.mjs +70 -66
  396. package/dist/lib/esm/blob.mjs +4 -11
  397. package/dist/lib/esm/debug.d.mts +1 -1
  398. package/dist/lib/esm/debug.mjs +14 -18
  399. package/dist/lib/esm/disposable.d.mts +27 -8
  400. package/dist/lib/esm/disposable.mjs +47 -29
  401. package/dist/lib/esm/error.mjs +18 -19
  402. package/dist/lib/esm/function.d.mts +26 -26
  403. package/dist/lib/esm/function.mjs +20 -20
  404. package/dist/lib/esm/generated-during-build.mjs +1 -1
  405. package/dist/lib/esm/html-element.d.mts +15 -15
  406. package/dist/lib/esm/html-element.mjs +74 -75
  407. package/dist/lib/esm/object-utils.d.mts +27 -27
  408. package/dist/lib/esm/object-utils.mjs +109 -102
  409. package/dist/lib/esm/obsidian/@types/dataview/data-model/value.d.mts +1 -1
  410. package/dist/lib/esm/obsidian/@types/dataview/expression/field.d.mts +1 -1
  411. package/dist/lib/esm/obsidian/@types/dataview/expression/functions.d.mts +4 -4
  412. package/dist/lib/esm/obsidian/app.mjs +1 -1
  413. package/dist/lib/esm/obsidian/async-with-notice.d.mts +2 -2
  414. package/dist/lib/esm/obsidian/async-with-notice.mjs +18 -18
  415. package/dist/lib/esm/obsidian/attachment-path.d.mts +5 -5
  416. package/dist/lib/esm/obsidian/attachment-path.mjs +10 -10
  417. package/dist/lib/esm/obsidian/backlink.mjs +2 -2
  418. package/dist/lib/esm/obsidian/callout.d.mts +9 -3
  419. package/dist/lib/esm/obsidian/callout.mjs +17 -12
  420. package/dist/lib/esm/obsidian/canvas.mjs +3 -2
  421. package/dist/lib/esm/obsidian/case-insensitive-file-index.mjs +8 -6
  422. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +2 -2
  423. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +5 -0
  424. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +8 -2
  425. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +42 -8
  426. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +46 -17
  427. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +10 -0
  428. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
  429. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +8 -8
  430. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +16 -16
  431. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +2 -2
  432. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +2 -2
  433. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +3 -3
  434. package/dist/lib/esm/obsidian/community-plugins.d.mts +19 -5
  435. package/dist/lib/esm/obsidian/community-plugins.mjs +17 -11
  436. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +4 -4
  437. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +1 -1
  438. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -2
  439. package/dist/lib/esm/obsidian/components/component-ex.d.mts +3 -3
  440. package/dist/lib/esm/obsidian/components/component-ex.mjs +16 -14
  441. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +2 -2
  442. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +4 -4
  443. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  444. package/dist/lib/esm/obsidian/components/index.mjs +3 -1
  445. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +5 -5
  446. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +55 -55
  447. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +19 -19
  448. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.d.mts +139 -0
  449. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.mjs +196 -0
  450. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +18 -17
  451. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +8 -8
  452. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +18 -18
  453. package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +3 -3
  454. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +12 -1
  455. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +62 -48
  456. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.d.mts +8 -8
  457. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.mjs +6 -6
  458. package/dist/lib/esm/obsidian/constructors/get-dom-events-handlers-constructor.mjs +4 -4
  459. package/dist/lib/esm/obsidian/data-handler.mjs +1 -1
  460. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -3
  461. package/dist/lib/esm/obsidian/dataview.d.mts +2 -2
  462. package/dist/lib/esm/obsidian/dataview.mjs +25 -27
  463. package/dist/lib/esm/obsidian/demo-vault-helper.mjs +4 -3
  464. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +12 -12
  465. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +13 -7
  466. package/dist/lib/esm/obsidian/editor.mjs +7 -5
  467. package/dist/lib/esm/obsidian/events.d.mts +2 -2
  468. package/dist/lib/esm/obsidian/events.mjs +2 -2
  469. package/dist/lib/esm/obsidian/file-change.d.mts +3 -3
  470. package/dist/lib/esm/obsidian/file-change.mjs +67 -67
  471. package/dist/lib/esm/obsidian/file-manager.d.mts +20 -1
  472. package/dist/lib/esm/obsidian/file-manager.mjs +22 -8
  473. package/dist/lib/esm/obsidian/file-system.d.mts +3 -3
  474. package/dist/lib/esm/obsidian/file-system.mjs +4 -4
  475. package/dist/lib/esm/obsidian/frontmatter.mjs +5 -5
  476. package/dist/lib/esm/obsidian/html-element.d.mts +2 -2
  477. package/dist/lib/esm/obsidian/html-element.mjs +3 -3
  478. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +7 -0
  479. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -2
  480. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  481. package/dist/lib/esm/obsidian/index.mjs +3 -1
  482. package/dist/lib/esm/obsidian/link.d.mts +22 -22
  483. package/dist/lib/esm/obsidian/link.mjs +76 -62
  484. package/dist/lib/esm/obsidian/logger.d.mts +5 -5
  485. package/dist/lib/esm/obsidian/logger.mjs +11 -11
  486. package/dist/lib/esm/obsidian/loop.d.mts +1 -1
  487. package/dist/lib/esm/obsidian/loop.mjs +4 -4
  488. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +3 -3
  489. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.mjs +2 -2
  490. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -3
  491. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +25 -26
  492. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +3 -3
  493. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +2 -2
  494. package/dist/lib/esm/obsidian/markdown.mjs +12 -10
  495. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -1
  496. package/dist/lib/esm/obsidian/metadata-cache.d.mts +2 -2
  497. package/dist/lib/esm/obsidian/metadata-cache.mjs +6 -6
  498. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  499. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +18 -18
  500. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  501. package/dist/lib/esm/obsidian/modals/select-item.mjs +6 -6
  502. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.d.mts +5 -5
  503. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.mjs +16 -14
  504. package/dist/lib/esm/obsidian/notebook-navigator.d.mts +132 -0
  505. package/dist/lib/esm/obsidian/notebook-navigator.mjs +49 -0
  506. package/dist/lib/esm/obsidian/parse-link.d.mts +4 -4
  507. package/dist/lib/esm/obsidian/parse-link.mjs +51 -48
  508. package/dist/lib/esm/obsidian/path-settings.mjs +17 -11
  509. package/dist/lib/esm/obsidian/pdf.d.mts +2 -2
  510. package/dist/lib/esm/obsidian/pdf.mjs +3 -3
  511. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +156 -52
  512. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
  513. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +2 -2
  514. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +7 -7
  515. package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +11 -9
  516. package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +10 -10
  517. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +20 -20
  518. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +11 -1
  519. package/dist/lib/esm/obsidian/plugin/plugin.mjs +23 -2
  520. package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +2 -2
  521. package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +4 -4
  522. package/dist/lib/esm/obsidian/popovers/popover.mjs +9 -9
  523. package/dist/lib/esm/obsidian/queue.d.mts +2 -2
  524. package/dist/lib/esm/obsidian/queue.mjs +6 -6
  525. package/dist/lib/esm/obsidian/resource-lock.d.mts +5 -0
  526. package/dist/lib/esm/obsidian/resource-lock.mjs +147 -64
  527. package/dist/lib/esm/obsidian/resource-url.mjs +2 -2
  528. package/dist/lib/esm/obsidian/ribbon-icon-registrar.d.mts +2 -2
  529. package/dist/lib/esm/obsidian/ribbon-icon-registrar.mjs +1 -1
  530. package/dist/lib/esm/obsidian/setting-components/checkbox-component.d.mts +5 -5
  531. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +8 -8
  532. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +2 -2
  533. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +18 -17
  534. package/dist/lib/esm/obsidian/setting-components/date-component.d.mts +2 -2
  535. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +4 -4
  536. package/dist/lib/esm/obsidian/setting-components/date-time-component.d.mts +2 -2
  537. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +4 -4
  538. package/dist/lib/esm/obsidian/setting-components/email-component.d.mts +2 -2
  539. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +4 -4
  540. package/dist/lib/esm/obsidian/setting-components/month-component.d.mts +2 -2
  541. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +4 -4
  542. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +2 -2
  543. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +7 -7
  544. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.d.mts +2 -2
  545. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +4 -4
  546. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
  547. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +2 -2
  548. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +5 -5
  549. package/dist/lib/esm/obsidian/setting-components/number-component.d.mts +2 -2
  550. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +4 -4
  551. package/dist/lib/esm/obsidian/setting-components/password-component.d.mts +2 -2
  552. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +4 -4
  553. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.d.mts +2 -2
  554. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +6 -6
  555. package/dist/lib/esm/obsidian/setting-components/telephone-component.d.mts +2 -2
  556. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +4 -4
  557. package/dist/lib/esm/obsidian/setting-components/text-based-component.d.mts +2 -2
  558. package/dist/lib/esm/obsidian/setting-components/text-based-component.mjs +6 -6
  559. package/dist/lib/esm/obsidian/setting-components/time-component.d.mts +2 -2
  560. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +4 -4
  561. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.d.mts +2 -2
  562. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +5 -5
  563. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +2 -2
  564. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +6 -6
  565. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +2 -2
  566. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +8 -8
  567. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +4 -4
  568. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +6 -5
  569. package/dist/lib/esm/obsidian/setting-components/url-component.d.mts +2 -2
  570. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +4 -4
  571. package/dist/lib/esm/obsidian/setting-components/validator-component.d.mts +2 -2
  572. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +35 -35
  573. package/dist/lib/esm/obsidian/setting-components/week-component.d.mts +2 -2
  574. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +4 -4
  575. package/dist/lib/esm/obsidian/setting-ex.d.mts +42 -42
  576. package/dist/lib/esm/obsidian/setting-ex.mjs +66 -66
  577. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +2 -2
  578. package/dist/lib/esm/obsidian/setting-group-ex.mjs +4 -4
  579. package/dist/lib/esm/obsidian/vault-delete.d.mts +16 -2
  580. package/dist/lib/esm/obsidian/vault-delete.mjs +12 -6
  581. package/dist/lib/esm/obsidian/vault-transaction.mjs +8 -4
  582. package/dist/lib/esm/obsidian/vault.d.mts +32 -11
  583. package/dist/lib/esm/obsidian/vault.mjs +67 -47
  584. package/dist/lib/esm/obsidian/view-registrar.mjs +1 -1
  585. package/dist/lib/esm/obsidian/workspace.mjs +2 -2
  586. package/dist/lib/esm/path.d.mts +1 -1
  587. package/dist/lib/esm/path.mjs +7 -7
  588. package/dist/lib/esm/reg-exp.d.mts +4 -4
  589. package/dist/lib/esm/reg-exp.mjs +28 -21
  590. package/dist/lib/esm/script-utils/build.d.mts +1 -1
  591. package/dist/lib/esm/script-utils/build.mjs +15 -12
  592. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +14 -14
  593. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +26 -20
  594. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +10 -10
  595. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -3
  596. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +6 -6
  597. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +6 -2
  598. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  599. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +20 -20
  600. package/dist/lib/esm/script-utils/check-project-types.d.mts +12 -4
  601. package/dist/lib/esm/script-utils/check-project-types.mjs +3 -3
  602. package/dist/lib/esm/script-utils/cli-utils.d.mts +6 -6
  603. package/dist/lib/esm/script-utils/cli-utils.mjs +29 -33
  604. package/dist/lib/esm/script-utils/demo-vault-coverage.mjs +12 -9
  605. package/dist/lib/esm/script-utils/env-toggle.mjs +3 -3
  606. package/dist/lib/esm/script-utils/exec.d.mts +4 -4
  607. package/dist/lib/esm/script-utils/exec.mjs +32 -32
  608. package/dist/lib/esm/script-utils/formatters/dprint.mjs +2 -2
  609. package/dist/lib/esm/script-utils/fs.mjs +3 -3
  610. package/dist/lib/esm/script-utils/json.d.mts +2 -2
  611. package/dist/lib/esm/script-utils/json.mjs +5 -5
  612. package/dist/lib/esm/script-utils/linters/cspell.mjs +2 -2
  613. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +392 -2
  614. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -1
  615. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +17 -17
  616. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +3 -1
  617. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +17 -17
  618. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +3 -1
  619. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +11 -11
  620. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +3 -1
  621. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.mjs +99 -99
  622. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +3 -1
  623. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.mjs +3 -3
  624. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.mts +3 -1
  625. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.mjs +11 -11
  626. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +9 -3
  627. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +41 -41
  628. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +6 -2
  629. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +15 -13
  630. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -1
  631. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +23 -23
  632. package/dist/lib/esm/script-utils/linters/eslint.mjs +4 -4
  633. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  634. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  635. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +2 -2
  636. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +8 -3
  637. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.d.mts +35 -0
  638. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.mjs +33 -0
  639. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -9
  640. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +54 -18
  641. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +8 -8
  642. package/dist/lib/esm/script-utils/npm-run.d.mts +16 -2
  643. package/dist/lib/esm/script-utils/npm-run.mjs +9 -3
  644. package/dist/lib/esm/script-utils/npm.d.mts +11 -11
  645. package/dist/lib/esm/script-utils/npm.mjs +11 -11
  646. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +165 -55
  647. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
  648. package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +2 -1
  649. package/dist/lib/esm/script-utils/validate-declarations.mjs +1 -1
  650. package/dist/lib/esm/script-utils/version.d.mts +21 -21
  651. package/dist/lib/esm/script-utils/version.mjs +48 -45
  652. package/dist/lib/esm/setup.d.mts +1 -1
  653. package/dist/lib/esm/setup.mjs +1 -1
  654. package/dist/lib/esm/strict-proxy.d.mts +2 -2
  655. package/dist/lib/esm/strict-proxy.mjs +20 -20
  656. package/dist/lib/esm/string.d.mts +60 -60
  657. package/dist/lib/esm/string.mjs +80 -79
  658. package/dist/lib/esm/transformers/map-transformer.mjs +2 -2
  659. package/dist/lib/esm/transformers/set-transformer.mjs +2 -2
  660. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +2 -2
  661. package/dist/lib/esm/type-guards.d.mts +6 -6
  662. package/dist/lib/esm/type-guards.mjs +6 -6
  663. package/dist/lib/esm/type.d.mts +2 -2
  664. package/dist/lib/esm/type.mjs +3 -3
  665. package/dist/lib/esm/url.d.mts +4 -4
  666. package/dist/lib/esm/url.mjs +8 -8
  667. package/dist/lib/esm/value-provider.d.mts +6 -6
  668. package/dist/lib/esm/value-provider.mjs +5 -5
  669. package/obsidian/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
  670. package/obsidian/notebook-navigator/package.json +6 -0
  671. package/package.json +17 -33
  672. package/script-utils/linters/markdownlint-ignores/package.json +6 -0
@@ -36,9 +36,11 @@ import {
36
36
  join,
37
37
  toPosixPath
38
38
  } from "../../../path.mjs";
39
- let devInstanceTransportPromise;
40
- let isDevInstanceCleanupRegistered = false;
41
- let isDevInstanceDisposed = false;
39
+ const moduleState = {
40
+ devInstanceTransportPromise: void 0,
41
+ isDevInstanceCleanupRegistered: false,
42
+ isDevInstanceDisposed: false
43
+ };
42
44
  function copyToObsidianPluginsFolderPlugin(params) {
43
45
  const {
44
46
  distFolder,
@@ -74,12 +76,12 @@ function copyToObsidianPluginsFolderPlugin(params) {
74
76
  };
75
77
  }
76
78
  async function getOrLaunchDevInstance(vaultPath) {
77
- devInstanceTransportPromise ??= launchDevInstance(vaultPath);
79
+ moduleState.devInstanceTransportPromise ??= launchDevInstance(vaultPath);
78
80
  try {
79
- return await devInstanceTransportPromise;
80
- } catch (e) {
81
- devInstanceTransportPromise = void 0;
82
- throw e;
81
+ return await moduleState.devInstanceTransportPromise;
82
+ } catch (error) {
83
+ moduleState.devInstanceTransportPromise = void 0;
84
+ throw error;
83
85
  }
84
86
  }
85
87
  async function installAndEnableHotReload(params) {
@@ -90,21 +92,25 @@ async function installAndEnableHotReload(params) {
90
92
  const vaultPath = dirname(obsidianConfigFolder);
91
93
  const transport = await getOrLaunchDevInstance(vaultPath);
92
94
  await evalInObsidian({
95
+ // eslint-disable-next-line unicorn/name-replacements -- `args` is declared by `obsidian-integration-testing`; renaming it here would not match the API.
93
96
  args: { pluginName },
94
- // eslint-disable-next-line no-shadow -- No actual shadowing as the function is executed externally.
97
+ // eslint-disable-next-line no-shadow, unicorn/name-replacements -- No actual shadowing as the function is executed externally, and `fn` is declared by `obsidian-integration-testing`.
95
98
  async fn({ app, obsidianModule, pluginName: pluginName2 }) {
96
99
  const HOT_RELOAD_PLUGIN_ID = "hot-reload";
97
100
  const COMMUNITY_PLUGINS_REGISTRY_URL = "https://raw.githubusercontent.com/obsidianmd/obsidian-releases/HEAD/community-plugins.json";
98
101
  const { requestUrl } = obsidianModule;
99
- if (!app.plugins.manifests[HOT_RELOAD_PLUGIN_ID]) {
100
- const registryEntries = (await requestUrl(COMMUNITY_PLUGINS_REGISTRY_URL)).json;
102
+ if (!Object.hasOwn(app.plugins.manifests, HOT_RELOAD_PLUGIN_ID)) {
103
+ const registryResponse = await requestUrl(COMMUNITY_PLUGINS_REGISTRY_URL);
104
+ const registryEntries = registryResponse.json;
101
105
  const entry = registryEntries.find((candidate) => candidate.id === HOT_RELOAD_PLUGIN_ID);
102
106
  if (!entry) {
103
107
  throw new Error(`Plugin '${HOT_RELOAD_PLUGIN_ID}' was not found in the Obsidian community plugins registry.`);
104
108
  }
105
- const latestRelease = (await requestUrl(`https://api.github.com/repos/${entry.repo}/releases/latest`)).json;
109
+ const latestReleaseResponse = await requestUrl(`https://api.github.com/repos/${entry.repo}/releases/latest`);
110
+ const latestRelease = latestReleaseResponse.json;
106
111
  const version = latestRelease.tag_name;
107
- const manifest = (await requestUrl(`https://github.com/${entry.repo}/releases/download/${version}/manifest.json`)).json;
112
+ const manifestResponse = await requestUrl(`https://github.com/${entry.repo}/releases/download/${version}/manifest.json`);
113
+ const manifest = manifestResponse.json;
108
114
  await app.plugins.installPlugin(entry.repo, version, manifest);
109
115
  }
110
116
  if (!app.plugins.enabledPlugins.has(HOT_RELOAD_PLUGIN_ID)) {
@@ -121,18 +127,18 @@ async function launchDevInstance(vaultPath) {
121
127
  const transport = await createTransportFromOptions();
122
128
  try {
123
129
  await transport.registerVault(vaultPath);
124
- } catch (e) {
130
+ } catch (error) {
125
131
  transport.disposeSync?.();
126
- throw e;
132
+ throw error;
127
133
  }
128
134
  registerDevInstanceCleanup(transport);
129
135
  return transport;
130
136
  }
131
137
  function registerDevInstanceCleanup(transport) {
132
- if (isDevInstanceCleanupRegistered) {
138
+ if (moduleState.isDevInstanceCleanupRegistered) {
133
139
  return;
134
140
  }
135
- isDevInstanceCleanupRegistered = true;
141
+ moduleState.isDevInstanceCleanupRegistered = true;
136
142
  process.on("exit", disposeDevInstance);
137
143
  for (const signal of ["SIGHUP", "SIGINT", "SIGTERM"]) {
138
144
  process.once(signal, () => {
@@ -141,14 +147,14 @@ function registerDevInstanceCleanup(transport) {
141
147
  });
142
148
  }
143
149
  function disposeDevInstance() {
144
- if (isDevInstanceDisposed) {
150
+ if (moduleState.isDevInstanceDisposed) {
145
151
  return;
146
152
  }
147
- isDevInstanceDisposed = true;
153
+ moduleState.isDevInstanceDisposed = true;
148
154
  transport.disposeSync?.();
149
155
  }
150
156
  }
151
157
  export {
152
158
  copyToObsidianPluginsFolderPlugin
153
159
  };
154
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5NYW5pZmVzdCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuaW1wb3J0IHtcbiAgY3AsXG4gIG1rZGlyXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7XG4gIGNyZWF0ZVRyYW5zcG9ydEZyb21PcHRpb25zLFxuICBldmFsSW5PYnNpZGlhblxufSBmcm9tICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuLi8uLi8uLi9wYXRoLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2lufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciB3aGVyZSB0aGUgYnVpbHQgZmlsZXMgYXJlIGxvY2F0ZWQuXG4gICAqL1xuICByZWFkb25seSBkaXN0Rm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIG9mIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBwbHVnaW4gd2lsbCBub3QgY29weSBmaWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgZW50cnkgaW4gT2JzaWRpYW4ncyBjb21tdW5pdHkgcGx1Z2lucyByZWdpc3RyeSAoYGNvbW11bml0eS1wbHVnaW5zLmpzb25gKS5cbiAqL1xuaW50ZXJmYWNlIENvbW11bml0eVBsdWdpblJlZ2lzdHJ5RW50cnkge1xuICAvKipcbiAgICogVGhlIHBsdWdpbiBpZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgb3duZXIvbmFtZWAgR2l0SHViIHJlcG9zaXRvcnkgdGhlIHBsdWdpbiBpcyBwdWJsaXNoZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc3Vic2V0IG9mIGEgR2l0SHViIHJlbGVhc2Ugd2UgcmVhZC5cbiAqL1xuaW50ZXJmYWNlIEdpdEh1YlJlbGVhc2Uge1xuICAvKipcbiAgICogVGhlIHJlbGVhc2UgdGFnLCBhIGJhcmUgdmVyc2lvbiBzdWNoIGFzIGAxLjIuM2AuXG4gICAqL1xuICByZWFkb25seSB0YWdfbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBpbnN0YWxsQW5kRW5hYmxlSG90UmVsb2FkfS5cbiAqL1xuaW50ZXJmYWNlIEluc3RhbGxBbmRFbmFibGVIb3RSZWxvYWRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciBvZiB0aGUgT2JzaWRpYW4gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidWlsdCBPYnNpZGlhbiBwbHVnaW4gdG8gZW5hYmxlIG9uY2UgSG90UmVsb2FkIGlzIGluIHBsYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xufVxuXG4vLyBUaGUgYG5wbSBydW4gZGV2YC1vd25lZCBPYnNpZGlhbiBpbnN0YW5jZTogbGF1bmNoZWQgb24gdGhlIGZpcnN0IHJlYnVpbGQgYW5kIHJldXNlZCBhY3Jvc3MgcmVidWlsZHMuXG4vLyBJdCBpcyBjbG9zZWQgd2hlbiB0aGUgYG5wbSBydW4gZGV2YCBwcm9jZXNzIHRlcm1pbmF0ZXMgKHNlZSBgcmVnaXN0ZXJEZXZJbnN0YW5jZUNsZWFudXBgKS5cbmxldCBkZXZJbnN0YW5jZVRyYW5zcG9ydFByb21pc2U6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHwgdW5kZWZpbmVkO1xubGV0IGlzRGV2SW5zdGFuY2VDbGVhbnVwUmVnaXN0ZXJlZCA9IGZhbHNlO1xubGV0IGlzRGV2SW5zdGFuY2VEaXNwb3NlZCA9IGZhbHNlO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dCB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbihwYXJhbXM6IENvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpblBhcmFtcyk6IFBsdWdpbiB7XG4gIGNvbnN0IHtcbiAgICBkaXN0Rm9sZGVyLFxuICAgIGlzUHJvZHVjdGlvbkJ1aWxkLFxuICAgIHBsdWdpbk5hbWVcbiAgfSA9IHBhcmFtcztcbiAgbGV0IHtcbiAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlclxuICB9ID0gcGFyYW1zO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9ic2lkaWFuQ29uZmlnRm9sZGVyKSB7XG4gICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ2NvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbicpKFxuICAgICAgICAgICAgJ05vIE9ic2lkaWFuIGNvbmZpZyBmb2xkZXIgY29uZmlndXJlZC4gYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgaW4gc3lzdGVtIG9yIGluIGAuZW52YCBmaWxlLiBUaGUgY29tcGlsZWQgcGx1Z2luIHdpbGwgbm90IGJlIGNvcGllZCBpbnRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyLidcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyID0gdG9Qb3NpeFBhdGgob2JzaWRpYW5Db25maWdGb2xkZXIpO1xuXG4gICAgICAgIGNvbnN0IHBsdWdpbkZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zJywgcGx1Z2luTmFtZSk7XG4gICAgICAgIGF3YWl0IG1rZGlyKHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIGF3YWl0IGNwKGRpc3RGb2xkZXIsIHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgYXdhaXQgaW5zdGFsbEFuZEVuYWJsZUhvdFJlbG9hZCh7XG4gICAgICAgICAgb2JzaWRpYW5Db25maWdGb2xkZXIsXG4gICAgICAgICAgcGx1Z2luTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBgbnBtIHJ1biBkZXZgLW93bmVkIE9ic2lkaWFuIGluc3RhbmNlIGZvciB0aGUgZ2l2ZW4gdmF1bHQsIGxhdW5jaGluZyBpdCBvbiBmaXJzdCB1c2UgYW5kXG4gKiByZXVzaW5nIGl0IG9uIHN1YnNlcXVlbnQgcmVidWlsZHMuXG4gKlxuICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIgdG8gb3Blbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgb3duZWQge0BsaW5rIE9ic2lkaWFuVHJhbnNwb3J0fS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0T3JMYXVuY2hEZXZJbnN0YW5jZSh2YXVsdFBhdGg6IHN0cmluZyk6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHtcbiAgZGV2SW5zdGFuY2VUcmFuc3BvcnRQcm9taXNlID8/PSBsYXVuY2hEZXZJbnN0YW5jZSh2YXVsdFBhdGgpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBkZXZJbnN0YW5jZVRyYW5zcG9ydFByb21pc2U7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBDbGVhciB0aGUgY2FjaGUgc28gYSBsYXRlciByZWJ1aWxkIHJldHJpZXMgdGhlIGxhdW5jaC5cbiAgICBkZXZJbnN0YW5jZVRyYW5zcG9ydFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbGxzIHRoZSBIb3RSZWxvYWQgcGx1Z2luIGZyb20gdGhlIG9mZmljaWFsIGNvbW11bml0eSBzdG9yZSAoaWYgbm90IGFscmVhZHkgaW5zdGFsbGVkKSwgZW5hYmxlcyBpdFxuICogKGlmIG5vdCBhbHJlYWR5IGVuYWJsZWQpLCBhbmQgZW5hYmxlcyB0aGUgZnJlc2hseS1idWlsdCBwbHVnaW4gXHUyMDE0IGFsbCB0aHJvdWdoIHRoZSBgbnBtIHJ1biBkZXZgLW93bmVkXG4gKiBPYnNpZGlhbiBpbnN0YW5jZSwgc28gSG90UmVsb2FkIHRoZW4gYXV0by1yZWZyZXNoZXMgdGhlIGRlcGxveWVkIHBsdWdpbiBvbiBldmVyeSByZWJ1aWxkLlxuICpcbiAqIFRoZSBpbnN0YWxsIGdvZXMgdGhyb3VnaCBPYnNpZGlhbidzIG93biBgaW5zdGFsbFBsdWdpbmAgKHRoZSBjb21tdW5pdHktc3RvcmUgbWVjaGFuaXNtKSwgYW5kIGV2ZXJ5IHN0ZXBcbiAqIHJ1bnMgYWdhaW5zdCB0aGUgb3duZWQgaW5zdGFuY2Ugb3ZlciBDRFA7IGFueSBmYWlsdXJlIHN1cmZhY2VzICh0aGUgZGV2IGJ1aWxkIHJlcG9ydHMgaXQpIHJhdGhlciB0aGFuXG4gKiBiZWluZyBzaWxlbnRseSBzd2FsbG93ZWQuXG4gKlxuICogVGhlIGluc3RhbGwtaWYtbWlzc2luZyAvIGVuYWJsZS1pZi1kaXNhYmxlZCBsb2dpYyBiZWxvdyBpbnRlbnRpb25hbGx5IG1pcnJvcnMgdGhlIHB1YmxpY1xuICogYGluc3RhbGxDb21tdW5pdHlQbHVnaW5gIC8gYGVuYWJsZUNvbW11bml0eVBsdWdpbmAgaGVscGVycyBpbiBgc3JjL29ic2lkaWFuL2NvbW11bml0eS1wbHVnaW5zLnRzYC4gSXRcbiAqIGNhbm5vdCBpbXBvcnQgYW5kIGNhbGwgdGhlbTogdGhlIGBmbmAgaXMgc2VyaWFsaXplZCAoYHRvU3RyaW5nKClgKSBhbmQgZXhlY3V0ZWQgaW4gdGhlIHJlbmRlcmVyLCBhbmRcbiAqIHRoaXMgYnVpbGQtb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgaXMgYmFyZSBcdTIwMTQgaXQgaGFzIG5vIGRldi11dGlscyBgbGliYCBwcm92aWRlciB3aXJlZCAodGhhdCByZXNvbHZlciBpc1xuICogcmVnaXN0ZXJlZCBvbmx5IGluIHRoZSBpbnRlZ3JhdGlvbi10ZXN0IHNldHVwLCB3aG9zZSBmaXh0dXJlIHB1Ymxpc2hlcyB0aGUgbWVyZ2VkIHN1cmZhY2Ugb24gYHdpbmRvd2ApLFxuICogc28gdGhlIGNsb3N1cmUgaGFzIG5vIGFjY2VzcyB0byB0aGUgbGlicmFyeSBzdXJmYWNlIGFuZCBtdXN0IGlubGluZSB0aGUgZXF1aXZhbGVudCBzdGVwcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBJbnN0YWxsQW5kRW5hYmxlSG90UmVsb2FkUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBIb3RSZWxvYWQgYW5kIHRoZSBidWlsdCBwbHVnaW4gYXJlIGluc3RhbGxlZCBhbmQgZW5hYmxlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFuZEVuYWJsZUhvdFJlbG9hZChwYXJhbXM6IEluc3RhbGxBbmRFbmFibGVIb3RSZWxvYWRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyLFxuICAgIHBsdWdpbk5hbWVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgdmF1bHRQYXRoID0gZGlybmFtZShvYnNpZGlhbkNvbmZpZ0ZvbGRlcik7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IGF3YWl0IGdldE9yTGF1bmNoRGV2SW5zdGFuY2UodmF1bHRQYXRoKTtcbiAgYXdhaXQgZXZhbEluT2JzaWRpYW4oe1xuICAgIGFyZ3M6IHsgcGx1Z2luTmFtZSB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3cgLS0gTm8gYWN0dWFsIHNoYWRvd2luZyBhcyB0aGUgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgZXh0ZXJuYWxseS5cbiAgICBhc3luYyBmbih7IGFwcCwgb2JzaWRpYW5Nb2R1bGUsIHBsdWdpbk5hbWUgfSkge1xuICAgICAgY29uc3QgSE9UX1JFTE9BRF9QTFVHSU5fSUQgPSAnaG90LXJlbG9hZCc7XG4gICAgICBjb25zdCBDT01NVU5JVFlfUExVR0lOU19SRUdJU1RSWV9VUkwgPSAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29ic2lkaWFubWQvb2JzaWRpYW4tcmVsZWFzZXMvSEVBRC9jb21tdW5pdHktcGx1Z2lucy5qc29uJztcbiAgICAgIGNvbnN0IHsgcmVxdWVzdFVybCB9ID0gb2JzaWRpYW5Nb2R1bGU7XG5cbiAgICAgIGlmICghYXBwLnBsdWdpbnMubWFuaWZlc3RzW0hPVF9SRUxPQURfUExVR0lOX0lEXSkge1xuICAgICAgICBjb25zdCByZWdpc3RyeUVudHJpZXMgPSAoYXdhaXQgcmVxdWVzdFVybChDT01NVU5JVFlfUExVR0lOU19SRUdJU1RSWV9VUkwpKS5qc29uIGFzIENvbW11bml0eVBsdWdpblJlZ2lzdHJ5RW50cnlbXTtcbiAgICAgICAgY29uc3QgZW50cnkgPSByZWdpc3RyeUVudHJpZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaWQgPT09IEhPVF9SRUxPQURfUExVR0lOX0lEKTtcbiAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGx1Z2luICcke0hPVF9SRUxPQURfUExVR0lOX0lEfScgd2FzIG5vdCBmb3VuZCBpbiB0aGUgT2JzaWRpYW4gY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXRlc3RSZWxlYXNlID0gKGF3YWl0IHJlcXVlc3RVcmwoYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtlbnRyeS5yZXBvfS9yZWxlYXNlcy9sYXRlc3RgKSkuanNvbiBhcyBHaXRIdWJSZWxlYXNlO1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbGF0ZXN0UmVsZWFzZS50YWdfbmFtZTtcbiAgICAgICAgY29uc3QgbWFuaWZlc3QgPSAoYXdhaXQgcmVxdWVzdFVybChgaHR0cHM6Ly9naXRodWIuY29tLyR7ZW50cnkucmVwb30vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS9tYW5pZmVzdC5qc29uYCkpLmpzb24gYXMgUGx1Z2luTWFuaWZlc3Q7XG4gICAgICAgIGF3YWl0IGFwcC5wbHVnaW5zLmluc3RhbGxQbHVnaW4oZW50cnkucmVwbywgdmVyc2lvbiwgbWFuaWZlc3QpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhIT1RfUkVMT0FEX1BMVUdJTl9JRCkpIHtcbiAgICAgICAgYXdhaXQgYXBwLnBsdWdpbnMuZW5hYmxlUGx1Z2luQW5kU2F2ZShIT1RfUkVMT0FEX1BMVUdJTl9JRCk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGFwcC5wbHVnaW5zLmVuYWJsZVBsdWdpbkFuZFNhdmUocGx1Z2luTmFtZSk7XG4gICAgfSxcbiAgICBzaG91bGRTa2lwUHJlZmxpZ2h0Q2hlY2tzOiB0cnVlLFxuICAgIHRyYW5zcG9ydCxcbiAgICB2YXVsdFBhdGhcbiAgfSk7XG59XG5cbi8qKlxuICogTGF1bmNoZXMgYSBmcmVzaCBvd25lZCBPYnNpZGlhbiBpbnN0YW5jZSAoaXNvbGF0ZWQgdXNlci1kYXRhIGRpcikgYW5kIG9wZW5zIHRoZSBnaXZlbiB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlciB0byBvcGVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBsYXVuY2hlZCB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnR9LlxuICovXG5hc3luYyBmdW5jdGlvbiBsYXVuY2hEZXZJbnN0YW5jZSh2YXVsdFBhdGg6IHN0cmluZyk6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHtcbiAgY29uc3QgdHJhbnNwb3J0ID0gYXdhaXQgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMoKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0cmFuc3BvcnQucmVnaXN0ZXJWYXVsdCh2YXVsdFBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdHJhbnNwb3J0LmRpc3Bvc2VTeW5jPy4oKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHJlZ2lzdGVyRGV2SW5zdGFuY2VDbGVhbnVwKHRyYW5zcG9ydCk7XG4gIHJldHVybiB0cmFuc3BvcnQ7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHByb2Nlc3MtZXhpdCBhbmQgc2lnbmFsIGhhbmRsZXJzIChvbmNlKSB0aGF0IHN5bmNocm9ub3VzbHkgY2xvc2UgdGhlIG93bmVkIE9ic2lkaWFuXG4gKiBpbnN0YW5jZSB3aGVuIHRoZSBgbnBtIHJ1biBkZXZgIHByb2Nlc3MgdGVybWluYXRlcy5cbiAqXG4gKiBAcGFyYW0gdHJhbnNwb3J0IC0gVGhlIG93bmVkIHRyYW5zcG9ydCB0byBkaXNwb3NlIG9uIHNodXRkb3duLlxuICovXG5mdW5jdGlvbiByZWdpc3RlckRldkluc3RhbmNlQ2xlYW51cCh0cmFuc3BvcnQ6IE9ic2lkaWFuVHJhbnNwb3J0KTogdm9pZCB7XG4gIGlmIChpc0Rldkluc3RhbmNlQ2xlYW51cFJlZ2lzdGVyZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaXNEZXZJbnN0YW5jZUNsZWFudXBSZWdpc3RlcmVkID0gdHJ1ZTtcblxuICAvLyBgZXhpdGAgY292ZXJzIGFueSBgcHJvY2Vzcy5leGl0KClgLCBidXQgYSBkZWZhdWx0IEN0cmwrQyB0ZXJtaW5hdGVzIFdJVEhPVVQgZmlyaW5nIGBleGl0YCwgc28gdGhlIHNpZ25hbCBoYW5kbGVycyBndWFyYW50ZWUgdGhlIG93bmVkIE9ic2lkaWFuIGlzIGtpbGxlZCBvbiBzaHV0ZG93bi5cbiAgcHJvY2Vzcy5vbignZXhpdCcsIGRpc3Bvc2VEZXZJbnN0YW5jZSk7XG4gIGZvciAoY29uc3Qgc2lnbmFsIG9mIFsnU0lHSFVQJywgJ1NJR0lOVCcsICdTSUdURVJNJ10gYXMgY29uc3QpIHtcbiAgICBwcm9jZXNzLm9uY2Uoc2lnbmFsLCAoKSA9PiB7XG4gICAgICBkaXNwb3NlRGV2SW5zdGFuY2UoKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZGlzcG9zZURldkluc3RhbmNlKCk6IHZvaWQge1xuICAgIGlmIChpc0Rldkluc3RhbmNlRGlzcG9zZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNEZXZJbnN0YW5jZURpc3Bvc2VkID0gdHJ1ZTtcbiAgICB0cmFuc3BvcnQuZGlzcG9zZVN5bmM/LigpO1xuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FB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
160
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5NYW5pZmVzdCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuaW1wb3J0IHtcbiAgY3AsXG4gIG1rZGlyXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7XG4gIGNyZWF0ZVRyYW5zcG9ydEZyb21PcHRpb25zLFxuICBldmFsSW5PYnNpZGlhblxufSBmcm9tICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuLi8uLi8uLi9wYXRoLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2lufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciB3aGVyZSB0aGUgYnVpbHQgZmlsZXMgYXJlIGxvY2F0ZWQuXG4gICAqL1xuICByZWFkb25seSBkaXN0Rm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIG9mIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBwbHVnaW4gd2lsbCBub3QgY29weSBmaWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgZW50cnkgaW4gT2JzaWRpYW4ncyBjb21tdW5pdHkgcGx1Z2lucyByZWdpc3RyeSAoYGNvbW11bml0eS1wbHVnaW5zLmpzb25gKS5cbiAqL1xuaW50ZXJmYWNlIENvbW11bml0eVBsdWdpblJlZ2lzdHJ5RW50cnkge1xuICAvKipcbiAgICogVGhlIHBsdWdpbiBpZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgb3duZXIvbmFtZWAgR2l0SHViIHJlcG9zaXRvcnkgdGhlIHBsdWdpbiBpcyBwdWJsaXNoZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc3Vic2V0IG9mIGEgR2l0SHViIHJlbGVhc2Ugd2UgcmVhZC5cbiAqL1xuaW50ZXJmYWNlIEdpdEh1YlJlbGVhc2Uge1xuICAvKipcbiAgICogVGhlIHJlbGVhc2UgdGFnLCBhIGJhcmUgdmVyc2lvbiBzdWNoIGFzIGAxLjIuM2AuXG4gICAqL1xuICByZWFkb25seSB0YWdfbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBpbnN0YWxsQW5kRW5hYmxlSG90UmVsb2FkfS5cbiAqL1xuaW50ZXJmYWNlIEluc3RhbGxBbmRFbmFibGVIb3RSZWxvYWRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciBvZiB0aGUgT2JzaWRpYW4gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidWlsdCBPYnNpZGlhbiBwbHVnaW4gdG8gZW5hYmxlIG9uY2UgSG90UmVsb2FkIGlzIGluIHBsYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xufVxuXG4vLyBUaGUgYG5wbSBydW4gZGV2YC1vd25lZCBPYnNpZGlhbiBpbnN0YW5jZTogbGF1bmNoZWQgb24gdGhlIGZpcnN0IHJlYnVpbGQgYW5kIHJldXNlZCBhY3Jvc3MgcmVidWlsZHMuXG4vLyBJdCBpcyBjbG9zZWQgd2hlbiB0aGUgYG5wbSBydW4gZGV2YCBwcm9jZXNzIHRlcm1pbmF0ZXMgKHNlZSBgcmVnaXN0ZXJEZXZJbnN0YW5jZUNsZWFudXBgKS5cbi8qKlxuTW9kdWxlLWxldmVsIG11dGFibGUgc3RhdGUsIGhlbGQgaW4gb25lIG9iamVjdCBzbyBlYWNoIG11dGF0aW9uIG5hbWVzIGl0IGV4cGxpY2l0bHkuXG4gKi9cbmludGVyZmFjZSBNb2R1bGVTdGF0ZSB7XG4gIGRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZTogUHJvbWlzZTxPYnNpZGlhblRyYW5zcG9ydD4gfCB1bmRlZmluZWQ7XG4gIGlzRGV2SW5zdGFuY2VDbGVhbnVwUmVnaXN0ZXJlZDogYm9vbGVhbjtcbiAgaXNEZXZJbnN0YW5jZURpc3Bvc2VkOiBib29sZWFuO1xufVxuXG5jb25zdCBtb2R1bGVTdGF0ZTogTW9kdWxlU3RhdGUgPSB7XG4gIGRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZTogdW5kZWZpbmVkLFxuICBpc0Rldkluc3RhbmNlQ2xlYW51cFJlZ2lzdGVyZWQ6IGZhbHNlLFxuICBpc0Rldkluc3RhbmNlRGlzcG9zZWQ6IGZhbHNlXG59O1xuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgY29waWVzIHRoZSBidWlsZCBvdXRwdXQgdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4ocGFyYW1zOiBDb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW5QYXJhbXMpOiBQbHVnaW4ge1xuICBjb25zdCB7XG4gICAgZGlzdEZvbGRlcixcbiAgICBpc1Byb2R1Y3Rpb25CdWlsZCxcbiAgICBwbHVnaW5OYW1lXG4gIH0gPSBwYXJhbXM7XG4gIGxldCB7XG4gICAgb2JzaWRpYW5Db25maWdGb2xkZXJcbiAgfSA9IHBhcmFtcztcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlcicsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvYnNpZGlhbkNvbmZpZ0ZvbGRlcikge1xuICAgICAgICAgIGdldExpYkRlYnVnZ2VyKCdjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4nKShcbiAgICAgICAgICAgICdObyBPYnNpZGlhbiBjb25maWcgZm9sZGVyIGNvbmZpZ3VyZWQuIGBPQlNJRElBTl9DT05GSUdfRk9MREVSYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0IGluIHN5c3RlbSBvciBpbiBgLmVudmAgZmlsZS4gVGhlIGNvbXBpbGVkIHBsdWdpbiB3aWxsIG5vdCBiZSBjb3BpZWQgaW50byBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci4nXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHRvUG9zaXhQYXRoKG9ic2lkaWFuQ29uZmlnRm9sZGVyKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5Gb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucycsIHBsdWdpbk5hbWUpO1xuICAgICAgICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICBhd2FpdCBjcChkaXN0Rm9sZGVyLCBwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIGF3YWl0IGluc3RhbGxBbmRFbmFibGVIb3RSZWxvYWQoe1xuICAgICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyLFxuICAgICAgICAgIHBsdWdpbk5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYG5wbSBydW4gZGV2YC1vd25lZCBPYnNpZGlhbiBpbnN0YW5jZSBmb3IgdGhlIGdpdmVuIHZhdWx0LCBsYXVuY2hpbmcgaXQgb24gZmlyc3QgdXNlIGFuZFxuICogcmV1c2luZyBpdCBvbiBzdWJzZXF1ZW50IHJlYnVpbGRzLlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyIHRvIG9wZW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIG93bmVkIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydH0uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE9yTGF1bmNoRGV2SW5zdGFuY2UodmF1bHRQYXRoOiBzdHJpbmcpOiBQcm9taXNlPE9ic2lkaWFuVHJhbnNwb3J0PiB7XG4gIG1vZHVsZVN0YXRlLmRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZSA/Pz0gbGF1bmNoRGV2SW5zdGFuY2UodmF1bHRQYXRoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgbW9kdWxlU3RhdGUuZGV2SW5zdGFuY2VUcmFuc3BvcnRQcm9taXNlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIENsZWFyIHRoZSBjYWNoZSBzbyBhIGxhdGVyIHJlYnVpbGQgcmV0cmllcyB0aGUgbGF1bmNoLlxuICAgIG1vZHVsZVN0YXRlLmRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbGxzIHRoZSBIb3RSZWxvYWQgcGx1Z2luIGZyb20gdGhlIG9mZmljaWFsIGNvbW11bml0eSBzdG9yZSAoaWYgbm90IGFscmVhZHkgaW5zdGFsbGVkKSwgZW5hYmxlcyBpdFxuICogKGlmIG5vdCBhbHJlYWR5IGVuYWJsZWQpLCBhbmQgZW5hYmxlcyB0aGUgZnJlc2hseS1idWlsdCBwbHVnaW4gXHUyMDE0IGFsbCB0aHJvdWdoIHRoZSBgbnBtIHJ1biBkZXZgLW93bmVkXG4gKiBPYnNpZGlhbiBpbnN0YW5jZSwgc28gSG90UmVsb2FkIHRoZW4gYXV0by1yZWZyZXNoZXMgdGhlIGRlcGxveWVkIHBsdWdpbiBvbiBldmVyeSByZWJ1aWxkLlxuICpcbiAqIFRoZSBpbnN0YWxsIGdvZXMgdGhyb3VnaCBPYnNpZGlhbidzIG93biBgaW5zdGFsbFBsdWdpbmAgKHRoZSBjb21tdW5pdHktc3RvcmUgbWVjaGFuaXNtKSwgYW5kIGV2ZXJ5IHN0ZXBcbiAqIHJ1bnMgYWdhaW5zdCB0aGUgb3duZWQgaW5zdGFuY2Ugb3ZlciBDRFA7IGFueSBmYWlsdXJlIHN1cmZhY2VzICh0aGUgZGV2IGJ1aWxkIHJlcG9ydHMgaXQpIHJhdGhlciB0aGFuXG4gKiBiZWluZyBzaWxlbnRseSBzd2FsbG93ZWQuXG4gKlxuICogVGhlIGluc3RhbGwtaWYtbWlzc2luZyAvIGVuYWJsZS1pZi1kaXNhYmxlZCBsb2dpYyBiZWxvdyBpbnRlbnRpb25hbGx5IG1pcnJvcnMgdGhlIHB1YmxpY1xuICogYGluc3RhbGxDb21tdW5pdHlQbHVnaW5gIC8gYGVuYWJsZUNvbW11bml0eVBsdWdpbmAgaGVscGVycyBpbiBgc3JjL29ic2lkaWFuL2NvbW11bml0eS1wbHVnaW5zLnRzYC4gSXRcbiAqIGNhbm5vdCBpbXBvcnQgYW5kIGNhbGwgdGhlbTogdGhlIGBmbmAgaXMgc2VyaWFsaXplZCAoYHRvU3RyaW5nKClgKSBhbmQgZXhlY3V0ZWQgaW4gdGhlIHJlbmRlcmVyLCBhbmRcbiAqIHRoaXMgYnVpbGQtb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgaXMgYmFyZSBcdTIwMTQgaXQgaGFzIG5vIGRldi11dGlscyBgbGliYCBwcm92aWRlciB3aXJlZCAodGhhdCByZXNvbHZlciBpc1xuICogcmVnaXN0ZXJlZCBvbmx5IGluIHRoZSBpbnRlZ3JhdGlvbi10ZXN0IHNldHVwLCB3aG9zZSBmaXh0dXJlIHB1Ymxpc2hlcyB0aGUgbWVyZ2VkIHN1cmZhY2Ugb24gYHdpbmRvd2ApLFxuICogc28gdGhlIGNsb3N1cmUgaGFzIG5vIGFjY2VzcyB0byB0aGUgbGlicmFyeSBzdXJmYWNlIGFuZCBtdXN0IGlubGluZSB0aGUgZXF1aXZhbGVudCBzdGVwcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBJbnN0YWxsQW5kRW5hYmxlSG90UmVsb2FkUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBIb3RSZWxvYWQgYW5kIHRoZSBidWlsdCBwbHVnaW4gYXJlIGluc3RhbGxlZCBhbmQgZW5hYmxlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFuZEVuYWJsZUhvdFJlbG9hZChwYXJhbXM6IEluc3RhbGxBbmRFbmFibGVIb3RSZWxvYWRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyLFxuICAgIHBsdWdpbk5hbWVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgdmF1bHRQYXRoID0gZGlybmFtZShvYnNpZGlhbkNvbmZpZ0ZvbGRlcik7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IGF3YWl0IGdldE9yTGF1bmNoRGV2SW5zdGFuY2UodmF1bHRQYXRoKTtcbiAgYXdhaXQgZXZhbEluT2JzaWRpYW4oe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyBkZWNsYXJlZCBieSBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2A7IHJlbmFtaW5nIGl0IGhlcmUgd291bGQgbm90IG1hdGNoIHRoZSBBUEkuXG4gICAgYXJnczogeyBwbHVnaW5OYW1lIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNoYWRvdywgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBObyBhY3R1YWwgc2hhZG93aW5nIGFzIHRoZSBmdW5jdGlvbiBpcyBleGVjdXRlZCBleHRlcm5hbGx5LCBhbmQgYGZuYCBpcyBkZWNsYXJlZCBieSBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AuXG4gICAgYXN5bmMgZm4oeyBhcHAsIG9ic2lkaWFuTW9kdWxlLCBwbHVnaW5OYW1lIH0pIHtcbiAgICAgIGNvbnN0IEhPVF9SRUxPQURfUExVR0lOX0lEID0gJ2hvdC1yZWxvYWQnO1xuICAgICAgY29uc3QgQ09NTVVOSVRZX1BMVUdJTlNfUkVHSVNUUllfVVJMID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL0hFQUQvY29tbXVuaXR5LXBsdWdpbnMuanNvbic7XG4gICAgICBjb25zdCB7IHJlcXVlc3RVcmwgfSA9IG9ic2lkaWFuTW9kdWxlO1xuXG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oYXBwLnBsdWdpbnMubWFuaWZlc3RzLCBIT1RfUkVMT0FEX1BMVUdJTl9JRCkpIHtcbiAgICAgICAgY29uc3QgcmVnaXN0cnlSZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoQ09NTVVOSVRZX1BMVUdJTlNfUkVHSVNUUllfVVJMKTtcbiAgICAgICAgY29uc3QgcmVnaXN0cnlFbnRyaWVzID0gcmVnaXN0cnlSZXNwb25zZS5qc29uIGFzIENvbW11bml0eVBsdWdpblJlZ2lzdHJ5RW50cnlbXTtcbiAgICAgICAgY29uc3QgZW50cnkgPSByZWdpc3RyeUVudHJpZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaWQgPT09IEhPVF9SRUxPQURfUExVR0lOX0lEKTtcbiAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGx1Z2luICcke0hPVF9SRUxPQURfUExVR0lOX0lEfScgd2FzIG5vdCBmb3VuZCBpbiB0aGUgT2JzaWRpYW4gY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXRlc3RSZWxlYXNlUmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0VXJsKGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7ZW50cnkucmVwb30vcmVsZWFzZXMvbGF0ZXN0YCk7XG4gICAgICAgIGNvbnN0IGxhdGVzdFJlbGVhc2UgPSBsYXRlc3RSZWxlYXNlUmVzcG9uc2UuanNvbiBhcyBHaXRIdWJSZWxlYXNlO1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbGF0ZXN0UmVsZWFzZS50YWdfbmFtZTtcbiAgICAgICAgY29uc3QgbWFuaWZlc3RSZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoYGh0dHBzOi8vZ2l0aHViLmNvbS8ke2VudHJ5LnJlcG99L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vbWFuaWZlc3QuanNvbmApO1xuICAgICAgICBjb25zdCBtYW5pZmVzdCA9IG1hbmlmZXN0UmVzcG9uc2UuanNvbiBhcyBQbHVnaW5NYW5pZmVzdDtcbiAgICAgICAgYXdhaXQgYXBwLnBsdWdpbnMuaW5zdGFsbFBsdWdpbihlbnRyeS5yZXBvLCB2ZXJzaW9uLCBtYW5pZmVzdCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghYXBwLnBsdWdpbnMuZW5hYmxlZFBsdWdpbnMuaGFzKEhPVF9SRUxPQURfUExVR0lOX0lEKSkge1xuICAgICAgICBhd2FpdCBhcHAucGx1Z2lucy5lbmFibGVQbHVnaW5BbmRTYXZlKEhPVF9SRUxPQURfUExVR0lOX0lEKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgYXBwLnBsdWdpbnMuZW5hYmxlUGx1Z2luQW5kU2F2ZShwbHVnaW5OYW1lKTtcbiAgICB9LFxuICAgIHNob3VsZFNraXBQcmVmbGlnaHRDaGVja3M6IHRydWUsXG4gICAgdHJhbnNwb3J0LFxuICAgIHZhdWx0UGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBMYXVuY2hlcyBhIGZyZXNoIG93bmVkIE9ic2lkaWFuIGluc3RhbmNlIChpc29sYXRlZCB1c2VyLWRhdGEgZGlyKSBhbmQgb3BlbnMgdGhlIGdpdmVuIHZhdWx0LlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyIHRvIG9wZW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGxhdW5jaGVkIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydH0uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxhdW5jaERldkluc3RhbmNlKHZhdWx0UGF0aDogc3RyaW5nKTogUHJvbWlzZTxPYnNpZGlhblRyYW5zcG9ydD4ge1xuICBjb25zdCB0cmFuc3BvcnQgPSBhd2FpdCBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucygpO1xuICB0cnkge1xuICAgIGF3YWl0IHRyYW5zcG9ydC5yZWdpc3RlclZhdWx0KHZhdWx0UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdHJhbnNwb3J0LmRpc3Bvc2VTeW5jPy4oKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICByZWdpc3RlckRldkluc3RhbmNlQ2xlYW51cCh0cmFuc3BvcnQpO1xuICByZXR1cm4gdHJhbnNwb3J0O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBwcm9jZXNzLWV4aXQgYW5kIHNpZ25hbCBoYW5kbGVycyAob25jZSkgdGhhdCBzeW5jaHJvbm91c2x5IGNsb3NlIHRoZSBvd25lZCBPYnNpZGlhblxuICogaW5zdGFuY2Ugd2hlbiB0aGUgYG5wbSBydW4gZGV2YCBwcm9jZXNzIHRlcm1pbmF0ZXMuXG4gKlxuICogQHBhcmFtIHRyYW5zcG9ydCAtIFRoZSBvd25lZCB0cmFuc3BvcnQgdG8gZGlzcG9zZSBvbiBzaHV0ZG93bi5cbiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJEZXZJbnN0YW5jZUNsZWFudXAodHJhbnNwb3J0OiBPYnNpZGlhblRyYW5zcG9ydCk6IHZvaWQge1xuICBpZiAobW9kdWxlU3RhdGUuaXNEZXZJbnN0YW5jZUNsZWFudXBSZWdpc3RlcmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG1vZHVsZVN0YXRlLmlzRGV2SW5zdGFuY2VDbGVhbnVwUmVnaXN0ZXJlZCA9IHRydWU7XG5cbiAgLy8gYGV4aXRgIGNvdmVycyBhbnkgYHByb2Nlc3MuZXhpdCgpYCwgYnV0IGEgZGVmYXVsdCBDdHJsK0MgdGVybWluYXRlcyBXSVRIT1VUIGZpcmluZyBgZXhpdGAsIHNvIHRoZSBzaWduYWwgaGFuZGxlcnMgZ3VhcmFudGVlIHRoZSBvd25lZCBPYnNpZGlhbiBpcyBraWxsZWQgb24gc2h1dGRvd24uXG4gIHByb2Nlc3Mub24oJ2V4aXQnLCBkaXNwb3NlRGV2SW5zdGFuY2UpO1xuICBmb3IgKGNvbnN0IHNpZ25hbCBvZiBbJ1NJR0hVUCcsICdTSUdJTlQnLCAnU0lHVEVSTSddIGFzIGNvbnN0KSB7XG4gICAgcHJvY2Vzcy5vbmNlKHNpZ25hbCwgKCkgPT4ge1xuICAgICAgZGlzcG9zZURldkluc3RhbmNlKCk7XG4gICAgICBwcm9jZXNzLmV4aXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRpc3Bvc2VEZXZJbnN0YW5jZSgpOiB2b2lkIHtcbiAgICBpZiAobW9kdWxlU3RhdGUuaXNEZXZJbnN0YW5jZURpc3Bvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG1vZHVsZVN0YXRlLmlzRGV2SW5zdGFuY2VEaXNwb3NlZCA9IHRydWU7XG4gICAgdHJhbnNwb3J0LmRpc3Bvc2VTeW5jPy4oKTtcbiAgfVxufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLE9BQU8sYUFBYTtBQUNwQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMsc0JBQXNCO0FBQy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEs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
@@ -67,11 +67,11 @@ async function getDependenciesToBundle() {
67
67
  };
68
68
  const buildContext = await context(buildOptions);
69
69
  await invokeEsbuild(buildContext, true);
70
- return Array.from(dependenciesToBundle).sort();
70
+ return [...dependenciesToBundle].sort();
71
71
  }
72
72
  async function getDependenciesToSkip() {
73
73
  const packageJson = await readPackageJson(getFolderName(import.meta.url));
74
- const dependenciesToSkip = /* @__PURE__ */ new Set([...builtinModules, ...Object.keys(packageJson.dependencies ?? {}).filter(canSkipFromBundling)]);
74
+ const dependenciesToSkip = /* @__PURE__ */ new Set([...builtinModules, ...Object.keys(packageJson.dependencies ?? {}).filter((dependency) => canSkipFromBundling(dependency))]);
75
75
  return dependenciesToSkip;
76
76
  }
77
77
  function canSkipFromBundling(moduleName) {
@@ -96,17 +96,17 @@ function extractDependenciesToBundlePlugin(params) {
96
96
  return {
97
97
  name: "test",
98
98
  setup(build) {
99
- build.onResolve({ filter: /^[^./]/ }, (args) => {
100
- if (!args.importer.endsWith(ObsidianDevUtilsRepoPaths.DtsExtension)) {
99
+ build.onResolve({ filter: /^[^./]/ }, ($arguments) => {
100
+ if (!$arguments.importer.endsWith(ObsidianDevUtilsRepoPaths.DtsExtension)) {
101
101
  const moduleName = trimStart({
102
- prefix: "node:",
103
- str: ensureNonNullable(args.path.split("/")[0], "Wrong path")
102
+ $string: ensureNonNullable($arguments.path.split("/", 1)[0], "Wrong path"),
103
+ prefix: "node:"
104
104
  });
105
- if (!dependenciesToSkip.has(args.path) && !dependenciesToSkip.has(moduleName)) {
106
- dependenciesToBundle.add(args.path);
105
+ if (!dependenciesToSkip.has($arguments.path) && !dependenciesToSkip.has(moduleName)) {
106
+ dependenciesToBundle.add($arguments.path);
107
107
  }
108
108
  }
109
- return { external: true, path: args.path };
109
+ return { external: true, path: $arguments.path };
110
110
  });
111
111
  }
112
112
  };
@@ -115,4 +115,4 @@ export {
115
115
  getDependenciesToBundle,
116
116
  getDependenciesToSkip
117
117
  };
118
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZGVwZW5kZW5jeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdGllcyBmb3IgbWFuYWdpbmcgZGVwZW5kZW5jaWVzIGR1cmluZyB0aGUgZXNidWlsZCBwcm9jZXNzLlxuICogSXQgaW5jbHVkZXMgZnVuY3Rpb25zIHRvIGRldGVybWluZSB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIHNraXBwZWQgYW5kIHdoaWNoXG4gKiBzaG91bGQgYmUgYnVuZGxlZCwgYXMgd2VsbCBhcyBhbiBlc2J1aWxkIHBsdWdpbiBmb3IgZXh0cmFjdGluZyBkZXBlbmRlbmNpZXMgdG8gYnVuZGxlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJlc29sdmVzIGRlcGVuZGVuY2llcyBhdCBidWlsZCB0aW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEJ1aWxkT3B0aW9ucyxcbiAgUGx1Z2luXG59IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBjb250ZXh0IH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQge1xuICBidWlsdGluTW9kdWxlcyxcbiAgY3JlYXRlUmVxdWlyZVxufSBmcm9tICdub2RlOm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGJhbm5lcixcbiAgaW52b2tlRXNidWlsZFxufSBmcm9tICcuL29ic2lkaWFuLXBsdWdpbi1idWlsZGVyLnRzJztcbmltcG9ydCB7IHByZXByb2Nlc3NQbHVnaW4gfSBmcm9tICcuL3ByZXByb2Nlc3MtcGx1Z2luLnRzJztcblxuY29uc3QgZXNtUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2lufS5cbiAqL1xuaW50ZXJmYWNlIEV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBBIHNldCB3aGVyZSB0aGUgbmFtZXMgb2YgZGVwZW5kZW5jaWVzIHRvIGJlIGJ1bmRsZWQgd2lsbCBiZSBhZGRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llc1RvQnVuZGxlOiBTZXQ8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgZGVwZW5kZW5jeSBuYW1lcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyBidW5kbGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llc1RvU2tpcDogU2V0PHN0cmluZz47XG59XG5cbmludGVyZmFjZSBNb2R1bGVXaXRoRGVmYXVsdEV4cG9ydCB7XG4gIGRlZmF1bHQ6IHVua25vd247XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGJ1bmRsZWQgYnkgZXNidWlsZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gYnVuZGxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9CdW5kbGUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb1NraXAgPSBhd2FpdCBnZXREZXBlbmRlbmNpZXNUb1NraXAoKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9CdW5kbGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBlbnRyeVBvaW50czogW2pvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TcmMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlUcyldLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBvdXRkaXI6ICdub3RoaW5nLXdpbGwtYmUtd3JpdHRlbi1vbi1kaXNrLXNvLXRoaXMtZG9lcy1ub3QtbWF0dGVyJyxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpbih7XG4gICAgICAgIGRlcGVuZGVuY2llc1RvQnVuZGxlLFxuICAgICAgICBkZXBlbmRlbmNpZXNUb1NraXBcbiAgICAgIH0pXG4gICAgXSxcbiAgICBzb3VyY2VtYXA6ICdpbmxpbmUnLFxuICAgIHRhcmdldDogJ0VTMjAyMicsXG4gICAgdHJlZVNoYWtpbmc6IHRydWUsXG4gICAgd3JpdGU6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0ID0gYXdhaXQgY29udGV4dChidWlsZE9wdGlvbnMpO1xuICBhd2FpdCBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dCwgdHJ1ZSk7XG4gIHJldHVybiBBcnJheS5mcm9tKGRlcGVuZGVuY2llc1RvQnVuZGxlKS5zb3J0KCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGRlcGVuZGVuY2llcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyB0aGUgYnVuZGxpbmcgcHJvY2Vzcy5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIFNldH0gb2YgZGVwZW5kZW5jeSBuYW1lcyB0byBza2lwLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9Ta2lwKCk6IFByb21pc2U8U2V0PHN0cmluZz4+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9Ta2lwID0gbmV3IFNldDxzdHJpbmc+KFsuLi5idWlsdGluTW9kdWxlcywgLi4uT2JqZWN0LmtleXMocGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID8/IHt9KS5maWx0ZXIoY2FuU2tpcEZyb21CdW5kbGluZyldKTtcbiAgcmV0dXJuIGRlcGVuZGVuY2llc1RvU2tpcDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqL1xuZnVuY3Rpb24gY2FuU2tpcEZyb21CdW5kbGluZyhtb2R1bGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnQHR5cGVzLycpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZS5zdGFydHNXaXRoKCdvYnNpZGlhbicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZSA9PT0gJ2VzYnVpbGQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG1vZHVsZSA9IGVzbVJlcXVpcmUobW9kdWxlTmFtZSkgYXMgTW9kdWxlV2l0aERlZmF1bHRFeHBvcnQ7XG4gICAgcmV0dXJuICFtb2R1bGUuZGVmYXVsdDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGlkZW50aWZpZXMgd2hpY2ggZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBidW5kbGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBsdWdpbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZXh0cmFjdHMgZGVwZW5kZW5jaWVzIHRvIGJ1bmRsZS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luKHBhcmFtczogRXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luUGFyYW1zKTogUGx1Z2luIHtcbiAgY29uc3QgeyBkZXBlbmRlbmNpZXNUb0J1bmRsZSwgZGVwZW5kZW5jaWVzVG9Ta2lwIH0gPSBwYXJhbXM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3Rlc3QnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC9eW14uL10vIH0sIChhcmdzKSA9PiB7XG4gICAgICAgIGlmICghYXJncy5pbXBvcnRlci5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkR0c0V4dGVuc2lvbikpIHtcbiAgICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gdHJpbVN0YXJ0KHtcbiAgICAgICAgICAgIHByZWZpeDogJ25vZGU6JyxcbiAgICAgICAgICAgIHN0cjogZW5zdXJlTm9uTnVsbGFibGUoYXJncy5wYXRoLnNwbGl0KCcvJylbMF0sICdXcm9uZyBwYXRoJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMoYXJncy5wYXRoKSAmJiAhZGVwZW5kZW5jaWVzVG9Ta2lwLmhhcyhtb2R1bGVOYW1lKSkge1xuICAgICAgICAgICAgZGVwZW5kZW5jaWVzVG9CdW5kbGUuYWRkKGFyZ3MucGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGV4dGVybmFsOiB0cnVlLCBwYXRoOiBhcmdzLnBhdGggfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsU0FBUyxlQUFlO0FBQ3hCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVA7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsd0JBQXdCO0FBRWpDLE1BQU0sYUFBYSxjQUFjLFlBQVksR0FBRztBQTBCaEQsZUFBc0IsMEJBQTZDO0FBQ2pFLFFBQU0scUJBQXFCLE1BQU0sc0JBQXNCO0FBQ3ZELFFBQU0sdUJBQXVCLG9CQUFJLElBQVk7QUFFN0MsUUFBTSxlQUE2QjtBQUFBLElBQ2pDLFFBQVE7QUFBQSxNQUNOLElBQUk7QUFBQSxJQUNOO0FBQUEsSUFDQSxRQUFRO0FBQUEsSUFDUixhQUFhLENBQUMsS0FBSywwQkFBMEIsS0FBSywwQkFBMEIsU0FBUywwQkFBMEIsS0FBSyxDQUFDO0FBQUEsSUFDckgsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLE1BQ1AsaUJBQWlCO0FBQUEsTUFDakIsa0NBQWtDO0FBQUEsUUFDaEM7QUFBQSxRQUNBO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLElBQ0EsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGVBQWUsTUFBTSxRQUFRLFlBQVk7QUFDL0MsUUFBTSxjQUFjLGNBQWMsSUFBSTtBQUN0QyxTQUFPLE1BQU0sS0FBSyxvQkFBb0IsRUFBRSxLQUFLO0FBQy9DO0FBT0EsZUFBc0Isd0JBQThDO0FBQ2xFLFFBQU0sY0FBYyxNQUFNLGdCQUFnQixjQUFjLFlBQVksR0FBRyxDQUFDO0FBQ3hFLFFBQU0scUJBQXFCLG9CQUFJLElBQVksQ0FBQyxHQUFHLGdCQUFnQixHQUFHLE9BQU8sS0FBSyxZQUFZLGdCQUFnQixDQUFDLENBQUMsRUFBRSxPQUFPLG1CQUFtQixDQUFDLENBQUM7QUFDMUksU0FBTztBQUNUO0FBUUEsU0FBUyxvQkFBb0IsWUFBNkI7QUFDeEQsTUFBSSxXQUFXLFdBQVcsU0FBUyxHQUFHO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxXQUFXLFdBQVcsVUFBVSxHQUFHO0FBQ3JDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxlQUFlLFdBQVc7QUFDNUIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJO0FBQ0YsVUFBTSxTQUFTLFdBQVcsVUFBVTtBQUNwQyxXQUFPLENBQUMsT0FBTztBQUFBLEVBQ2pCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBUUEsU0FBUyxrQ0FBa0MsUUFBeUQ7QUFDbEcsUUFBTSxFQUFFLHNCQUFzQixtQkFBbUIsSUFBSTtBQUNyRCxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxVQUFVLEVBQUUsUUFBUSxTQUFTLEdBQUcsQ0FBQyxTQUFTO0FBQzlDLFlBQUksQ0FBQyxLQUFLLFNBQVMsU0FBUywwQkFBMEIsWUFBWSxHQUFHO0FBQ25FLGdCQUFNLGFBQWEsVUFBVTtBQUFBLFlBQzNCLFFBQVE7QUFBQSxZQUNSLEtBQUssa0JBQWtCLEtBQUssS0FBSyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsWUFBWTtBQUFBLFVBQzlELENBQUM7QUFDRCxjQUFJLENBQUMsbUJBQW1CLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLEdBQUc7QUFDN0UsaUNBQXFCLElBQUksS0FBSyxJQUFJO0FBQUEsVUFDcEM7QUFBQSxRQUNGO0FBQ0EsZUFBTyxFQUFFLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSztBQUFBLE1BQzNDLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
118
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZGVwZW5kZW5jeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdGllcyBmb3IgbWFuYWdpbmcgZGVwZW5kZW5jaWVzIGR1cmluZyB0aGUgZXNidWlsZCBwcm9jZXNzLlxuICogSXQgaW5jbHVkZXMgZnVuY3Rpb25zIHRvIGRldGVybWluZSB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIHNraXBwZWQgYW5kIHdoaWNoXG4gKiBzaG91bGQgYmUgYnVuZGxlZCwgYXMgd2VsbCBhcyBhbiBlc2J1aWxkIHBsdWdpbiBmb3IgZXh0cmFjdGluZyBkZXBlbmRlbmNpZXMgdG8gYnVuZGxlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJlc29sdmVzIGRlcGVuZGVuY2llcyBhdCBidWlsZCB0aW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEJ1aWxkT3B0aW9ucyxcbiAgUGx1Z2luXG59IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBjb250ZXh0IH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQge1xuICBidWlsdGluTW9kdWxlcyxcbiAgY3JlYXRlUmVxdWlyZVxufSBmcm9tICdub2RlOm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGJhbm5lcixcbiAgaW52b2tlRXNidWlsZFxufSBmcm9tICcuL29ic2lkaWFuLXBsdWdpbi1idWlsZGVyLnRzJztcbmltcG9ydCB7IHByZXByb2Nlc3NQbHVnaW4gfSBmcm9tICcuL3ByZXByb2Nlc3MtcGx1Z2luLnRzJztcblxuY29uc3QgZXNtUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2lufS5cbiAqL1xuaW50ZXJmYWNlIEV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBBIHNldCB3aGVyZSB0aGUgbmFtZXMgb2YgZGVwZW5kZW5jaWVzIHRvIGJlIGJ1bmRsZWQgd2lsbCBiZSBhZGRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llc1RvQnVuZGxlOiBTZXQ8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgZGVwZW5kZW5jeSBuYW1lcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyBidW5kbGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llc1RvU2tpcDogU2V0PHN0cmluZz47XG59XG5cbmludGVyZmFjZSBNb2R1bGVXaXRoRGVmYXVsdEV4cG9ydCB7XG4gIGRlZmF1bHQ6IHVua25vd247XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGJ1bmRsZWQgYnkgZXNidWlsZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gYnVuZGxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9CdW5kbGUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb1NraXAgPSBhd2FpdCBnZXREZXBlbmRlbmNpZXNUb1NraXAoKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9CdW5kbGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBlbnRyeVBvaW50czogW2pvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TcmMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlUcyldLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBvdXRkaXI6ICdub3RoaW5nLXdpbGwtYmUtd3JpdHRlbi1vbi1kaXNrLXNvLXRoaXMtZG9lcy1ub3QtbWF0dGVyJyxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpbih7XG4gICAgICAgIGRlcGVuZGVuY2llc1RvQnVuZGxlLFxuICAgICAgICBkZXBlbmRlbmNpZXNUb1NraXBcbiAgICAgIH0pXG4gICAgXSxcbiAgICBzb3VyY2VtYXA6ICdpbmxpbmUnLFxuICAgIHRhcmdldDogJ0VTMjAyMicsXG4gICAgdHJlZVNoYWtpbmc6IHRydWUsXG4gICAgd3JpdGU6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0ID0gYXdhaXQgY29udGV4dChidWlsZE9wdGlvbnMpO1xuICBhd2FpdCBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dCwgdHJ1ZSk7XG4gIHJldHVybiBbLi4uZGVwZW5kZW5jaWVzVG9CdW5kbGVdLnNvcnQoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIHRoYXQgc2hvdWxkIGJlIHNraXBwZWQgZHVyaW5nIHRoZSBidW5kbGluZyBwcm9jZXNzLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgU2V0fSBvZiBkZXBlbmRlbmN5IG5hbWVzIHRvIHNraXAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZXBlbmRlbmNpZXNUb1NraXAoKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb1NraXAgPSBuZXcgU2V0PHN0cmluZz4oWy4uLmJ1aWx0aW5Nb2R1bGVzLCAuLi5PYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMgPz8ge30pLmZpbHRlcigoZGVwZW5kZW5jeSkgPT4gY2FuU2tpcEZyb21CdW5kbGluZyhkZXBlbmRlbmN5KSldKTtcbiAgcmV0dXJuIGRlcGVuZGVuY2llc1RvU2tpcDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqL1xuZnVuY3Rpb24gY2FuU2tpcEZyb21CdW5kbGluZyhtb2R1bGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnQHR5cGVzLycpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZS5zdGFydHNXaXRoKCdvYnNpZGlhbicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZSA9PT0gJ2VzYnVpbGQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG1vZHVsZSA9IGVzbVJlcXVpcmUobW9kdWxlTmFtZSkgYXMgTW9kdWxlV2l0aERlZmF1bHRFeHBvcnQ7XG4gICAgcmV0dXJuICFtb2R1bGUuZGVmYXVsdDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGlkZW50aWZpZXMgd2hpY2ggZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBidW5kbGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBsdWdpbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZXh0cmFjdHMgZGVwZW5kZW5jaWVzIHRvIGJ1bmRsZS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luKHBhcmFtczogRXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luUGFyYW1zKTogUGx1Z2luIHtcbiAgY29uc3QgeyBkZXBlbmRlbmNpZXNUb0J1bmRsZSwgZGVwZW5kZW5jaWVzVG9Ta2lwIH0gPSBwYXJhbXM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3Rlc3QnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC9eW14uL10vIH0sICgkYXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGlmICghJGFyZ3VtZW50cy5pbXBvcnRlci5lbmRzV2l0aChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkR0c0V4dGVuc2lvbikpIHtcbiAgICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gdHJpbVN0YXJ0KHtcbiAgICAgICAgICAgICRzdHJpbmc6IGVuc3VyZU5vbk51bGxhYmxlKCRhcmd1bWVudHMucGF0aC5zcGxpdCgnLycsIDEpWzBdLCAnV3JvbmcgcGF0aCcpLFxuICAgICAgICAgICAgcHJlZml4OiAnbm9kZTonXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXNUb1NraXAuaGFzKCRhcmd1bWVudHMucGF0aCkgJiYgIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMobW9kdWxlTmFtZSkpIHtcbiAgICAgICAgICAgIGRlcGVuZGVuY2llc1RvQnVuZGxlLmFkZCgkYXJndW1lbnRzLnBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBleHRlcm5hbDogdHJ1ZSwgcGF0aDogJGFyZ3VtZW50cy5wYXRoIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLFNBQVMsZUFBZTtBQUN4QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyxpQ0FBaUM7QUFDMUM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHdCQUF3QjtBQUVqQyxNQUFNLGFBQWEsY0FBYyxZQUFZLEdBQUc7QUEwQmhELGVBQXNCLDBCQUE2QztBQUNqRSxRQUFNLHFCQUFxQixNQUFNLHNCQUFzQjtBQUN2RCxRQUFNLHVCQUF1QixvQkFBSSxJQUFZO0FBRTdDLFFBQU0sZUFBNkI7QUFBQSxJQUNqQyxRQUFRO0FBQUEsTUFDTixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsUUFBUTtBQUFBLElBQ1IsYUFBYSxDQUFDLEtBQUssMEJBQTBCLEtBQUssMEJBQTBCLFNBQVMsMEJBQTBCLEtBQUssQ0FBQztBQUFBLElBQ3JILFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxNQUNQLGlCQUFpQjtBQUFBLE1BQ2pCLGtDQUFrQztBQUFBLFFBQ2hDO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxJQUNBLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxlQUFlLE1BQU0sUUFBUSxZQUFZO0FBQy9DLFFBQU0sY0FBYyxjQUFjLElBQUk7QUFDdEMsU0FBTyxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsS0FBSztBQUN4QztBQU9BLGVBQXNCLHdCQUE4QztBQUNsRSxRQUFNLGNBQWMsTUFBTSxnQkFBZ0IsY0FBYyxZQUFZLEdBQUcsQ0FBQztBQUN4RSxRQUFNLHFCQUFxQixvQkFBSSxJQUFZLENBQUMsR0FBRyxnQkFBZ0IsR0FBRyxPQUFPLEtBQUssWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsb0JBQW9CLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDdEssU0FBTztBQUNUO0FBUUEsU0FBUyxvQkFBb0IsWUFBNkI7QUFDeEQsTUFBSSxXQUFXLFdBQVcsU0FBUyxHQUFHO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxXQUFXLFdBQVcsVUFBVSxHQUFHO0FBQ3JDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxlQUFlLFdBQVc7QUFDNUIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJO0FBQ0YsVUFBTSxTQUFTLFdBQVcsVUFBVTtBQUNwQyxXQUFPLENBQUMsT0FBTztBQUFBLEVBQ2pCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBUUEsU0FBUyxrQ0FBa0MsUUFBeUQ7QUFDbEcsUUFBTSxFQUFFLHNCQUFzQixtQkFBbUIsSUFBSTtBQUNyRCxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxVQUFVLEVBQUUsUUFBUSxTQUFTLEdBQUcsQ0FBQyxlQUFlO0FBQ3BELFlBQUksQ0FBQyxXQUFXLFNBQVMsU0FBUywwQkFBMEIsWUFBWSxHQUFHO0FBQ3pFLGdCQUFNLGFBQWEsVUFBVTtBQUFBLFlBQzNCLFNBQVMsa0JBQWtCLFdBQVcsS0FBSyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZO0FBQUEsWUFDekUsUUFBUTtBQUFBLFVBQ1YsQ0FBQztBQUNELGNBQUksQ0FBQyxtQkFBbUIsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLFVBQVUsR0FBRztBQUNuRixpQ0FBcUIsSUFBSSxXQUFXLElBQUk7QUFBQSxVQUMxQztBQUFBLFFBQ0Y7QUFDQSxlQUFPLEVBQUUsVUFBVSxNQUFNLE1BQU0sV0FBVyxLQUFLO0FBQUEsTUFDakQsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -29,9 +29,9 @@ function fixEsmPlugin() {
29
29
  build.onEnd((result) => {
30
30
  for (const file of result.outputFiles ?? []) {
31
31
  const newText = replaceAll({
32
+ $string: file.text,
32
33
  replacer: "$1(__extractDefault($2), 1);",
33
- searchValue: /(?<Caller>__toESM\d*)\((?<Module>.+), 1\);/g,
34
- str: file.text
34
+ searchValue: /(?<Caller>__toESM\d*)\((?<Module>.+), 1\);/g
35
35
  });
36
36
  file.contents = new TextEncoder().encode(newText);
37
37
  }
@@ -42,4 +42,4 @@ function fixEsmPlugin() {
42
42
  export {
43
43
  fixEsmPlugin
44
44
  };
45
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LWVzbS1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgY3VzdG9tIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgdGhlIGByZXF1aXJlYCBzdGF0ZW1lbnQgZm9yIEVTTSBtb2R1bGVzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHBhdGNoZXMgcmVxdWlyZSBjYWxscyBmb3IgRVNNIGNvbXBhdGliaWxpdHk7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhFc21QbHVnaW4oKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZml4LWVzbScsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSByZXBsYWNlQWxsKHtcbiAgICAgICAgICAgIHJlcGxhY2VyOiAnJDEoX19leHRyYWN0RGVmYXVsdCgkMiksIDEpOycsXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZTogLyg/PENhbGxlcj5fX3RvRVNNXFxkKilcXCgoPzxNb2R1bGU+LispLCAxXFwpOy9nLFxuICAgICAgICAgICAgc3RyOiBmaWxlLnRleHRcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmaWxlLmNvbnRlbnRzID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG5ld1RleHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLFNBQVMsa0JBQWtCO0FBT3BCLFNBQVMsZUFBdUI7QUFDckMsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLFlBQU0sTUFBTSxDQUFDLFdBQVc7QUFDdEIsbUJBQVcsUUFBUSxPQUFPLGVBQWUsQ0FBQyxHQUFHO0FBQzNDLGdCQUFNLFVBQVUsV0FBVztBQUFBLFlBQ3pCLFVBQVU7QUFBQSxZQUNWLGFBQWE7QUFBQSxZQUNiLEtBQUssS0FBSztBQUFBLFVBQ1osQ0FBQztBQUNELGVBQUssV0FBVyxJQUFJLFlBQVksRUFBRSxPQUFPLE9BQU87QUFBQSxRQUNsRDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LWVzbS1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgY3VzdG9tIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgdGhlIGByZXF1aXJlYCBzdGF0ZW1lbnQgZm9yIEVTTSBtb2R1bGVzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHBhdGNoZXMgcmVxdWlyZSBjYWxscyBmb3IgRVNNIGNvbXBhdGliaWxpdHk7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhFc21QbHVnaW4oKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZml4LWVzbScsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSByZXBsYWNlQWxsKHtcbiAgICAgICAgICAgICRzdHJpbmc6IGZpbGUudGV4dCxcbiAgICAgICAgICAgIHJlcGxhY2VyOiAnJDEoX19leHRyYWN0RGVmYXVsdCgkMiksIDEpOycsXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZTogLyg/PENhbGxlcj5fX3RvRVNNXFxkKilcXCgoPzxNb2R1bGU+LispLCAxXFwpOy9nXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZmlsZS5jb250ZW50cyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShuZXdUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxTQUFTLGtCQUFrQjtBQU9wQixTQUFTLGVBQXVCO0FBQ3JDLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sQ0FBQyxXQUFXO0FBQ3RCLG1CQUFXLFFBQVEsT0FBTyxlQUFlLENBQUMsR0FBRztBQUMzQyxnQkFBTSxVQUFVLFdBQVc7QUFBQSxZQUN6QixTQUFTLEtBQUs7QUFBQSxZQUNkLFVBQVU7QUFBQSxZQUNWLGFBQWE7QUFBQSxVQUNmLENBQUM7QUFDRCxlQUFLLFdBQVcsSUFBSSxZQUFZLEVBQUUsT0FBTyxPQUFPO0FBQUEsUUFDbEQ7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -47,13 +47,13 @@ function fixSourceMapsPlugin(params) {
47
47
  }
48
48
  const content = await readFile(distPath, "utf-8");
49
49
  const newContent = replaceAll({
50
- replacer: ({ capturedGroupArgs: [prefix = "", sourceMapBase64 = "", suffix = ""] }) => `${prefix + fixSourceMap({
50
+ $string: content,
51
+ replacer: ({ capturedGroupArguments: [prefix = "", sourceMapBase64 = "", suffix = ""] }) => `${prefix + fixSourceMap({
51
52
  pluginName,
52
53
  sourceMapBase64
53
54
  }) + suffix.trim()}
54
55
  /* nosourcemap */`,
55
- searchValue: /(?<Prefix>\n(?:\/\/|\/\*)# sourceMappingURL=data:application\/json;base64,)(?<SourceMapBase64>.+?)(?<Suffix>$|\n| \*\/)(?:.|\n)*/g,
56
- str: content
56
+ searchValue: /(?<Prefix>\n(?:\/\/|\/\*)# sourceMappingURL=data:application\/json;base64,)(?<SourceMapBase64>.+?)(?<Suffix>$|\n| \*\/)(?:.|\n)*/g
57
57
  });
58
58
  if (content !== newContent) {
59
59
  await writeFile(distPath, newContent);
@@ -66,9 +66,9 @@ function fixSourceMapsPlugin(params) {
66
66
  function convertPathToObsidianUrl(params) {
67
67
  const { path, pluginName } = params;
68
68
  const convertedPath = replaceAll({
69
+ $string: toPosixPath(path),
69
70
  replacer: "",
70
- searchValue: /^(?:\.\.\/)+/g,
71
- str: toPosixPath(path)
71
+ searchValue: /^(?:\.\.\/)+/g
72
72
  });
73
73
  return `app://obsidian.md/plugin:${pluginName}/${convertedPath}`;
74
74
  }
@@ -87,4 +87,4 @@ function fixSourceMap(params) {
87
87
  export {
88
88
  fixSourceMapsPlugin
89
89
  };
90
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyBzb3VyY2UgbWFwcyBnZW5lcmF0ZWQgZHVyaW5nIGRldmVsb3BtZW50LlxuICogSXQgYWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIHNvdXJjZSBtYXBzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPYnNpZGlhbidzIGludGVybmFsIFVSTCBzY2hlbWUuXG4gKiBBIHBsdWdpbiBpcyBvbmx5IGFjdGl2ZSBkdXJpbmcgZGV2ZWxvcG1lbnQgYnVpbGRzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJld3JpdGVzIHNvdXJjZSBtYXBzIGZvciBPYnNpZGlhbiBVUkwgc2NoZW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICByZWFkRmlsZSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uLy4uLy4uL3N0cmluZy50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpeFNvdXJjZU1hcHNQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpeFNvdXJjZU1hcHNQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBhdGhzIHRvIHRoZSBvdXRwdXQgZmlsZXMgY29udGFpbmluZyB0aGUgc291cmNlIG1hcHMuXG4gICAqL1xuICByZWFkb25seSBkaXN0UGF0aHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuIFRoZSBwbHVnaW4gb25seSBydW5zIGluIG5vbi1wcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgT2JzaWRpYW4tc3BlY2lmaWMgVVJMcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY29udmVydFBhdGhUb09ic2lkaWFuVXJsfS5cbiAqL1xuaW50ZXJmYWNlIENvbnZlcnRQYXRoVG9PYnNpZGlhblVybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luYWwgZmlsZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaXhTb3VyY2VNYXB9LlxuICovXG5pbnRlcmZhY2UgRml4U291cmNlTWFwUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4sIHVzZWQgdG8gY29uc3RydWN0IHRoZSBPYnNpZGlhbi1zcGVjaWZpYyBVUkxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCBjb250ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlTWFwQmFzZTY0OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTb3VyY2VNYXAge1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgYnkgYWRqdXN0aW5nIHRoZSBwYXRocyB0byBiZSBjb21wYXRpYmxlXG4gKiB3aXRoIE9ic2lkaWFuJ3MgaW50ZXJuYWwgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZml4ZXMgc291cmNlIG1hcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhTb3VyY2VNYXBzUGx1Z2luKHBhcmFtczogRml4U291cmNlTWFwc1BsdWdpblBhcmFtcyk6IFBsdWdpbiB7XG4gIGNvbnN0IHtcbiAgICBkaXN0UGF0aHMsXG4gICAgaXNQcm9kdWN0aW9uQnVpbGQsXG4gICAgcGx1Z2luTmFtZVxuICB9ID0gcGFyYW1zO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmaXgtc291cmNlLW1hcHMnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vbkVuZChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZGlzdFBhdGggb2YgZGlzdFBhdGhzKSB7XG4gICAgICAgICAgaWYgKCFleGlzdHNTeW5jKGRpc3RQYXRoKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGRpc3RQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gcmVwbGFjZUFsbCh7XG4gICAgICAgICAgICByZXBsYWNlcjogKHsgY2FwdHVyZWRHcm91cEFyZ3M6IFtwcmVmaXggPSAnJywgc291cmNlTWFwQmFzZTY0ID0gJycsIHN1ZmZpeCA9ICcnXSB9KSA9PlxuICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICBwcmVmaXggKyBmaXhTb3VyY2VNYXAoe1xuICAgICAgICAgICAgICAgICAgcGx1Z2luTmFtZSxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZU1hcEJhc2U2NFxuICAgICAgICAgICAgICAgIH0pICsgc3VmZml4LnRyaW0oKVxuICAgICAgICAgICAgICB9XFxuLyogbm9zb3VyY2VtYXAgKi9gLFxuICAgICAgICAgICAgc2VhcmNoVmFsdWU6IC8oPzxQcmVmaXg+XFxuKD86XFwvXFwvfFxcL1xcKikjIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvblxcL2pzb247YmFzZTY0LCkoPzxTb3VyY2VNYXBCYXNlNjQ+Lis/KSg/PFN1ZmZpeD4kfFxcbnwgXFwqXFwvKSg/Oi58XFxuKSovZyxcbiAgICAgICAgICAgIHN0cjogY29udGVudFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG5ld0NvbnRlbnQpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShkaXN0UGF0aCwgbmV3Q29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBmaWxlIHBhdGggdG8gYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbnZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIHBhdGggYXMgYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmwocGFyYW1zOiBDb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmxQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IHBhdGgsIHBsdWdpbk5hbWUgfSA9IHBhcmFtcztcbiAgY29uc3QgY29udmVydGVkUGF0aCA9IHJlcGxhY2VBbGwoe1xuICAgIHJlcGxhY2VyOiAnJyxcbiAgICBzZWFyY2hWYWx1ZTogL14oPzpcXC5cXC5cXC8pKy9nLFxuICAgIHN0cjogdG9Qb3NpeFBhdGgocGF0aClcbiAgfSk7XG4gIHJldHVybiBgYXBwOi8vb2JzaWRpYW4ubWQvcGx1Z2luOiR7cGx1Z2luTmFtZX0vJHtjb252ZXJ0ZWRQYXRofWA7XG59XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIGJhc2U2NC1lbmNvZGVkIHNvdXJjZSBtYXAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIE9ic2lkaWFuJ3MgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGFkanVzdGluZyB0aGUgc291cmNlIG1hcC5cbiAqIEByZXR1cm5zIEEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHdpdGggdGhlIGFkanVzdGVkIHNvdXJjZSBtYXAuXG4gKi9cbmZ1bmN0aW9uIGZpeFNvdXJjZU1hcChwYXJhbXM6IEZpeFNvdXJjZU1hcFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGx1Z2luTmFtZSwgc291cmNlTWFwQmFzZTY0IH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNvdXJjZU1hcEpzb24gPSBCdWZmZXIuZnJvbShzb3VyY2VNYXBCYXNlNjQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKTtcbiAgY29uc3Qgc291cmNlTWFwID0gSlNPTi5wYXJzZShzb3VyY2VNYXBKc29uKSBhcyBQYXJ0aWFsPFNvdXJjZU1hcD47XG4gIHNvdXJjZU1hcC5zb3VyY2VzID0gKHNvdXJjZU1hcC5zb3VyY2VzID8/IFtdKS5tYXAoKHBhdGgpID0+XG4gICAgY29udmVydFBhdGhUb09ic2lkaWFuVXJsKHtcbiAgICAgIHBhdGgsXG4gICAgICBwbHVnaW5OYW1lXG4gICAgfSlcbiAgKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLGtCQUFrQjtBQStEcEIsU0FBUyxvQkFBb0IsUUFBMkM7QUFDN0UsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sWUFBWTtBQUN0QixZQUFJLG1CQUFtQjtBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxtQkFBVyxZQUFZLFdBQVc7QUFDaEMsY0FBSSxDQUFDLFdBQVcsUUFBUSxHQUFHO0FBQ3pCO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsTUFBTSxTQUFTLFVBQVUsT0FBTztBQUNoRCxnQkFBTSxhQUFhLFdBQVc7QUFBQSxZQUM1QixVQUFVLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLElBQUksa0JBQWtCLElBQUksU0FBUyxFQUFFLEVBQUUsTUFDL0UsR0FDRSxTQUFTLGFBQWE7QUFBQSxjQUNwQjtBQUFBLGNBQ0E7QUFBQSxZQUNGLENBQUMsSUFBSSxPQUFPLEtBQUssQ0FDbkI7QUFBQTtBQUFBLFlBQ0YsYUFBYTtBQUFBLFlBQ2IsS0FBSztBQUFBLFVBQ1AsQ0FBQztBQUVELGNBQUksWUFBWSxZQUFZO0FBQzFCLGtCQUFNLFVBQVUsVUFBVSxVQUFVO0FBQUEsVUFDdEM7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQVFBLFNBQVMseUJBQXlCLFFBQWdEO0FBQ2hGLFFBQU0sRUFBRSxNQUFNLFdBQVcsSUFBSTtBQUM3QixRQUFNLGdCQUFnQixXQUFXO0FBQUEsSUFDL0IsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsS0FBSyxZQUFZLElBQUk7QUFBQSxFQUN2QixDQUFDO0FBQ0QsU0FBTyw0QkFBNEIsVUFBVSxJQUFJLGFBQWE7QUFDaEU7QUFRQSxTQUFTLGFBQWEsUUFBb0M7QUFDeEQsUUFBTSxFQUFFLFlBQVksZ0JBQWdCLElBQUk7QUFDeEMsUUFBTSxnQkFBZ0IsT0FBTyxLQUFLLGlCQUFpQixRQUFRLEVBQUUsU0FBUyxPQUFPO0FBQzdFLFFBQU0sWUFBWSxLQUFLLE1BQU0sYUFBYTtBQUMxQyxZQUFVLFdBQVcsVUFBVSxXQUFXLENBQUMsR0FBRztBQUFBLElBQUksQ0FBQyxTQUNqRCx5QkFBeUI7QUFBQSxNQUN2QjtBQUFBLE1BQ0E7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQ0EsU0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLFNBQVMsUUFBUTtBQUNqRTsiLAogICJuYW1lcyI6IFtdCn0K
90
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyBzb3VyY2UgbWFwcyBnZW5lcmF0ZWQgZHVyaW5nIGRldmVsb3BtZW50LlxuICogSXQgYWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIHNvdXJjZSBtYXBzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPYnNpZGlhbidzIGludGVybmFsIFVSTCBzY2hlbWUuXG4gKiBBIHBsdWdpbiBpcyBvbmx5IGFjdGl2ZSBkdXJpbmcgZGV2ZWxvcG1lbnQgYnVpbGRzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJld3JpdGVzIHNvdXJjZSBtYXBzIGZvciBPYnNpZGlhbiBVUkwgc2NoZW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICByZWFkRmlsZSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uLy4uLy4uL3N0cmluZy50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpeFNvdXJjZU1hcHNQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpeFNvdXJjZU1hcHNQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBhdGhzIHRvIHRoZSBvdXRwdXQgZmlsZXMgY29udGFpbmluZyB0aGUgc291cmNlIG1hcHMuXG4gICAqL1xuICByZWFkb25seSBkaXN0UGF0aHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuIFRoZSBwbHVnaW4gb25seSBydW5zIGluIG5vbi1wcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgT2JzaWRpYW4tc3BlY2lmaWMgVVJMcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY29udmVydFBhdGhUb09ic2lkaWFuVXJsfS5cbiAqL1xuaW50ZXJmYWNlIENvbnZlcnRQYXRoVG9PYnNpZGlhblVybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luYWwgZmlsZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaXhTb3VyY2VNYXB9LlxuICovXG5pbnRlcmZhY2UgRml4U291cmNlTWFwUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4sIHVzZWQgdG8gY29uc3RydWN0IHRoZSBPYnNpZGlhbi1zcGVjaWZpYyBVUkxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCBjb250ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlTWFwQmFzZTY0OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTb3VyY2VNYXAge1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgYnkgYWRqdXN0aW5nIHRoZSBwYXRocyB0byBiZSBjb21wYXRpYmxlXG4gKiB3aXRoIE9ic2lkaWFuJ3MgaW50ZXJuYWwgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZml4ZXMgc291cmNlIG1hcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhTb3VyY2VNYXBzUGx1Z2luKHBhcmFtczogRml4U291cmNlTWFwc1BsdWdpblBhcmFtcyk6IFBsdWdpbiB7XG4gIGNvbnN0IHtcbiAgICBkaXN0UGF0aHMsXG4gICAgaXNQcm9kdWN0aW9uQnVpbGQsXG4gICAgcGx1Z2luTmFtZVxuICB9ID0gcGFyYW1zO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmaXgtc291cmNlLW1hcHMnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vbkVuZChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZGlzdFBhdGggb2YgZGlzdFBhdGhzKSB7XG4gICAgICAgICAgaWYgKCFleGlzdHNTeW5jKGRpc3RQYXRoKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGRpc3RQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gcmVwbGFjZUFsbCh7XG4gICAgICAgICAgICAkc3RyaW5nOiBjb250ZW50LFxuICAgICAgICAgICAgcmVwbGFjZXI6ICh7IGNhcHR1cmVkR3JvdXBBcmd1bWVudHM6IFtwcmVmaXggPSAnJywgc291cmNlTWFwQmFzZTY0ID0gJycsIHN1ZmZpeCA9ICcnXSB9KSA9PlxuICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICBwcmVmaXggKyBmaXhTb3VyY2VNYXAoe1xuICAgICAgICAgICAgICAgICAgcGx1Z2luTmFtZSxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZU1hcEJhc2U2NFxuICAgICAgICAgICAgICAgIH0pICsgc3VmZml4LnRyaW0oKVxuICAgICAgICAgICAgICB9XFxuLyogbm9zb3VyY2VtYXAgKi9gLFxuICAgICAgICAgICAgc2VhcmNoVmFsdWU6IC8oPzxQcmVmaXg+XFxuKD86XFwvXFwvfFxcL1xcKikjIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvblxcL2pzb247YmFzZTY0LCkoPzxTb3VyY2VNYXBCYXNlNjQ+Lis/KSg/PFN1ZmZpeD4kfFxcbnwgXFwqXFwvKSg/Oi58XFxuKSovZ1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG5ld0NvbnRlbnQpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShkaXN0UGF0aCwgbmV3Q29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBmaWxlIHBhdGggdG8gYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbnZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIHBhdGggYXMgYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmwocGFyYW1zOiBDb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmxQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IHBhdGgsIHBsdWdpbk5hbWUgfSA9IHBhcmFtcztcbiAgY29uc3QgY29udmVydGVkUGF0aCA9IHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHRvUG9zaXhQYXRoKHBhdGgpLFxuICAgIHJlcGxhY2VyOiAnJyxcbiAgICBzZWFyY2hWYWx1ZTogL14oPzpcXC5cXC5cXC8pKy9nXG4gIH0pO1xuICByZXR1cm4gYGFwcDovL29ic2lkaWFuLm1kL3BsdWdpbjoke3BsdWdpbk5hbWV9LyR7Y29udmVydGVkUGF0aH1gO1xufVxuXG4vKipcbiAqIEFkanVzdHMgdGhlIHBhdGhzIGluIHRoZSBiYXNlNjQtZW5jb2RlZCBzb3VyY2UgbWFwIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPYnNpZGlhbidzIFVSTCBzY2hlbWUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBhZGp1c3RpbmcgdGhlIHNvdXJjZSBtYXAuXG4gKiBAcmV0dXJucyBBIGJhc2U2NC1lbmNvZGVkIHN0cmluZyB3aXRoIHRoZSBhZGp1c3RlZCBzb3VyY2UgbWFwLlxuICovXG5mdW5jdGlvbiBmaXhTb3VyY2VNYXAocGFyYW1zOiBGaXhTb3VyY2VNYXBQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IHBsdWdpbk5hbWUsIHNvdXJjZU1hcEJhc2U2NCB9ID0gcGFyYW1zO1xuICBjb25zdCBzb3VyY2VNYXBKc29uID0gQnVmZmVyLmZyb20oc291cmNlTWFwQmFzZTY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gIGNvbnN0IHNvdXJjZU1hcCA9IEpTT04ucGFyc2Uoc291cmNlTWFwSnNvbikgYXMgUGFydGlhbDxTb3VyY2VNYXA+O1xuICBzb3VyY2VNYXAuc291cmNlcyA9IChzb3VyY2VNYXAuc291cmNlcyA/PyBbXSkubWFwKChwYXRoKSA9PlxuICAgIGNvbnZlcnRQYXRoVG9PYnNpZGlhblVybCh7XG4gICAgICBwYXRoLFxuICAgICAgcGx1Z2luTmFtZVxuICAgIH0pXG4gICk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyxrQkFBa0I7QUErRHBCLFNBQVMsb0JBQW9CLFFBQTJDO0FBQzdFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxNQUFNLFlBQVk7QUFDdEIsWUFBSSxtQkFBbUI7QUFDckI7QUFBQSxRQUNGO0FBRUEsbUJBQVcsWUFBWSxXQUFXO0FBQ2hDLGNBQUksQ0FBQyxXQUFXLFFBQVEsR0FBRztBQUN6QjtBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxVQUFVLE1BQU0sU0FBUyxVQUFVLE9BQU87QUFDaEQsZ0JBQU0sYUFBYSxXQUFXO0FBQUEsWUFDNUIsU0FBUztBQUFBLFlBQ1QsVUFBVSxDQUFDLEVBQUUsd0JBQXdCLENBQUMsU0FBUyxJQUFJLGtCQUFrQixJQUFJLFNBQVMsRUFBRSxFQUFFLE1BQ3BGLEdBQ0UsU0FBUyxhQUFhO0FBQUEsY0FDcEI7QUFBQSxjQUNBO0FBQUEsWUFDRixDQUFDLElBQUksT0FBTyxLQUFLLENBQ25CO0FBQUE7QUFBQSxZQUNGLGFBQWE7QUFBQSxVQUNmLENBQUM7QUFFRCxjQUFJLFlBQVksWUFBWTtBQUMxQixrQkFBTSxVQUFVLFVBQVUsVUFBVTtBQUFBLFVBQ3RDO0FBQUEsUUFDRjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFRQSxTQUFTLHlCQUF5QixRQUFnRDtBQUNoRixRQUFNLEVBQUUsTUFBTSxXQUFXLElBQUk7QUFDN0IsUUFBTSxnQkFBZ0IsV0FBVztBQUFBLElBQy9CLFNBQVMsWUFBWSxJQUFJO0FBQUEsSUFDekIsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLEVBQ2YsQ0FBQztBQUNELFNBQU8sNEJBQTRCLFVBQVUsSUFBSSxhQUFhO0FBQ2hFO0FBUUEsU0FBUyxhQUFhLFFBQW9DO0FBQ3hELFFBQU0sRUFBRSxZQUFZLGdCQUFnQixJQUFJO0FBQ3hDLFFBQU0sZ0JBQWdCLE9BQU8sS0FBSyxpQkFBaUIsUUFBUSxFQUFFLFNBQVMsT0FBTztBQUM3RSxRQUFNLFlBQVksS0FBSyxNQUFNLGFBQWE7QUFDMUMsWUFBVSxXQUFXLFVBQVUsV0FBVyxDQUFDLEdBQUc7QUFBQSxJQUFJLENBQUMsU0FDakQseUJBQXlCO0FBQUEsTUFDdkI7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxTQUFTLENBQUMsRUFBRSxTQUFTLFFBQVE7QUFDakU7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -12,9 +12,13 @@ import { CliTaskResult } from '../../cli-utils.mjs';
12
12
  * Enumeration representing the build modes.
13
13
  */
14
14
  export declare enum BuildMode {
15
- /** Development mode for building the plugin */
15
+ /**
16
+ Development mode for building the plugin
17
+ */
16
18
  Development = 0,
17
- /** Production mode for building the plugin */
19
+ /**
20
+ Production mode for building the plugin
21
+ */
18
22
  Production = 1
19
23
  }
20
24
  /**
@@ -202,4 +202,4 @@ export {
202
202
  dev,
203
203
  invokeEsbuild
204
204
  };
205
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvb2JzaWRpYW4tcGx1Z2luLWJ1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIGFuZCBidW5kbGUgYW4gT2JzaWRpYW4gcGx1Z2luIHVzaW5nIGVzYnVpbGQuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGJhc2VkIG9uIGRpZmZlcmVudCBidWlsZCBtb2RlcyAoZGV2ZWxvcG1lbnQgb3IgcHJvZHVjdGlvbiksXG4gKiBhbmQgaXQgc2V0cyB1cCB2YXJpb3VzIGVzYnVpbGQgcGx1Z2lucyB0byBwcmVwcm9jZXNzLCBsaW50LCBmaXggc291cmNlIG1hcHMsIGFuZCBjb3B5IGZpbGVzIHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZC1iYXNlZCBidWlsZCBwaXBlbGluZSB3aXRoIHNhc3Mvc3ZlbHRlIHBsdWdpbnMgYW5kIGZpbGUgd2F0Y2hlcnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb250ZXh0LFxuICBCdWlsZE9wdGlvbnMgYXMgRXNidWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFdlIG5lZWQgYSB0ZW1wIHZhcmlhYmxlIHRvIGFwcGx5IGBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AoKWAgZml4IGJlbG93LlxuaW1wb3J0IHNhc3NQbHVnaW5fIGZyb20gJ2VzYnVpbGQtc2Fzcy1wbHVnaW4nO1xuaW1wb3J0IHtcbiAgZXhpc3RzU3luYyxcbiAgd2F0Y2hcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBidWlsdGluTW9kdWxlcyB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCBwcm9jZXNzLCB7IGxvYWRFbnZGaWxlIH0gZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi8uLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AgfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBDbGlUYXNrUmVzdWx0IH0gZnJvbSAnLi4vLi4vY2xpLXV0aWxzLnRzJztcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4uLy4uL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi4vLi4vbnBtLnRzJztcbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3QgfSBmcm9tICcuLi8uLi9yb290LnRzJztcbmltcG9ydCB7IGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbiB9IGZyb20gJy4vY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMnO1xuaW1wb3J0IHsgY3VzdG9tRXNidWlsZE9wdGlvbnNQbHVnaW4gfSBmcm9tICcuL2N1c3RvbS1lc2J1aWxkLW9wdGlvbnMtcGx1Z2luLnRzJztcbmltcG9ydCB7IGZpeEVzbVBsdWdpbiB9IGZyb20gJy4vZml4LWVzbS1wbHVnaW4udHMnO1xuaW1wb3J0IHsgZml4U291cmNlTWFwc1BsdWdpbiB9IGZyb20gJy4vZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBwcmVwcm9jZXNzUGx1Z2luIH0gZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5pbXBvcnQgeyByZW5hbWVDc3NQbHVnaW4gfSBmcm9tICcuL3JlbmFtZS1jc3MtcGx1Z2luLnRzJztcbmltcG9ydCB7IHN2ZWx0ZVdyYXBwZXJQbHVnaW4gfSBmcm9tICcuL3N2ZWx0ZS13cmFwcGVyLXBsdWdpbi50cyc7XG5cbmNvbnN0IHNhc3NQbHVnaW4gPSBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3Aoc2Fzc1BsdWdpbl8pO1xuXG4vKipcbiAqIERlYm91bmNlIHdpbmRvdyBmb3IgcmVzdGFydGluZyBhIGRldmVsb3BtZW50IGJ1aWxkIGFmdGVyIGBub2RlX21vZHVsZXNgIGNoYW5nZXMuIEEgcmVpbnN0YWxsIG9yIGFcbiAqIGRlcGVuZGVuY3kgcmVidWlsZCB0b3VjaGVzIG1hbnkgZmlsZXMgaW4gcXVpY2sgc3VjY2Vzc2lvbiwgc28gd2Ugd2FpdCBmb3IgdGhlIGNodXJuIHRvIHNldHRsZVxuICogYmVmb3JlIHJlc3RhcnRpbmcgb25jZS5cbiAqL1xuY29uc3QgTk9ERV9NT0RVTEVTX1JFU1RBUlRfREVCT1VOQ0VfSU5fTUlMTElTRUNPTkRTID0gMTAwMDtcblxuLyoqXG4gKiBFbnVtZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIGJ1aWxkIG1vZGVzLlxuICovXG5leHBvcnQgZW51bSBCdWlsZE1vZGUge1xuICAvKiogRGV2ZWxvcG1lbnQgbW9kZSBmb3IgYnVpbGRpbmcgdGhlIHBsdWdpbiAqL1xuICBEZXZlbG9wbWVudCxcbiAgLyoqIFByb2R1Y3Rpb24gbW9kZSBmb3IgYnVpbGRpbmcgdGhlIHBsdWdpbiAqL1xuICBQcm9kdWN0aW9uXG59XG5cbi8qKlxuICogQmFubmVyIHRleHQgdG8gYmUgaW5jbHVkZWQgYXQgdGhlIHRvcCBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3QgYmFubmVyID0gYC8qXG5USElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBFU0JVSUxEXG5pZiB5b3Ugd2FudCB0byB2aWV3IHRoZSBzb3VyY2UsIHBsZWFzZSB2aXNpdCB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgb2YgdGhpcyBwbHVnaW5cbiovXG5gO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBidWlsZE9ic2lkaWFuUGx1Z2lufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9ic2lkaWFuUGx1Z2luUGFyYW1zIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBlc2J1aWxkIHBsdWdpbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21Fc2J1aWxkUGx1Z2lucz86IFBsdWdpbltdO1xuXG4gIC8qKlxuICAgKiBDdXN0b21pemVzIHRoZSBgZXNidWlsZGAgb3B0aW9ucy5cbiAgICovXG4gIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zPyhvcHRpb25zOiBFc2J1aWxkT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEEgYnVpbGQgbW9kZSwgZWl0aGVyIGBEZXZlbG9wbWVudGAgb3IgYFByb2R1Y3Rpb25gXG4gICAqL1xuICByZWFkb25seSBtb2RlOiBCdWlsZE1vZGU7XG5cbiAgLyoqXG4gICAqIEEgZm9sZGVyIGZvciBPYnNpZGlhbiBjb25maWd1cmF0aW9uLiBEZWZhdWx0cyB0byB0aGUgYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQnVpbGQgcGFyYW1ldGVycyB3aXRob3V0IHRoZSBtb2RlIGZpZWxkLCBmb3IgdXNlIHdpdGgge0BsaW5rIGJ1aWxkfSBhbmQge0BsaW5rIGRldn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBlc2J1aWxkIHBsdWdpbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21Fc2J1aWxkUGx1Z2lucz86IFBsdWdpbltdO1xuXG4gIC8qKlxuICAgKiBDdXN0b21pemVzIHRoZSBgZXNidWlsZGAgb3B0aW9ucy5cbiAgICovXG4gIGN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zPyhvcHRpb25zOiBFc2J1aWxkT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEEgZm9sZGVyIGZvciBPYnNpZGlhbiBjb25maWd1cmF0aW9uLiBEZWZhdWx0cyB0byB0aGUgYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBPYnNpZGlhblBsdWdpbkJ1aWxkZXJFbnYge1xuICBPQlNJRElBTl9DT05GSUdfRk9MREVSOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gaW4gcHJvZHVjdGlvbiBtb2RlIHVzaW5nIGVzYnVpbGQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBidWlsZCBwYXJhbWV0ZXJzIChtb2RlIGlzIHNldCB0byBQcm9kdWN0aW9uIGF1dG9tYXRpY2FsbHkpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBidWlsZCBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkKG9wdGlvbnM/OiBCdWlsZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYnVpbGRPYnNpZGlhblBsdWdpbih7IC4uLm9wdGlvbnMsIG1vZGU6IEJ1aWxkTW9kZS5Qcm9kdWN0aW9uIH0pO1xuICByZXN1bHQudGhyb3dPbkZhaWx1cmUoKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIE9ic2lkaWFuIHBsdWdpbiBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIG1vZGUgYW5kIGNvbmZpZ3VyYXRpb24gZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgYnVpbGRpbmcgdGhlIHBsdWdpbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB0aGUgc3VjY2VzcyBvciBmYWlsdXJlIG9mIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkT2JzaWRpYW5QbHVnaW4ocGFyYW1zOiBCdWlsZE9ic2lkaWFuUGx1Z2luUGFyYW1zKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIGF3YWl0IG5wbVJ1bignYnVpbGQ6Y29tcGlsZScpO1xuICBjb25zdCBlbnZQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdCh7IHBhdGg6ICcuZW52JyB9KTtcbiAgaWYgKGVudlBhdGggJiYgZXhpc3RzU3luYyhlbnZQYXRoKSkge1xuICAgIGxvYWRFbnZGaWxlKGVudlBhdGgpO1xuICB9XG4gIGNvbnN0IG9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiA9IHByb2Nlc3MuZW52IGFzIFBhcnRpYWw8T2JzaWRpYW5QbHVnaW5CdWlsZGVyRW52PjtcblxuICBjb25zdCBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHBhcmFtcy5vYnNpZGlhbkNvbmZpZ0ZvbGRlciA/PyBvYnNpZGlhblBsdWdpbkJ1aWxkZXJFbnYuT0JTSURJQU5fQ09ORklHX0ZPTERFUiA/PyAnJztcbiAgY29uc3QgaXNQcm9kdWN0aW9uQnVpbGQgPSBwYXJhbXMubW9kZSA9PT0gQnVpbGRNb2RlLlByb2R1Y3Rpb247XG5cbiAgY29uc3QgZGlzdEZvbGRlciA9IGVuc3VyZU5vbk51bGxhYmxlKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3QoeyBwYXRoOiBpc1Byb2R1Y3Rpb25CdWlsZCA/IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCA6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3REZXYgfSksXG4gICAgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGRpc3QgZm9sZGVyJ1xuICApO1xuXG4gIGlmIChleGlzdHNTeW5jKGRpc3RGb2xkZXIpKSB7XG4gICAgYXdhaXQgcm0oZGlzdEZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cbiAgYXdhaXQgbWtkaXIoZGlzdEZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgY29uc3QgZGlzdEZpbGVOYW1lcyA9IFtcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb25cbiAgXTtcbiAgaWYgKCFpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgIGF3YWl0IHdyaXRlRmlsZShqb2luKGRpc3RGb2xkZXIsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkhvdFJlbG9hZCksICcnLCAndXRmLTgnKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgZGlzdEZpbGVOYW1lcykge1xuICAgIGNvbnN0IGxvY2FsRmlsZSA9IGVuc3VyZU5vbk51bGxhYmxlKHJlc29sdmVQYXRoRnJvbVJvb3QoeyBwYXRoOiBmaWxlTmFtZSB9KSwgYENvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGxvY2FsIGZpbGUgZm9yICR7ZmlsZU5hbWV9YCk7XG4gICAgY29uc3QgZGlzdEZpbGUgPSBqb2luKGRpc3RGb2xkZXIsIGZpbGVOYW1lKTtcblxuICAgIGlmIChleGlzdHNTeW5jKGxvY2FsRmlsZSkpIHtcbiAgICAgIGF3YWl0IGNwKGxvY2FsRmlsZSwgZGlzdEZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc3RQYXRoID0gam9pbihkaXN0Rm9sZGVyLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluSnMpO1xuICBjb25zdCBjc3NQYXRoID0gam9pbihkaXN0Rm9sZGVyLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TdHlsZXNDc3MpO1xuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIGNvbnN0IHBsdWdpbk5hbWUgPSBwYWNrYWdlSnNvbi5uYW1lID8/ICcodW5rbm93biknO1xuXG4gIGNvbnN0IGJ1aWxkT3B0aW9uczogRXNidWlsZE9wdGlvbnMgPSB7XG4gICAgYmFubmVyOiB7XG4gICAgICBqczogYmFubmVyXG4gICAgfSxcbiAgICBidW5kbGU6IHRydWUsXG4gICAgY29uZGl0aW9uczogWydicm93c2VyJ10sXG4gICAgZW50cnlQb2ludHM6IFtcbiAgICAgIGVuc3VyZU5vbk51bGxhYmxlKFxuICAgICAgICByZXNvbHZlUGF0aEZyb21Sb290KHsgcGF0aDogam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcykgfSksXG4gICAgICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIHBsdWdpbidcbiAgICAgIClcbiAgICBdLFxuICAgIGV4dGVybmFsOiBbXG4gICAgICAnb2JzaWRpYW4nLFxuICAgICAgJ2VsZWN0cm9uJyxcbiAgICAgICdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnLFxuICAgICAgJ0Bjb2RlbWlycm9yL2NvbGxhYicsXG4gICAgICAnQGNvZGVtaXJyb3IvY29tbWFuZHMnLFxuICAgICAgJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJyxcbiAgICAgICdAY29kZW1pcnJvci9saW50JyxcbiAgICAgICdAY29kZW1pcnJvci9zZWFyY2gnLFxuICAgICAgJ0Bjb2RlbWlycm9yL3N0YXRlJyxcbiAgICAgICdAY29kZW1pcnJvci92aWV3JyxcbiAgICAgICdAbGV6ZXIvY29tbW9uJyxcbiAgICAgICdAbGV6ZXIvaGlnaGxpZ2h0JyxcbiAgICAgICdAbGV6ZXIvbHInLFxuICAgICAgJ2VzYnVpbGQnLFxuICAgICAgJ2VzbGludCcsXG4gICAgICAuLi5idWlsdGluTW9kdWxlc1xuICAgIF0sXG4gICAgZm9ybWF0OiAnY2pzJyxcbiAgICBrZWVwTmFtZXM6IHRydWUsXG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBtaW5pZnk6IGlzUHJvZHVjdGlvbkJ1aWxkLFxuICAgIG91dGZpbGU6IGRpc3RQYXRoLFxuICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgcGx1Z2luczogW1xuICAgICAgY3VzdG9tRXNidWlsZE9wdGlvbnNQbHVnaW4ocGFyYW1zLmN1c3RvbWl6ZUVzYnVpbGRPcHRpb25zPy5iaW5kKHBhcmFtcykpLFxuICAgICAgc3ZlbHRlV3JhcHBlclBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCksXG4gICAgICBzYXNzUGx1Z2luKHtcbiAgICAgICAgc291cmNlTWFwOiAhaXNQcm9kdWN0aW9uQnVpbGRcbiAgICAgIH0pLFxuICAgICAgcmVuYW1lQ3NzUGx1Z2luKGRpc3RGb2xkZXIpLFxuICAgICAgcHJlcHJvY2Vzc1BsdWdpbigpLFxuICAgICAgZml4RXNtUGx1Z2luKCksXG4gICAgICBmaXhTb3VyY2VNYXBzUGx1Z2luKHsgZGlzdFBhdGhzOiBbZGlzdFBhdGgsIGNzc1BhdGhdLCBpc1Byb2R1Y3Rpb25CdWlsZCwgcGx1Z2luTmFtZSB9KSxcbiAgICAgIC4uLnBhcmFtcy5jdXN0b21Fc2J1aWxkUGx1Z2lucyA/PyBbXSxcbiAgICAgIGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbih7IGRpc3RGb2xkZXIsIGlzUHJvZHVjdGlvbkJ1aWxkLCBvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgcGx1Z2luTmFtZSB9KVxuICAgIF0sXG4gICAgc291cmNlbWFwOiBpc1Byb2R1Y3Rpb25CdWlsZCA/IGZhbHNlIDogJ2lubGluZScsXG4gICAgdGFyZ2V0OiAnRVMyMDIyJyxcbiAgICB0cmVlU2hha2luZzogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dCA9IGF3YWl0IGNvbnRleHQoYnVpbGRPcHRpb25zKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW52b2tlRXNidWlsZChidWlsZENvbnRleHQsIGlzUHJvZHVjdGlvbkJ1aWxkKTtcbiAgaWYgKCFpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgIHdhdGNoTm9kZU1vZHVsZXNBbmRSZXN0YXJ0KHBhcmFtcywgYnVpbGRDb250ZXh0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgT2JzaWRpYW4gcGx1Z2luIGluIGRldmVsb3BtZW50IG1vZGUgdXNpbmcgZXNidWlsZCB3aXRoIHdhdGNoLlxuICpcbiAqIEluIGFkZGl0aW9uIHRvIGVzYnVpbGQncyBvd24gc291cmNlLWdyYXBoIHdhdGNoLCB0aGUgZGV2ZWxvcG1lbnQgYnVpbGQgYWxzbyB3YXRjaGVzIHRoZSBwbHVnaW4nc1xuICogYG5vZGVfbW9kdWxlc2AgZm9sZGVyIGFuZCByZXN0YXJ0cyB0aGUgd2hvbGUgYnVpbGQgKGluY2x1ZGluZyB0aGUgdHlwZS1jaGVjaykgd2hlbiBpdCBjaGFuZ2VzLCBzbyBhXG4gKiBkZXBlbmRlbmN5IHJlaW5zdGFsbCBvciByZWJ1aWxkIGlzIHBpY2tlZCB1cC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGJ1aWxkIHBhcmFtZXRlcnMgKG1vZGUgaXMgc2V0IHRvIERldmVsb3BtZW50IGF1dG9tYXRpY2FsbHkpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpbmRpY2F0aW5nIHRoZSBidWlsZCByZXN1bHQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBCdWlsZE9wdGlvbnMgd2l0aCBidWlsZCgpLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRldihvcHRpb25zPzogQnVpbGRPcHRpb25zKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIHJldHVybiBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ub3B0aW9ucywgbW9kZTogQnVpbGRNb2RlLkRldmVsb3BtZW50IH0pO1xufVxuXG4vKipcbiAqIEludm9rZXMgdGhlIGJ1aWxkIHByb2Nlc3Mgd2l0aCB0aGUgcHJvdmlkZWQgYnVpbGQgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gYnVpbGRDb250ZXh0IC0gVGhlIGJ1aWxkIGNvbnRleHQgZ2VuZXJhdGVkIGJ5IGVzYnVpbGQuXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IGluZGljYXRpbmcgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZiB0aGUgYnVpbGQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dDogQnVpbGRDb250ZXh0LCBpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFByb21pc2U8Q2xpVGFza1Jlc3VsdD4ge1xuICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBidWlsZENvbnRleHQucmVidWlsZCgpO1xuICAgIGNvbnN0IGlzU3VjY2VzcyA9IHJlc3VsdC5lcnJvcnMubGVuZ3RoID09PSAwICYmIHJlc3VsdC53YXJuaW5ncy5sZW5ndGggPT09IDA7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuU3VjY2Vzcyhpc1N1Y2Nlc3MpO1xuICB9XG4gIGF3YWl0IGJ1aWxkQ29udGV4dC53YXRjaCgpO1xuICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5Eb05vdEV4aXQoKTtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIHRoZSBwbHVnaW4ncyBgbm9kZV9tb2R1bGVzYCBmb2xkZXIgYW5kIHJlc3RhcnRzIHRoZSBkZXZlbG9wbWVudCBidWlsZCB3aGVuIGl0IGNoYW5nZXMuXG4gKlxuICogVGhlIGVzYnVpbGQgd2F0Y2hlciBvbmx5IHRyYWNrcyBmaWxlcyBpbiBpdHMgYnVpbGQgZ3JhcGggYW5kIG9ubHkgZXZlciByZS1idW5kbGVzIFx1MjAxNCBpdCBuZXZlclxuICogcmUtcnVucyB0aGUgYGJ1aWxkOmNvbXBpbGVgIHR5cGUtY2hlY2ssIGFuZCBpdCBpZ25vcmVzIGBub2RlX21vZHVsZXNgIGNoYW5nZXMgb3V0c2lkZSB0aGUgZ3JhcGhcbiAqIChhIHJlaW5zdGFsbCwgb3IgYSBkZXBlbmRlbmN5IGZpbGUgbm90IGN1cnJlbnRseSBpbXBvcnRlZCkuIE9uIGFueSAoZGVib3VuY2VkKSBjaGFuZ2UgYW55d2hlcmUgaW5cbiAqIHRoZSBgbm9kZV9tb2R1bGVzYCB0cmVlLCB0aGUgY3VycmVudCBidWlsZCBjb250ZXh0IGlzIGRpc3Bvc2VkIGFuZCB0aGUgd2hvbGUgZGV2ZWxvcG1lbnQgYnVpbGQgaXNcbiAqIHJlc3RhcnRlZCwgcmUtcnVubmluZyB0aGUgZnVsbCBwaXBlbGluZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdGhlIGJ1aWxkIHdhcyBzdGFydGVkIHdpdGgsIHVzZWQgdG8gcmVzdGFydCBpdC5cbiAqIEBwYXJhbSBidWlsZENvbnRleHQgLSBUaGUgZXNidWlsZCBjb250ZXh0IHRvIGRpc3Bvc2UgYmVmb3JlIHJlc3RhcnRpbmcuXG4gKi9cbmZ1bmN0aW9uIHdhdGNoTm9kZU1vZHVsZXNBbmRSZXN0YXJ0KHBhcmFtczogQnVpbGRPYnNpZGlhblBsdWdpblBhcmFtcywgYnVpbGRDb250ZXh0OiBCdWlsZENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgbm9kZU1vZHVsZXNQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdCh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk5vZGVNb2R1bGVzIH0pO1xuICBpZiAoIW5vZGVNb2R1bGVzUGF0aCB8fCAhZXhpc3RzU3luYyhub2RlTW9kdWxlc1BhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHJlc3RhcnRUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZDtcbiAgY29uc3Qgd2F0Y2hlciA9IHdhdGNoKG5vZGVNb2R1bGVzUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSwgKCkgPT4ge1xuICAgIGlmIChyZXN0YXJ0VGltZW91dCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvcHJlZmVyLXdpbmRvdy10aW1lcnMgLS0gTm9kZSBidWlsZC10b29sIGNvbnRleHQ7IGB3aW5kb3dgIGlzIG5vdCBhdmFpbGFibGUuXG4gICAgICBjbGVhclRpbWVvdXQocmVzdGFydFRpbWVvdXQpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9wcmVmZXItd2luZG93LXRpbWVycyAtLSBOb2RlIGJ1aWxkLXRvb2wgY29udGV4dDsgYHdpbmRvd2AgaXMgbm90IGF2YWlsYWJsZS5cbiAgICByZXN0YXJ0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaW52b2tlQXN5bmNTYWZlbHkocmVzdGFydCk7XG4gICAgfSwgTk9ERV9NT0RVTEVTX1JFU1RBUlRfREVCT1VOQ0VfSU5fTUlMTElTRUNPTkRTKTtcbiAgfSk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVzdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLndhcm4oJ0RldGVjdGVkIGNoYW5nZXMgaW4gbm9kZV9tb2R1bGVzLiBSZXN0YXJ0aW5nIHRoZSBidWlsZC4uLicpO1xuICAgIHdhdGNoZXIuY2xvc2UoKTtcbiAgICBhd2FpdCBidWlsZENvbnRleHQuZGlzcG9zZSgpO1xuICAgIGF3YWl0IGJ1aWxkT2JzaWRpYW5QbHVnaW4ocGFyYW1zKTtcbiAgfVxufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsU0FBUyxlQUFlO0FBRXhCLE9BQU8saUJBQWlCO0FBQ3hCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsc0JBQXNCO0FBQy9CLE9BQU8sV0FBVyxtQkFBbUI7QUFFckMsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyxtQ0FBbUM7QUFDNUMsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxZQUFZO0FBQ3JCLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMscUJBQXFCO0FBQzlCLFNBQVMsY0FBYztBQUN2QixTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHlDQUF5QztBQUNsRCxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUVwQyxNQUFNLGFBQWEsNEJBQTRCLFdBQVc7QUFPMUQsTUFBTSxnREFBZ0Q7QUFLL0MsSUFBSyxZQUFMLGtCQUFLQSxlQUFMO0FBRUwsRUFBQUEsc0JBQUE7QUFFQSxFQUFBQSxzQkFBQTtBQUpVLFNBQUFBO0FBQUEsR0FBQTtBQVVMLE1BQU0sU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkR0QixlQUFzQixNQUFN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
205
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvb2JzaWRpYW4tcGx1Z2luLWJ1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIGFuZCBidW5kbGUgYW4gT2JzaWRpYW4gcGx1Z2luIHVzaW5nIGVzYnVpbGQuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGJhc2VkIG9uIGRpZmZlcmVudCBidWlsZCBtb2RlcyAoZGV2ZWxvcG1lbnQgb3IgcHJvZHVjdGlvbiksXG4gKiBhbmQgaXQgc2V0cyB1cCB2YXJpb3VzIGVzYnVpbGQgcGx1Z2lucyB0byBwcmVwcm9jZXNzLCBsaW50LCBmaXggc291cmNlIG1hcHMsIGFuZCBjb3B5IGZpbGVzIHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZC1iYXNlZCBidWlsZCBwaXBlbGluZSB3aXRoIHNhc3Mvc3ZlbHRlIHBsdWdpbnMgYW5kIGZpbGUgd2F0Y2hlcnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb250ZXh0LFxuICBCdWlsZE9wdGlvbnMgYXMgRXNidWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFdlIG5lZWQgYSB0ZW1wIHZhcmlhYmxlIHRvIGFwcGx5IGBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AoKWAgZml4IGJlbG93LlxuaW1wb3J0IHNhc3NQbHVnaW5fIGZyb20gJ2VzYnVpbGQtc2Fzcy1wbHVnaW4nO1xuaW1wb3J0IHtcbiAgZXhpc3RzU3luYyxcbiAgd2F0Y2hcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBidWlsdGluTW9kdWxlcyB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCBwcm9jZXNzLCB7IGxvYWRFbnZGaWxlIH0gZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi8uLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AgfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBDbGlUYXNrUmVzdWx0IH0gZnJvbSAnLi4vLi4vY2xpLXV0aWxzLnRzJztcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4uLy4uL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi4vLi4vbnBtLnRzJztcbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3QgfSBmcm9tICcuLi8uLi9yb290LnRzJztcbmltcG9ydCB7IGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbiB9IGZyb20gJy4vY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMnO1xuaW1wb3J0IHsgY3VzdG9tRXNidWlsZE9wdGlvbnNQbHVnaW4gfSBmcm9tICcuL2N1c3RvbS1lc2J1aWxkLW9wdGlvbnMtcGx1Z2luLnRzJztcbmltcG9ydCB7IGZpeEVzbVBsdWdpbiB9IGZyb20gJy4vZml4LWVzbS1wbHVnaW4udHMnO1xuaW1wb3J0IHsgZml4U291cmNlTWFwc1BsdWdpbiB9IGZyb20gJy4vZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBwcmVwcm9jZXNzUGx1Z2luIH0gZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5pbXBvcnQgeyByZW5hbWVDc3NQbHVnaW4gfSBmcm9tICcuL3JlbmFtZS1jc3MtcGx1Z2luLnRzJztcbmltcG9ydCB7IHN2ZWx0ZVdyYXBwZXJQbHVnaW4gfSBmcm9tICcuL3N2ZWx0ZS13cmFwcGVyLXBsdWdpbi50cyc7XG5cbmNvbnN0IHNhc3NQbHVnaW4gPSBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3Aoc2Fzc1BsdWdpbl8pO1xuXG4vKipcbiAqIERlYm91bmNlIHdpbmRvdyBmb3IgcmVzdGFydGluZyBhIGRldmVsb3BtZW50IGJ1aWxkIGFmdGVyIGBub2RlX21vZHVsZXNgIGNoYW5nZXMuIEEgcmVpbnN0YWxsIG9yIGFcbiAqIGRlcGVuZGVuY3kgcmVidWlsZCB0b3VjaGVzIG1hbnkgZmlsZXMgaW4gcXVpY2sgc3VjY2Vzc2lvbiwgc28gd2Ugd2FpdCBmb3IgdGhlIGNodXJuIHRvIHNldHRsZVxuICogYmVmb3JlIHJlc3RhcnRpbmcgb25jZS5cbiAqL1xuY29uc3QgTk9ERV9NT0RVTEVTX1JFU1RBUlRfREVCT1VOQ0VfSU5fTUlMTElTRUNPTkRTID0gMTAwMDtcblxuLyoqXG4gKiBFbnVtZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIGJ1aWxkIG1vZGVzLlxuICovXG5leHBvcnQgZW51bSBCdWlsZE1vZGUge1xuICAvKipcbiAgRGV2ZWxvcG1lbnQgbW9kZSBmb3IgYnVpbGRpbmcgdGhlIHBsdWdpblxuICAgKi9cbiAgRGV2ZWxvcG1lbnQsXG4gIC8qKlxuICBQcm9kdWN0aW9uIG1vZGUgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW5cbiAgICovXG4gIFByb2R1Y3Rpb25cbn1cblxuLyoqXG4gKiBCYW5uZXIgdGV4dCB0byBiZSBpbmNsdWRlZCBhdCB0aGUgdG9wIG9mIHRoZSBnZW5lcmF0ZWQgZmlsZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBiYW5uZXIgPSBgLypcblRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEVTQlVJTERcbmlmIHlvdSB3YW50IHRvIHZpZXcgdGhlIHNvdXJjZSwgcGxlYXNlIHZpc2l0IHRoZSBnaXRodWIgcmVwb3NpdG9yeSBvZiB0aGlzIHBsdWdpblxuKi9cbmA7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGJ1aWxkT2JzaWRpYW5QbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkT2JzaWRpYW5QbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogQ3VzdG9tIGVzYnVpbGQgcGx1Z2lucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUVzYnVpbGRQbHVnaW5zPzogUGx1Z2luW107XG5cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZXMgdGhlIGBlc2J1aWxkYCBvcHRpb25zLlxuICAgKi9cbiAgY3VzdG9taXplRXNidWlsZE9wdGlvbnM/KG9wdGlvbnM6IEVzYnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBidWlsZCBtb2RlLCBlaXRoZXIgYERldmVsb3BtZW50YCBvciBgUHJvZHVjdGlvbmBcbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IEJ1aWxkTW9kZTtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZCBwYXJhbWV0ZXJzIHdpdGhvdXQgdGhlIG1vZGUgZmllbGQsIGZvciB1c2Ugd2l0aCB7QGxpbmsgYnVpbGR9IGFuZCB7QGxpbmsgZGV2fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogQ3VzdG9tIGVzYnVpbGQgcGx1Z2lucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUVzYnVpbGRQbHVnaW5zPzogUGx1Z2luW107XG5cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZXMgdGhlIGBlc2J1aWxkYCBvcHRpb25zLlxuICAgKi9cbiAgY3VzdG9taXplRXNidWlsZE9wdGlvbnM/KG9wdGlvbnM6IEVzYnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiB7XG4gIE9CU0lESUFOX0NPTkZJR19GT0xERVI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIE9ic2lkaWFuIHBsdWdpbiBpbiBwcm9kdWN0aW9uIG1vZGUgdXNpbmcgZXNidWlsZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGJ1aWxkIHBhcmFtZXRlcnMgKG1vZGUgaXMgc2V0IHRvIFByb2R1Y3Rpb24gYXV0b21hdGljYWxseSkuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJ1aWxkIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGQob3B0aW9ucz86IEJ1aWxkT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ub3B0aW9ucywgbW9kZTogQnVpbGRNb2RlLlByb2R1Y3Rpb24gfSk7XG4gIHJlc3VsdC50aHJvd09uRmFpbHVyZSgpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgT2JzaWRpYW4gcGx1Z2luIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgbW9kZSBhbmQgY29uZmlndXJhdGlvbiBmb2xkZXIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBidWlsZGluZyB0aGUgcGx1Z2luLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpbmRpY2F0aW5nIHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgdGhlIGJ1aWxkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRPYnNpZGlhblBsdWdpbihwYXJhbXM6IEJ1aWxkT2JzaWRpYW5QbHVnaW5QYXJhbXMpOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgYXdhaXQgbnBtUnVuKCdidWlsZDpjb21waWxlJyk7XG4gIGNvbnN0IGVudlBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290KHsgcGF0aDogJy5lbnYnIH0pO1xuICBpZiAoZW52UGF0aCAmJiBleGlzdHNTeW5jKGVudlBhdGgpKSB7XG4gICAgbG9hZEVudkZpbGUoZW52UGF0aCk7XG4gIH1cbiAgY29uc3Qgb2JzaWRpYW5QbHVnaW5CdWlsZGVyRW52ID0gcHJvY2Vzcy5lbnYgYXMgUGFydGlhbDxPYnNpZGlhblBsdWdpbkJ1aWxkZXJFbnY+O1xuXG4gIGNvbnN0IG9ic2lkaWFuQ29uZmlnRm9sZGVyID0gcGFyYW1zLm9ic2lkaWFuQ29uZmlnRm9sZGVyID8/IG9ic2lkaWFuUGx1Z2luQnVpbGRlckVudi5PQlNJRElBTl9DT05GSUdfRk9MREVSID8/ICcnO1xuICBjb25zdCBpc1Byb2R1Y3Rpb25CdWlsZCA9IHBhcmFtcy5tb2RlID09PSBCdWlsZE1vZGUuUHJvZHVjdGlvbjtcblxuICBjb25zdCBkaXN0Rm9sZGVyID0gZW5zdXJlTm9uTnVsbGFibGUoXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdCh7IHBhdGg6IGlzUHJvZHVjdGlvbkJ1aWxkID8gT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkIDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdERldiB9KSxcbiAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgZGlzdCBmb2xkZXInXG4gICk7XG5cbiAgaWYgKGV4aXN0c1N5bmMoZGlzdEZvbGRlcikpIHtcbiAgICBhd2FpdCBybShkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuICBhd2FpdCBta2RpcihkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBkaXN0RmlsZU5hbWVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICBdO1xuICBpZiAoIWlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuSG90UmVsb2FkKSwgJycsICd1dGYtOCcpO1xuICB9XG5cbiAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBkaXN0RmlsZU5hbWVzKSB7XG4gICAgY29uc3QgbG9jYWxGaWxlID0gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdCh7IHBhdGg6IGZpbGVOYW1lIH0pLCBgQ291bGQgbm90IGRldGVybWluZSB0aGUgbG9jYWwgZmlsZSBmb3IgJHtmaWxlTmFtZX1gKTtcbiAgICBjb25zdCBkaXN0RmlsZSA9IGpvaW4oZGlzdEZvbGRlciwgZmlsZU5hbWUpO1xuXG4gICAgaWYgKGV4aXN0c1N5bmMobG9jYWxGaWxlKSkge1xuICAgICAgYXdhaXQgY3AobG9jYWxGaWxlLCBkaXN0RmlsZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGlzdFBhdGggPSBqb2luKGRpc3RGb2xkZXIsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5Kcyk7XG4gIGNvbnN0IGNzc1BhdGggPSBqb2luKGRpc3RGb2xkZXIsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlN0eWxlc0Nzcyk7XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgcGx1Z2luTmFtZSA9IHBhY2thZ2VKc29uLm5hbWUgPz8gJyh1bmtub3duKSc7XG5cbiAgY29uc3QgYnVpbGRPcHRpb25zOiBFc2J1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBjb25kaXRpb25zOiBbJ2Jyb3dzZXInXSxcbiAgICBlbnRyeVBvaW50czogW1xuICAgICAgZW5zdXJlTm9uTnVsbGFibGUoXG4gICAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3QoeyBwYXRoOiBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpblRzKSB9KSxcbiAgICAgICAgJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgcGx1Z2luJ1xuICAgICAgKVxuICAgIF0sXG4gICAgZXh0ZXJuYWw6IFtcbiAgICAgICdvYnNpZGlhbicsXG4gICAgICAnZWxlY3Ryb24nLFxuICAgICAgJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZScsXG4gICAgICAnQGNvZGVtaXJyb3IvY29sbGFiJyxcbiAgICAgICdAY29kZW1pcnJvci9jb21tYW5kcycsXG4gICAgICAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnLFxuICAgICAgJ0Bjb2RlbWlycm9yL2xpbnQnLFxuICAgICAgJ0Bjb2RlbWlycm9yL3NlYXJjaCcsXG4gICAgICAnQGNvZGVtaXJyb3Ivc3RhdGUnLFxuICAgICAgJ0Bjb2RlbWlycm9yL3ZpZXcnLFxuICAgICAgJ0BsZXplci9jb21tb24nLFxuICAgICAgJ0BsZXplci9oaWdobGlnaHQnLFxuICAgICAgJ0BsZXplci9scicsXG4gICAgICAnZXNidWlsZCcsXG4gICAgICAnZXNsaW50JyxcbiAgICAgIC4uLmJ1aWx0aW5Nb2R1bGVzXG4gICAgXSxcbiAgICBmb3JtYXQ6ICdjanMnLFxuICAgIGtlZXBOYW1lczogdHJ1ZSxcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIG1pbmlmeTogaXNQcm9kdWN0aW9uQnVpbGQsXG4gICAgb3V0ZmlsZTogZGlzdFBhdGgsXG4gICAgcGxhdGZvcm06ICdub2RlJyxcbiAgICBwbHVnaW5zOiBbXG4gICAgICBjdXN0b21Fc2J1aWxkT3B0aW9uc1BsdWdpbihwYXJhbXMuY3VzdG9taXplRXNidWlsZE9wdGlvbnM/LmJpbmQocGFyYW1zKSksXG4gICAgICBzdmVsdGVXcmFwcGVyUGx1Z2luKGlzUHJvZHVjdGlvbkJ1aWxkKSxcbiAgICAgIHNhc3NQbHVnaW4oe1xuICAgICAgICBzb3VyY2VNYXA6ICFpc1Byb2R1Y3Rpb25CdWlsZFxuICAgICAgfSksXG4gICAgICByZW5hbWVDc3NQbHVnaW4oZGlzdEZvbGRlciksXG4gICAgICBwcmVwcm9jZXNzUGx1Z2luKCksXG4gICAgICBmaXhFc21QbHVnaW4oKSxcbiAgICAgIGZpeFNvdXJjZU1hcHNQbHVnaW4oeyBkaXN0UGF0aHM6IFtkaXN0UGF0aCwgY3NzUGF0aF0sIGlzUHJvZHVjdGlvbkJ1aWxkLCBwbHVnaW5OYW1lIH0pLFxuICAgICAgLi4ucGFyYW1zLmN1c3RvbUVzYnVpbGRQbHVnaW5zID8/IFtdLFxuICAgICAgY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luKHsgZGlzdEZvbGRlciwgaXNQcm9kdWN0aW9uQnVpbGQsIG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lIH0pXG4gICAgXSxcbiAgICBzb3VyY2VtYXA6IGlzUHJvZHVjdGlvbkJ1aWxkID8gZmFsc2UgOiAnaW5saW5lJyxcbiAgICB0YXJnZXQ6ICdFUzIwMjInLFxuICAgIHRyZWVTaGFraW5nOiB0cnVlXG4gIH07XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0ID0gYXdhaXQgY29udGV4dChidWlsZE9wdGlvbnMpO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dCwgaXNQcm9kdWN0aW9uQnVpbGQpO1xuICBpZiAoIWlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgd2F0Y2hOb2RlTW9kdWxlc0FuZFJlc3RhcnQocGFyYW1zLCBidWlsZENvbnRleHQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gaW4gZGV2ZWxvcG1lbnQgbW9kZSB1c2luZyBlc2J1aWxkIHdpdGggd2F0Y2guXG4gKlxuICogSW4gYWRkaXRpb24gdG8gZXNidWlsZCdzIG93biBzb3VyY2UtZ3JhcGggd2F0Y2gsIHRoZSBkZXZlbG9wbWVudCBidWlsZCBhbHNvIHdhdGNoZXMgdGhlIHBsdWdpbidzXG4gKiBgbm9kZV9tb2R1bGVzYCBmb2xkZXIgYW5kIHJlc3RhcnRzIHRoZSB3aG9sZSBidWlsZCAoaW5jbHVkaW5nIHRoZSB0eXBlLWNoZWNrKSB3aGVuIGl0IGNoYW5nZXMsIHNvIGFcbiAqIGRlcGVuZGVuY3kgcmVpbnN0YWxsIG9yIHJlYnVpbGQgaXMgcGlja2VkIHVwLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgYnVpbGQgcGFyYW1ldGVycyAobW9kZSBpcyBzZXQgdG8gRGV2ZWxvcG1lbnQgYXV0b21hdGljYWxseSkuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IGluZGljYXRpbmcgdGhlIGJ1aWxkIHJlc3VsdC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEludGVudGlvbmFsbHkgc2hhcmVzIEJ1aWxkT3B0aW9ucyB3aXRoIGJ1aWxkKCkuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV2KG9wdGlvbnM/OiBCdWlsZE9wdGlvbnMpOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgcmV0dXJuIGF3YWl0IGJ1aWxkT2JzaWRpYW5QbHVnaW4oeyAuLi5vcHRpb25zLCBtb2RlOiBCdWlsZE1vZGUuRGV2ZWxvcG1lbnQgfSk7XG59XG5cbi8qKlxuICogSW52b2tlcyB0aGUgYnVpbGQgcHJvY2VzcyB3aXRoIHRoZSBwcm92aWRlZCBidWlsZCBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBidWlsZENvbnRleHQgLSBUaGUgYnVpbGQgY29udGV4dCBnZW5lcmF0ZWQgYnkgZXNidWlsZC5cbiAqIEBwYXJhbSBpc1Byb2R1Y3Rpb25CdWlsZCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB0aGUgc3VjY2VzcyBvciBmYWlsdXJlIG9mIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGludm9rZUVzYnVpbGQoYnVpbGRDb250ZXh0OiBCdWlsZENvbnRleHQsIGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJ1aWxkQ29udGV4dC5yZWJ1aWxkKCk7XG4gICAgY29uc3QgaXNTdWNjZXNzID0gcmVzdWx0LmVycm9ycy5sZW5ndGggPT09IDAgJiYgcmVzdWx0Lndhcm5pbmdzLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKGlzU3VjY2Vzcyk7XG4gIH1cbiAgYXdhaXQgYnVpbGRDb250ZXh0LndhdGNoKCk7XG4gIHJldHVybiBDbGlUYXNrUmVzdWx0LkRvTm90RXhpdCgpO1xufVxuXG4vKipcbiAqIFdhdGNoZXMgdGhlIHBsdWdpbidzIGBub2RlX21vZHVsZXNgIGZvbGRlciBhbmQgcmVzdGFydHMgdGhlIGRldmVsb3BtZW50IGJ1aWxkIHdoZW4gaXQgY2hhbmdlcy5cbiAqXG4gKiBUaGUgZXNidWlsZCB3YXRjaGVyIG9ubHkgdHJhY2tzIGZpbGVzIGluIGl0cyBidWlsZCBncmFwaCBhbmQgb25seSBldmVyIHJlLWJ1bmRsZXMgXHUyMDE0IGl0IG5ldmVyXG4gKiByZS1ydW5zIHRoZSBgYnVpbGQ6Y29tcGlsZWAgdHlwZS1jaGVjaywgYW5kIGl0IGlnbm9yZXMgYG5vZGVfbW9kdWxlc2AgY2hhbmdlcyBvdXRzaWRlIHRoZSBncmFwaFxuICogKGEgcmVpbnN0YWxsLCBvciBhIGRlcGVuZGVuY3kgZmlsZSBub3QgY3VycmVudGx5IGltcG9ydGVkKS4gT24gYW55IChkZWJvdW5jZWQpIGNoYW5nZSBhbnl3aGVyZSBpblxuICogdGhlIGBub2RlX21vZHVsZXNgIHRyZWUsIHRoZSBjdXJyZW50IGJ1aWxkIGNvbnRleHQgaXMgZGlzcG9zZWQgYW5kIHRoZSB3aG9sZSBkZXZlbG9wbWVudCBidWlsZCBpc1xuICogcmVzdGFydGVkLCByZS1ydW5uaW5nIHRoZSBmdWxsIHBpcGVsaW5lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0aGUgYnVpbGQgd2FzIHN0YXJ0ZWQgd2l0aCwgdXNlZCB0byByZXN0YXJ0IGl0LlxuICogQHBhcmFtIGJ1aWxkQ29udGV4dCAtIFRoZSBlc2J1aWxkIGNvbnRleHQgdG8gZGlzcG9zZSBiZWZvcmUgcmVzdGFydGluZy5cbiAqL1xuZnVuY3Rpb24gd2F0Y2hOb2RlTW9kdWxlc0FuZFJlc3RhcnQocGFyYW1zOiBCdWlsZE9ic2lkaWFuUGx1Z2luUGFyYW1zLCBidWlsZENvbnRleHQ6IEJ1aWxkQ29udGV4dCk6IHZvaWQge1xuICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290KHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTm9kZU1vZHVsZXMgfSk7XG4gIGlmICghbm9kZU1vZHVsZXNQYXRoIHx8ICFleGlzdHNTeW5jKG5vZGVNb2R1bGVzUGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgcmVzdGFydFRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBjb25zdCB3YXRjaGVyID0gd2F0Y2gobm9kZU1vZHVsZXNQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LCAoKSA9PiB7XG4gICAgaWYgKHJlc3RhcnRUaW1lb3V0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9wcmVmZXItd2luZG93LXRpbWVycyAtLSBOb2RlIGJ1aWxkLXRvb2wgY29udGV4dDsgYHdpbmRvd2AgaXMgbm90IGF2YWlsYWJsZS5cbiAgICAgIGNsZWFyVGltZW91dChyZXN0YXJ0VGltZW91dCk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL3ByZWZlci13aW5kb3ctdGltZXJzIC0tIE5vZGUgYnVpbGQtdG9vbCBjb250ZXh0OyBgd2luZG93YCBpcyBub3QgYXZhaWxhYmxlLlxuICAgIHJlc3RhcnRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpbnZva2VBc3luY1NhZmVseShyZXN0YXJ0KTtcbiAgICB9LCBOT0RFX01PRFVMRVNfUkVTVEFSVF9ERUJPVU5DRV9JTl9NSUxMSVNFQ09ORFMpO1xuICB9KTtcblxuICBhc3luYyBmdW5jdGlvbiByZXN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUud2FybignRGV0ZWN0ZWQgY2hhbmdlcyBpbiBub2RlX21vZHVsZXMuIFJlc3RhcnRpbmcgdGhlIGJ1aWxkLi4uJyk7XG4gICAgd2F0Y2hlci5jbG9zZSgpO1xuICAgIGF3YWl0IGJ1aWxkQ29udGV4dC5kaXNwb3NlKCk7XG4gICAgYXdhaXQgYnVpbGRPYnNpZGlhblBsdWdpbihwYXJhbXMpO1xuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTLGVBQWU7QUFFeEIsT0FBTyxpQkFBaUI7QUFDeEI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxzQkFBc0I7QUFDL0IsT0FBTyxXQUFXLG1CQUFtQjtBQUVyQyxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLCtCQUErQjtBQUN4QyxTQUFTLFlBQVk7QUFDckIsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyxxQkFBcUI7QUFDOUIsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsMkJBQTJCO0FBQ3BDLFNBQVMseUNBQXlDO0FBQ2xELFNBQVMsa0NBQWtDO0FBQzNDLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsMkJBQTJCO0FBQ3BDLFNBQVMsd0JBQXdCO0FBQ2pDLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsMkJBQTJCO0FBRXBDLE1BQU0sYUFBYSw0QkFBNEIsV0FBVztBQU8xRCxNQUFNLGdEQUFnRDtBQUsvQyxJQUFLLFlBQUwsa0JBQUtBLGVBQUw7QUFJTCxFQUFBQSxzQkFBQTtBQUlBLEVBQUFBLHNCQUFBO0FBUlUsU0FBQUE7QUFBQSxHQUFBO0FBY0wsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2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